0

バイナリデータ用にMATLABで決定木をトレーニングしたいと思います。これが私が使用するデータのサンプルです。traindata <87 *239>[239の機能を備えたデータの配列]

1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 ... [till 239]
1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 1 ... [till 239]
....

このデータは、yes/noのオプションしかないフォームに対応しているということです。フォームの結果もバイナリであり、パティネットに何らかの医学的障害があるかどうかという意味があります。分類木を使用しましたが、分類子は2つの数値を示しています。たとえば、x137の値が0.75より大きいかどうかに基づいて、最初のノードを分岐します。データに0.75がなく、yes / noの意味がないため、作業に最適な決定木を使用したかったのです。私たちにとって最良の決定木は、二重変数ではなくブール変数に基づいてトレーニングされたものです。また、データが連続していないことも理解しています。たとえば、上記の表現の代わりに、x137がyes o no(1または0)であることを示しています。誰かがこれを手伝ってくれますか?ブール決定木が適用できない場合は、データを2つの変数と機能にマッピングするソリューションもありがたいです。現在、matlabでclassregtreeを使用しており、トレインとして<87 * 237>、結果として<87*1>を使用しています。

4

2 に答える 2

2

classregtreeオプションの入力パラメータがありますcategorical。このオプションを使用すると、どの入力変数がカテゴリ変数であるかを示すベクトルを渡すことができます (この場合、このベクトルは 1x239、すべて 1 になります)。デシジョン ツリーには、数値のしきい値ではなく、yes/no の決定が含まれている必要があります。

于 2012-05-27T19:37:00.987 に答える
0

classregtree のヘルプから:

t = classregtree(X,y) は、応答 y を X の列の予測子の関数として予測するための決定木 t を作成します。X は、予測子値の n 行 m 列の行列です。y が n 個の応答値のベクトルである場合、classregtree は回帰を実行します。y がカテゴリカル変数、文字配列、または文字列のセル配列である場合、classregtree は分類を実行します。

あなたの場合の y の型は何ですか? あなたのケースでは classregtree が回帰を行っているようですが、分類が必要です。したがって、y はカテゴリ変数である必要があります。

編集: y をカテゴリカルにするには、「名義(y)」を試すことができます。

于 2012-05-27T17:57:43.370 に答える