2016-09-28 4 views
0

分類の問題がある場合、クラスを予測するだけでなく、クラスである確率を返す必要がある場合もあります。クラスごとに分類子を作成せずに、すべてのクラスが予測する確率をどのようにして得られますか?

すなわちP(Y = 0 | x)は、P(Y = 1 | x)は、P(Y = 2 | X)、···、P(Y = C | X)

建物なしy = 0、y = 1、y = 2 ... y = Cをそれぞれ予測する新しい分類器。トレーニングC分類子(C = 100としましょう)は非常に遅い可能性があります。

これを行うには何ができますか?どの分類子が自然にすべての確率を簡単に与えることができますか(私が知っているのは、100ノードのニューラルネットワークを使用しています)?しかし、私が伝統的なランダムな森林を使うと、私はそれをすることができませんよね?私はPython Scikit-Learnライブラリを使用します。 predict_probaを()マルチクラスについて

Sklearnのマニュアルを参照して:あなたは確率が、メソッドを持っているsklearn-分類を探したい場合は

+0

どのような種類のデータを扱っていますか?良い、昔ながらの多項ロジスティック回帰は、確率を予測するでしょう。 –

+0

一般。私の場合は数値と画像の両方であり、両方が一緒に混合されています。ロジスティック回帰以外に何かありますか? – Log0

+0

間違っています。 Scikit-Learnの 'RandomForestClassifier'は' predict_proba(X) '関数を持っています。これは、すべてのクラスの確率分布を一度に得ることができます。 – user1808924

答えて

2

[http://scikit-learn.org/stable/modules/multiclass.html]

すべての分類は、マルチクラス分類することができるscikit-学びます。だからあなたは自分で100のモデルを構築する必要はありません。以下は

scikit-学ぶ戦略によってグループ化でサポートされている分類の要約です:

  • 本来のマルチクラス:ナイーブベイズ、LDAとQDA、決定木、 ランダムフォレスト、最寄りの隣人、= multi_classを設定します」多項式 ' はsklearn.linear_model.LogisticRegressionにあります。
  • サポートマルチラベル:決定木、ランダムフォレスト、最寄りの近隣、リッジ回帰。
  • 1対1:sklearn.svm.SVC。
  • 1-Vs-All:sklearn.svm.SVC以外のすべてのリニアモデル。
0

ランダムフォレストは実際に複数のクラスに対してP(Y/x)を与えます。ほとんどの場合、 P(Y/x)は、次のように取ることができます。

P(Y/x)=クラス/総ツリー数に投票するツリーの数。

しかし、最高のクラスが260票、2票230票、5票10票、1票が260票、他のクラスがそれぞれ40回の投票では、2番目のケースでの予測が1番目のケースに比べてより自信を持っているので、ユースケースに応じて信頼メトリックを算出します。

関連する問題