次のようなデータセットがあるとします。
5.9;0.645;0.12;2;0.075;32;44;0.99547;3.57;0.71;10.2;5
6;0.31;0.47;3.6;0.067;18;42;0.99549;3.39;0.66;11;6
ここで、最初の11列は特徴(酸性度、塩化物など)を示し、最後の列はアイテムに与えられた評価(5または6など)を示します。
データセットは次のようにトレーニングされます。
target = [x[11] for x in dataset]
train = [x[0:11] for x in dataset]
rf = RandomForestClassifier(n_estimators=120, n_jobs=-1)
rf.fit(train, target)
predictions = rf.predict_proba(testdataset)
print predictions[0]
次のようなものを印刷します
[ 0. 0.01666667 0.98333333 0. 0. 0. ]
さて、なぜそれは単一の分類、例えば5または6の評価を出力しないのですか?
ドキュメントには、「入力サンプルの予測クラス確率は、森の木の平均予測クラス確率として計算されます」と書かれていますが、私は理解するのに苦労しています。
使用する場合
print rf.predict(testdataset[-1])
[ 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6.]
それはあなたが期待するようなものを印刷します-少なくともそれは評価のように見えます-しかし私はまだすべての機能を考慮した単一の予測ではなく機能ごとの予測がある理由を理解していませんか?