モデルを作成し、ターゲット変数が0
、1
、 のいずれかである2
とします。 を使用するとpredict
、答えは 0、1、または 2 のいずれかになるようです。 しかし、 を使用するとpredict_proba
、次のように各行に 3 つの列がある行が得られます。
model = ... Classifier # It could be any classifier
m1 = model.predict(mytest)
m2= model.predict_proba(mytest)
# Now suppose m1[3] = [0.6, 0.2, 0.2]
predict と の両方を使用するとしますpredict_proba
。インデックス 3 で の結果とともに上記の結果が得られた場合、predict の結果のインデックス 3 には 0 が表示されるはずです。これは本当でしょうか。同じモデルでとのpredict_proba
両方を使用することが互いにどのように関連しているかを理解しようとしています。predict
predict_proba
ベストアンサー1
predict()
を予測するために使用される実際のクラス(あなたの場合は0
、、、1
またはのいずれかです2
)。predict_proba()
を予測するために使用されるクラス確率
あなたが共有してくれた出力例から、
predict()
0
のクラス確率は0
0.6 なので、クラスが出力されます。[0.6, 0.2, 0.2]
は、クラス、、predict_proba
のクラス確率がそれぞれ、、 であることを単純に表すの出力です。0
1
2
0.6
0.2
0.2
ドキュメントに記載されているようにpredict_proba
、結果の配列は、使用したラベルに基づいて順序付けられます。
すべてのクラスに対して返される推定値は、クラスのラベル順に並べられます。
したがって、クラス ラベルが の場合[0, 1, 2]
、 の対応する出力にはpredict_proba
、対応する確率が含まれます。0.6
は、インスタンスが として分類される確率であり0
、0.2
は、インスタンスがそれぞれ1
およびとして分類される確率です2
。
より詳しい説明については、記事を参照してください。scikit-learn の predict() と predict_proba() の違いは何ですかTDS で。