翻訳者 | Zhu Xianzhong
##査読者 | Sun Shujuan
機械学習における意思決定木現代の機械学習アルゴリズムは私たちの日常生活を変えています。たとえば、BERT のような大規模な言語モデルは Google 検索を強化しており、GPT-3 は多くの高級言語アプリケーションを強化しています。
一方で、複雑な機械学習アルゴリズムの構築は、今日ではかつてないほど簡単になっています。ただし、機械学習アルゴリズムがどれほど複雑であっても、それらはすべて次の学習カテゴリのいずれかに分類されます:
- 教師あり学習
- 教師なし学習
- 半教師あり学習
- 強化学習
実際、デシジョン ツリーは最も古い教師あり機械学習アルゴリズムの 1 つであり、現実世界のさまざまな問題を解決できます。研究によると、決定木アルゴリズムの最初の発明は 1963 年まで遡ることができます。
次に、このアルゴリズムの詳細を掘り下げて、このタイプのアルゴリズムが今日でも非常に人気がある理由を見てみましょう。
デシジョン ツリーとは何ですか?デシジョン ツリー アルゴリズムは、複雑なデータ セットを処理する比較的単純な方法であるため、人気のある教師あり機械学習アルゴリズムです。デシジョン ツリーは、ツリーの構造に似ていることからその名前が付けられました。ツリー構造は、ノードとエッジの形をした根、枝、葉などのいくつかのコンポーネントで構成されます。これらは、if-else ベースの意思決定フローチャートと同様に、意思決定分析に使用され、意思決定によって望ましい予測が生成されます。デシジョン ツリーは、これらの if-else 決定ルールを学習してデータ セットを分割し、最終的にツリー状のデータ モデルを生成します。
デシジョン ツリーは、分類問題の離散結果の予測や回帰問題の連続数値結果の予測に使用されてきました。科学者は長年にわたり、CART、C4.5 などのさまざまなアルゴリズムや、ランダム フォレストや勾配ブースト ツリーなどのアンサンブル アルゴリズムを開発してきました。
# デシジョン ツリーのさまざまなコンポーネントの分析
デシジョン ツリー アルゴリズムのステップをまとめる前に、まずデシジョン ツリーのコンポーネントを理解しましょう:
- ルートノード: デシジョン ツリーの最上部にある開始ノードであり、すべての属性値が含まれます。ルート ノードは、アルゴリズムによって学習された決定ルールに基づいて決定ノードに分割されます。
- ブランチ: ブランチは、属性値に対応するノード間のコネクタです。バイナリ分割では、分岐は真のパスと偽のパスを表します。
- 意思決定ノード/内部ノード: 内部ノードは、ルート ノードとリーフ ノードの間の意思決定ノードであり、意思決定ルールとその回答パスに対応します。ノードは質問を表し、ブランチはそれらの質問に基づいて関連する回答へのパスを示します。
- リーフ ノード: リーフ ノードは、ターゲット予測を表す終端ノードです。これらのノードはそれ以上分割されません。
- #以下は、デシジョン ツリーとその上のコンポーネントを視覚的に表現したものです。デシジョン ツリー アルゴリズムは、次の手順を経て、目的の予測に到達します。
#アルゴリズムは、すべての属性値を持つルート ノードから開始されます。
- ルート ノードは、トレーニング セットからアルゴリズムによって学習された決定ルールに基づいて決定ノードに分割されます。
- 質問とその回答パスに基づいて、ブランチ/エッジを通じて内部意思決定ノードを渡します。
- リーフ ノードに到達するか、すべての属性が使用されるまで、前の手順を続けます。
-
各ノードで最適な属性を選択するために、次の 2 つの属性選択メトリックのいずれかが分割に使用されます。
- ジニ係数 (ジニ指数)ジニ不純物の測定(##) #Gini Impurity) は、アルゴリズムがランダムなクラス ラベルを誤って分類する可能性を示します。
- 情報利得 クラス 50/ 50 の予測を避けるために、セグメンテーション後のエントロピーの改善を測定します。スプリット。エントロピーは、特定のデータ サンプル内の 不純物 の数学的尺度です。デシジョン ツリー内の カオス状態 は、 50/50 に近い partition によって表されます。 決定木アルゴリズムを使用した花の分類ケース
上記の基礎知識を理解した後、応用ケースの実装を開始しましょう。この記事では、Scikit Learning ライブラリを使用して、Python でデシジョン ツリー分類モデルを実装します。
#データ セットについての簡単な説明
このチュートリアルのデータ セットは、iris データ セットです。このデータセットはすでに Scikit オープン ソース ライブラリに組み込まれているため、開発者はそれを外部からロードする必要はありません。このデータセットには、合計 4 つのアヤメ属性と対応する属性値が含まれており、これらは 3 種類のアヤメの花のいずれかを予測するためにモデルに入力されます。データセット内の属性/特徴: がく片の長さ、がく片の幅、花弁の長さ、花弁の幅。
- データセット内の予測ラベル/花の種類: Setosis、Versicolor、Virginica。
- #次に、Python 言語に基づく決定木分類器のコードを段階的に説明します。
ライブラリのインポート
まず、次のコードを使用して、デシジョン ツリーの実装に必要なライブラリをインポートします。import pandas as pd import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier
虹彩データ セットのロード
次のコードは、load_iris 関数を使用して、data_set 変数に格納されている sklearn.dataset ライブラリに虹彩データをロードする方法を示しています。セット。次の 2 行のコードは、虹彩のタイプと特性情報を出力します。data_set = load_iris() print('Iris plant classes to predict: ', data_set.target_names) print('Four features of iris plant: ', data_set.feature_names)
属性とタグの分離
次のコード行は、花の特性とタイプ情報を分離し、保存します。対応する変数に。このうち、shape[0] 関数は、X_att 変数に格納される属性の数を決定する役割を果たします。データ セット内の属性値の合計数は 150 です。#提取花的特性和类型信息 X_att = data_set.data y_label = data_set.target print('数据集中总的样本数:', X_att.shape[0])
実際、X_att 変数の値を DataFrame 関数に追加することで、データ セット内のいくつかの属性値を表示するビジュアル テーブルを作成することもできます。パンダ図書館です。
data_view=pd.DataFrame({ 'sepal length':X_att[:,0], 'sepal width':X_att[:,1], 'petal length':X_att[:,2], 'petal width':X_att[:,3], 'species':y_label }) data_view.head()
データ セットの分割
次のコードは、train_test_split 関数を使用してデータ セットをトレーニング セットとテスト セットの 2 つの部分に分割する方法を示しています。その中で、この関数のrandom_stateパラメータは、関数が実行されるたびに指定されたデータセットに対して同じ結果を提供するためのランダムシードを提供するために使用されます;test_sizeはテストセットのサイズを示します;0.25はテストデータが分割後は 25%、トレーニング データが 75% を占めます。#数据集拆分为训练集和测试集两部分 X_att_train, X_att_test, y_label_train, y_label_test = train_test_split(X_att, y_label, random_state = 42, test_size = 0.25)
デシジョン ツリー分類関数の適用
次のコードは、 を使用してを作成します。 DecisionTreeClassifier 関数 a デシジョン ツリーを実装するための分類モデル、classification 標準は「エントロピー」に設定されます ## #方法######。この標準 により、 は属性選択メトリックを (情報ゲイン) に設定できるようになります。次に、コードはモデルを属性とラベルのトレーニング セットと照合します。
#应用决策树分类器 clf_dt = DecisionTreeClassifier(criterion = 'entropy') clf_dt.fit(X_att_train, y_label_train)
计算模型精度
下面的代码负责计算并打印决策树分类模型在训练集和测试集上的准确性。为了计算准确度分数,我们使用了predict函数。测试结果是:训练集和测试集的准确率分别为100%和94.7%。
print('Training data accuracy: ', accuracy_score(y_true=y_label_train, y_pred=clf_dt.predict(X_att_train))) print('Test data accuracy: ', accuracy_score(y_true=y_label_test, y_pred=clf_dt.predict(X_att_test)))
真实世界中的决策树应用程序
当今社会,机器学习决策树在许多行业的决策过程中都得到广泛应用。其中,决策树的最常见应用首先是在金融和营销部门,例如可用于如下一些子领域:
- 贷款批准
- 支出管理
- 客户流失预测
- 新产品的可行性分析,等等。
如何改进决策树?
作为本文决策树主题讨论的总结,我们有充分的理由安全地假设:决策树的可解释性仍然很受欢迎。决策树之所以容易理解,是因为它们可以被人类以可视化方式展现并便于解释。因此,它们是解决机器学习问题的直观方法,同时也能够确保结果是可解释的。机器学习中的可解释性是我们过去讨论过的一个小话题,它也与即将到来的人工智能伦理主题存在密切联系。
与任何其他机器学习算法一样,决策树自然也可以加以改进,以避免过度拟合和出现过于偏向于优势预测类别。剪枝和ensembling技术是克服决策树算法缺点方案最常采用的方法。决策树尽管存在这些缺点,但仍然是决策分析算法的基础,并将在机器学习领域始终保持重要位置。
译者介绍
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。
原文标题:An Introduction to Decision Trees for Machine Learning,作者:Stylianos Kampakis
以上が機械学習デシジョンツリー実践演習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

オンデバイスAIの力を活用:個人的なチャットボットCLIの構築 最近では、個人的なAIアシスタントの概念はサイエンスフィクションのように見えました。 ハイテク愛好家のアレックスを想像して、賢くて地元のAI仲間を夢見ています。

AI4MHの最初の発売は2025年4月15日に開催され、有名な精神科医および神経科学者であるLuminary Dr. Tom Insel博士がキックオフスピーカーを務めました。 Insel博士は、メンタルヘルス研究とテクノでの彼の傑出した仕事で有名です

「私たちは、WNBAが、すべての人、プレイヤー、ファン、企業パートナーが安全であり、大切になり、力を与えられたスペースであることを保証したいと考えています」とエンゲルバートは述べ、女性のスポーツの最も有害な課題の1つになったものに取り組んでいます。 アノ

導入 Pythonは、特にデータサイエンスと生成AIにおいて、プログラミング言語として優れています。 大規模なデータセットを処理する場合、効率的なデータ操作(ストレージ、管理、アクセス)が重要です。 以前に数字とstをカバーしてきました

潜る前に、重要な注意事項:AIパフォーマンスは非決定論的であり、非常にユースケース固有です。簡単に言えば、走行距離は異なる場合があります。この(または他の)記事を最終的な単語として撮影しないでください。これらのモデルを独自のシナリオでテストしないでください

傑出したAI/MLポートフォリオの構築:初心者と専門家向けガイド 説得力のあるポートフォリオを作成することは、人工知能(AI)と機械学習(ML)で役割を確保するために重要です。 このガイドは、ポートフォリオを構築するためのアドバイスを提供します

結果?燃え尽き症候群、非効率性、および検出とアクションの間の隙間が拡大します。これは、サイバーセキュリティで働く人にとってはショックとしてはありません。 しかし、エージェントAIの約束は潜在的なターニングポイントとして浮上しています。この新しいクラス

即時の影響と長期パートナーシップ? 2週間前、Openaiは強力な短期オファーで前進し、2025年5月末までに米国およびカナダの大学生にChatGpt Plusに無料でアクセスできます。このツールにはGPT ‑ 4o、Aが含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
