web-dev-qa-db-ja.com

LogisticRegression.predict_probaのscikit-learnの戻り値

LogisticRegression.predict_proba関数は正確に何を返しますか?

私の例では、次のような結果が得られます。

[[  4.65761066e-03   9.95342389e-01]
 [  9.75851270e-01   2.41487300e-02]
 [  9.99983374e-01   1.66258341e-05]]

シグモイド関数を使用した他の計算から、2番目の列は確率であることがわかります。 documentation は、最初の列はn_samplesですが、サンプルはレビューであり、数値ではなくテキストであるため、そうではないことを示しています。また、ドキュメントには、2番目の列はn_classesであると書かれています。私は2つのクラス(つまり+1-1)しか持っておらず、関数は実際にクラスであるサンプルの確率を計算することを想定していますが、クラス自体ではないため、 。

最初の列は本当に何であり、なぜそこにあるのですか?

18
_4.65761066e-03 + 9.95342389e-01 = 1
9.75851270e-01 + 2.41487300e-02 = 1
9.99983374e-01 + 1.66258341e-05 = 1
_

最初の列は、エントリに_-1_ラベルがある確率です。2番目の列は、エントリに_+1_ラベルがある確率です。

正のラベルについてのみ予測確率を取得する場合は、logistic_model.predict_proba(data)[:,1]を使用できます。これにより、_[9.95342389e-01, 2.41487300e-02, 1.66258341e-05]_の結果が得られます。

38
iulian