問題タブ [decision-tree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
expert-system - システムの特定に役立つ意思決定ツリーシステムの構築
営業チームが製品を指定するのに役立つシステムを構築する方法を検討しています。理想的なシステムは、すべての製品に共通するいくつかの基本的な質問をします。その後、これらの回答からさらに質問が分岐します。私が理解できることから、これは本質的に私が構築するように依頼された大きな決定木/エキスパートシステムです。
誰かがそのようなシステムを構築した経験があり、いくつかのリファレンスを提供できるか、またはそのようなシステムをサポートするためのフレームワーク/ソフトウェアを推奨できるかどうか疑問に思いましたか?
machine-learning - エントロピーを使用した加重決定木
相互情報量利得を分割関数として使用して、バイナリ分類ツリーを構築しています。ただし、トレーニング データは少数のクラスに偏っているため、各トレーニング例を逆クラス頻度で重み付けすることをお勧めします。
トレーニング データに重みを付けるにはどうすればよいですか? エントロピーを推定する確率を計算する場合、加重平均を使用しますか?
編集:重みを使用したエントロピーの式が欲しいです。
matlab - 巨大なデータセットで決定木を学習する
MATLAB を使用して、巨大な (つまり、メモリに格納できない) データセットからバイナリ分類決定木を構築しようとしています。基本的に、私がやっていることは次のとおりです。
- すべてのデータを収集する
- データに対して n 個の決定関数を試す
- データ内のクラスを分離するための最良の決定関数を選択します
- 元のデータセットを 2 つに分割する
- 分割の再帰
データにはk 個の属性と分類があるため、膨大な数の行とk+1列の行列として格納されます。決定関数はブール値であり、各行を左または右のサブツリーに割り当てる属性に作用します。
現在、メモリに保持できるチャンクでファイルにデータを格納し、各行に ID を割り当てることを検討しています。これにより、分割の決定はすべてのファイルを順番に読み取ることによって行われ、将来の分割は ID 番号によって識別されます。
これをより良い方法で行う方法を知っている人はいますか?
編集: 行数 m は約 5e8 で、k は約 500 です
algorithm - ソート決定木を生成するプログラムを作成するにはどうすればよいですか?
クラスでは、3 つの要素 (a、b、c) をソートするための単純な決定木が与えられました。
(ソース: brpreiss.com )
これを見ていると、なんとなく腑に落ちます。フォローできました。
ただし、4 つの要素 (a、b、c、d) の決定木を作成する必要があり、葉の数は 24 まで増えました。
私は、各ブランチで比較していると思われる要素を追跡するのに役立つ整然とした方法で決定木にアプローチするのに苦労しています。
より大きな決定木を構築するための系統的な方法は何ですか? 方法を知っていれば、可能性のあるリーフ構造を吐き出すプログラムを喜んで書きます。
java - Javaで決定木を作成するための最良の学習アルゴリズム?
年齢、都市、子供の年齢などの情報と結果(確認、承認)を含むデータセットがあります。
「ワークフロー」のモデル化を支援するために、以前のデータセットに基づいて決定木を自動的に作成したいと思います。
私はhttp://en.wikipedia.org/wiki/Decision_tree_learningを調べましたが、問題が明らかに明らかではないことを知っています。
サンプルに基づいた決定木の構築に役立つ、このテーマに関するいくつかのアルゴリズムまたはいくつかのライブラリについてアドバイスが必要です。
user-interface - 評価ブール論理ツリーに向けたガイダンスが必要
私は正しい方向へのポインターを見つけることができないようです、私は私が研究すべき用語が何であるかさえわかりませんが、数え切れないほどのグーグルが私を輪になって回しているようです、それでうまくいけばスタックの知性の集合的なハイブオーバーフローが役立ちます。
問題はこれです。複合論理ツリーとしか呼べないデータをフィルタリングする方法が必要です。現在、システムは単純なANDフィルタリングシステムを実装しています。たとえば、人のデータセットがあるとします。(Sex = Female)AND(Age> 23)AND(Age <30)AND(Status = Single)のすべての人を表示するように一連のフィルターを追加します。非常に簡単で、各アイテムを繰り返し処理し、すべての条件が真である場合にのみ有効なアイテムコレクションに追加します。
私が直面している問題は、関連する複雑なクエリを作成できるユーザーをどのように処理するかということです。私は、各ノードがその子を真または偽に評価する式を表すツリーのようなものを考えています。単純な例は次のようになります-((Sex == Male AND Age == 25)OR(Sex == Female AND Status == Single))AND IQ>120にフィルターします。申し訳ありませんが、でより良い例を考えることはできません。瞬間。しかし、このタイプの式ツリーをどのように表現し、これらのフィルターに対してコレクション内のアイテムを評価するのでしょうか。役立つ参考資料は何ですか?地獄、ポジティブな方向につながるかもしれないいくつかの気の利いたグーグル検索は何ですか?!
助けてくれる人に感謝します。
これは、人々のデータセットを使用したツリー形式の複合クエリの例です。
- クエリ-性別が男性で目が緑色、性別が女性、目が青色、またはステータスが単一のすべての人を表示します。パレン形式(性別==男性&&目==緑)|| (性別==女性&&(目==青||ステータス==シングル))
だから木の形でimThinking
解決策は、次のようなデータ構造で各ノードを表すことだと思います
したがって、特定のノードについて、ANDノードの場合は子を評価し、式がtrueになり、すべてのAND子がtrueと評価されるか、OR子がtrueと評価されて再帰する場合は、trueを返します。
私が投げることができるすべての概念的な条件を満たすようですが、それ以来、私はそれを実装します。この問題を他の人にとってよりよく説明するのに役立つように、実際のコードとその動作および写真を後で投稿します。
algorithm - TicTacToeAIが誤った決定を行う
少し背景:C ++でマルチノードツリーを学習する方法として、可能なすべてのTicTacToeボードを生成し、ノードで始まるブランチがそのノードから続くことができるすべてのボードになるようにツリーに格納することにしました。ノードは、1つの動きで続くボードです。その後、そのツリーを決定木として使用してTicTacToeを再生するAIを作成するのは楽しいだろうと思いました。
TTTは、完璧なプレーヤーが負けることのない解決可能な問題であるため、AIを初めて試すのは簡単なAIのようでした。
AIを最初に実装したとき、生成時に各ノードに2つのフィールドを追加しました。Xが勝つ回数とOがそのノードの下のすべての子で勝つ回数です。最善の解決策は、各移動でAIを選択し、最も多く勝つサブツリーを下に移動することであると考えました。それから私はそれがほとんどの場合完璧に機能する一方で、私がそれを打ち負かすことができる方法を見つけたことを発見しました。これは私のコードの問題ではなく、AIにパスを選択させる方法の問題でした。
それから私は、コンピューターの最大の勝利または人間の最大の損失のどちらか多い方のツリーを選択することにしました。これにより、パフォーマンスは向上しましたが、それでも完璧ではありません。私はまだそれを打ち負かすことができました。
ですから、私には2つのアイデアがあり、どちらが優れているかについての意見を期待しています。
1)勝ち負けを最大化する代わりに、勝ちに1、引き分けに0、負けに-1の値を割り当てることができます。次に、その次のノードが損失をもたらす移動になることはできないため、最も高い値を持つツリーを選択することが最良の移動になります。ボード生成の変更は簡単ですが、同じ検索スペースとメモリ使用量を維持します。または...
2)ボードの生成中に、XまたはOのいずれかが次の手で勝つようなボードがある場合、その勝ちを妨げる子だけが生成されます。他の子ノードは考慮されず、その後、生成は通常どおり続行されます。ツリーのサイズを縮小しますが、1ムーブの勝利があるかどうかを判断するアルゴリズムを実装する必要があり、それは線形時間でしか実行できないと思います(ボードの生成が大幅に遅くなると思いますか?)
どちらが良いですか、それともさらに良い解決策がありますか?
matlab - Matlab の決定木
Matlab でヘルプを見ましたが、「classregtree」関数でパラメーターを使用する方法を説明せずに例を提供しています。パラメータを使用した「classregtree」の使用を説明する助けがあれば幸いです。
python - 数値による ID3 ディシジョン ツリー
私は、検証とテスト ファイルを入力として受け取り、予測を返す、Python または任意の言語での ID3 ディシジョン ツリーの実装を探しています。
thisと thisを見つけましたが、それらを数値、たとえばIris datasetに適応させることができませんでした。
コンソールから動作する ID3 ツリーの実装、または Python で記述されたものを知っていますか? または、これを数値で使用する方法についての提案は素晴らしいでしょう。