検索
ホームページバックエンド開発Python チュートリアルデシジョンツリーアルゴリズムとは何ですか?

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

Jun 20, 2017 am 10:11 AM
デシジョンツリーアルゴリズム

英語名: 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 までご連絡ください。
Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター