2

Wekaを使用していて、ランダムフォレストで回帰を実行したいと思います。具体的には、データセットがあります。

Feature1,Feature2,...,FeatureN,Class
1.0,X,...,1.4,Good
1.2,Y,...,1.5,Good
1.2,F,...,1.6,Bad
1.1,R,...,1.5,Great
0.9,J,...,1.1,Horrible
0.5,K,...,1.5,Terrific
.
.
.

最も可能性の高いクラスを予測することを学ぶのではなく、特定の特徴ベクトルのクラス全体の確率分布を学びたいと思います。私の直感では、WekaでRandomForestモデルだけを使用することは、二乗誤差(条件付き確率分布)ではなく絶対誤差(最尤法)を最小化しようとするため、適切ではありません。その直感は正しいですか?分類ではなく回帰を実行したい場合に使用するより良いモデルはありますか?

編集:私は実際にそれが実際には問題ではないかもしれないと今考えています。おそらく、分類器は条件付き確率P(Class | Feature1、...、FeatureN)を学習しており、結果の分類は、その確率分布を最大化するクラス内のcを見つけるだけです。したがって、RandomForest分類器は条件付き確率分布を与えることができるはずです。もう少し考えなければなりませんでした。それが間違っている場合は、私を訂正してください。

4

1 に答える 1

2

各クラスの確率を明示的に予測したい場合は、異なる入力データが必要です。つまり、予測する値を置き換える必要があります。クラス ラベルを持つ 1 つのデータ セットの代わりに、一意の特徴ベクトルごとに集計されたデータを含む n 個のデータ セット (n 個の異なるラベル) が必要になります。あなたのデータは次のようになります

Feature1,...,Good
1.0,...,0.5
0.3,...,1.0

Feature1,...,Bad
1.0,...,0.8
0.3,...,0.1

等々。クラスごとに 1 つのモデルを学習し、分類するデータに対して個別に実行する必要があります。つまり、ラベルごとにモデルを学習して、特徴ベクトルが与えられたときにそのクラスに含まれる確率である数値を予測します。

確率を明示的に予測する必要がない場合は、学習するモデルで確率を利用する Weka のベイジアン分類器をご覧ください。

于 2012-11-07T19:04:33.097 に答える