ホームページ  >  記事  >  バックエンド開発  >  デシジョンツリーアルゴリズムとは何ですか?

デシジョンツリーアルゴリズムとは何ですか?

PHP中文网
PHP中文网オリジナル
2017-06-20 10:11:184859ブラウズ

英語名: Decision Tree

デシジョン ツリーは、まずデータを処理し、帰納的アルゴリズムを使用して可読なルールとデシジョン ツリーを生成し、次にデシジョンを使用して新しいデータを分析します。基本的に、デシジョン ツリーは、一連のルールを通じてデータを分類するプロセスです。

デシジョン ツリーは教師あり学習手法であり、主に分類と回帰に使用されます。 このアルゴリズムの目標は、データの特徴を推論し、決定ルールを学習することで、ターゲット変数を予測するモデルを作成することです。

決定木は if-else 構造に似ており、その結果、木のルートから葉ノードまで継続的に判断して選択できる木を生成する必要があります。 ただし、ここでのif-elseの判定条件は手動で設定するものではなく、当社が提供するアルゴリズムに基づいてコンピュータが自動生成します。

デシジョンツリーコンポーネント

  • 意思決定ポイント

は、いくつかの可能なオプションの選択、つまり、最終的に選択される最良のオプションです。意思決定がマルチレベルの意思決定である場合、意思決定ツリーの途中に複数の意思決定ポイントが存在する可能性があり、意思決定ツリーのルートにある意思決定ポイントが最終的な意思決定計画になります。

  • 状態ノード

は、代替案の経済効果(期待値)を表し、各状態ノードの経済効果を比較することで、一定の意思決定基準に従って最適な案を選択することができます。状態ノードから派生した分岐は確率分岐と呼ばれ、確率分岐の数は、発生する可能性のある自然状態の数を表し、各分岐でその状態が発生する確率を示す必要があります。

  • 結果ノード

結果ノードの右端に、さまざまな自然状態における各計画の損益の値をマークします

意思決定木グループの長所と短所

意思決定木の利点

  • シンプルわかりやすく、原理が明確で、意思決定木が可視化できる

  • 推論プロセスが理解しやすく、意思決定の推論プロセスがif-else形式で表現できる

  • 推論プロセスは属性変数の値特性に完全に依存します

  • 対象は自動的に無視される可能性があります変数の寄与がない属性変数は、属性変数の重要性を判断し、変数の数を減らすための参考にもなります

デシジョン ツリー: 過度に複雑なルールが確立される可能性があります (過剰適合)。

  • デシジョン ツリーは、データのわずかな変更によってまったく異なるデシジョン ツリーが生成される可能性があるため、不安定になることがあります。

  • 最適な決定木の学習は NP 完全問題です。 したがって、実際の決定木の学習アルゴリズムは、各ノードで局所的な最適値を達成する貪欲アルゴリズムなどのヒューリスティック アルゴリズムに基づいています。 このようなアルゴリズムは、全体的に最適な決定木を返すことを保証できません。この問題は、特徴とサンプルをランダムに選択して複数の決定木をトレーニングすることで軽減できます。

  • 決定木を表現するのが難しいため、一部の問題は学習が非常に困難です。例: XOR 問題、パリティ チェック、マルチプレクサ問題

  • いくつかの要因が優勢な場合、決定木には偏りが生じます。したがって、デシジョン ツリーを当てはめる前に、データの影響要因のバランスをとることをお勧めします。

  • デシジョンツリーの一般的なアルゴリズム

  • デシジョンツリーには、CART、ID3、C4.5、C5.0などを含む多くのアルゴリズムがあります。その中で、ID3、C4.5、C5.0はすべてに基づいています。情報エントロピーと CART エントロピーと同様のインデックスが分類の決定として使用され、決定木の形成後に枝刈りが必要です。

エントロピー: システムがどれほど乱雑であるか

ID3 アルゴリズム

ID3 アルゴリズムは、分類決定木アルゴリズムです。彼は最終的に、一連のルールに従ってデータを決定木の形式に分類しました。分類の基礎はエントロピーでした。

ID3 アルゴリズムは、Quinlan によって提案された古典的な決定木学習アルゴリズムです。 ID3 アルゴリズムの基本的な考え方は、デシジョン ツリー ノードの属性選択の尺度として情報エントロピーを使用することです。毎回、最も多くの情報を持つ属性、つまりエントロピー値を最小化できる属性が最初に選択されます。エントロピー値を構築する。最速の降順決定木は、葉ノードまでのエントロピー値が 0 になります。このとき、各リーフノードに対応するインスタンスセット内のインスタンスは同じクラスに属する。

ID3 アルゴリズムを使用して顧客離れの早期警告分析を実現し、顧客離れの特徴を見つけ出すことで、電気通信会社が目標を絞った方法で顧客関係を改善し、顧客離れを回避できるようにします

データマイニングにデシジョン ツリー手法を使用するこれには通常、データの前処理、デシジョン ツリー マイニング操作、パターンの評価、および適用のステップがあります。

C4.5アルゴリズム

C4.5はID3をさらに拡張したもので、連続属性を離散化することで機能の制限を取り除きます。 C4.5 は、トレーニング ツリーを一連の if-then 文法規則に変換します。これらのルールの正確さを判断して、どのルールを採用するかを決定できます。ルールを削除することで精度が向上する場合は、枝刈りを実装する必要があります。

C4.5 と ID3 のコア アルゴリズムは同じですが、使用される方法が異なります。C4.5 は除算の基礎として情報利得率を使用し、ID3 アルゴリズムの情報利得除算によって引き起こされる特性を克服します。より多くの値を持つ属性を選択します。

C5.0 アルゴリズム

C5.0 は、C4.5 よりも少ないメモリを使用し、より小さな決定ルールを確立し、より正確です。

CART アルゴリズム

分類と回帰ツリー (CART - 分類と回帰ツリー)) は、非常に興味深く、非常に効果的なノンパラメトリック分類および回帰手法です。二分木を構築することで予測の目的を達成します。 分類および回帰ツリー CART モデルは、Breiman らによって最初に提案され、統計およびデータ マイニング テクノロジの分野で一般的に使用されています。従来の統計とはまったく異なる方法で予測基準を構築し、理解しやすく、使用し、解釈しやすい二分木の形式で提供されます。 CART モデルによって構築される予測ツリーは、多くの場合、一般的に使用される統計手法によって構築される代数的予測基準よりも正確であり、データが複雑になり、変数が増えるほど、アルゴリズムの優位性がより顕著になります。モデルの鍵は、予測基準を正確に構築することです。 定義: 分類と回帰では、最初に既知の多変量データを使用して予測基準を構築し、次に他の変数の値に基づいて 1 つの変数を予測します。分類では、最初に物体に対してさまざまな測定を行い、次に特定の分類基準を使用してその物体がどのカテゴリに属する​​かを決定することがよくあります。たとえば、特定の化石の識別特徴が与えられた場合、その化石がどの科、どの属、さらにはどの種に属するかを予測します。別の例としては、特定の地域の地質学的および地球物理学的情報に基づいて、その地域に鉱物が存在するかどうかを予測することが挙げられます。回帰は、オブジェクトを分類するのではなく、オブジェクトの特定の値を予測するために使用されるという点で分類とは異なります。たとえば、特定の地域の鉱物資源の特徴を考慮して、その地域の資源量を予測します。

CART は C4.5 に非常に似ていますが、数値ターゲット変数 (回帰) をサポートし、決定ルールを生成しません。 CART は、特徴としきい値を使用して、各ノードで最大の情報利得を取得し、デシジョン ツリーを構築します。

scikit-learn は CART アルゴリズムを使用します

サンプルコード:

#! /usr/bin/env python#-*- coding:utf-8 -*-from sklearn import treeimport numpy as np# scikit-learn使用的决策树算法是CARTX = [[0,0],[1,1]]
Y = ["A","B"]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X,Y)

data1 = np.array([2.,2.]).reshape(1,-1)print clf.predict(data1) # 预测类别  print clf.predict_proba(data1) # 预测属于各个类的概率

わかりました。お役に立てば幸いです。

この記事の github アドレス:

20170619_Decision Tree Algorithm.md

追加へようこそ

以上がデシジョンツリーアルゴリズムとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。