scikit-learn における predict と predict_proba の違い 質問する

scikit-learn における predict と predict_proba の違い 質問する

モデルを作成し、ターゲット変数が01、 のいずれかである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両方を使用することが互いにどのように関連しているかを理解しようとしています。predictpredict_proba

ベストアンサー1

  • predict()を予測するために使用される実際のクラス(あなたの場合は0、、、1またはのいずれかです2)。
  • predict_proba()を予測するために使用されるクラス確率

あなたが共有してくれた出力例から、

  • predict()0のクラス確率は00.6 なので、クラスが出力されます。
  • [0.6, 0.2, 0.2]は、クラス、、predict_probaのクラス確率がそれぞれ、、 であることを単純に表すの出力です。0120.60.20.2

ドキュメントに記載されているようにpredict_proba、結果の配列は、使用したラベルに基づいて順序付けられます。

すべてのクラスに対して返される推定値は、クラスのラベル順に並べられます。

したがって、クラス ラベルが の場合[0, 1, 2]、 の対応する出力にはpredict_proba、対応する確率が含まれます。0.6は、インスタンスが として分類される確率であり00.2は、インスタンスがそれぞれ1およびとして分類される確率です2


より詳しい説明については、記事を参照してください。scikit-learn の predict() と predict_proba() の違いは何ですかTDS で。

おすすめ記事