1

マルチクラスのケースに対するScikitのロジスティック回帰の適切な呼び出しに問題があります。私はlbgfsソルバーを使用していますが、多項式に設定されたmulti_classパラメーターがあります。SciKitのマルチクラスロジスティック回帰Learn

実際のクラスラベルをモデルにフィットさせるにはどうすればよいかわかりません。私は、それが[n_samples、m_classes] dataframeを渡すランダムなフォレストクラシファイアのマルチクラスと同様であると仮定していました。しかし、これを行うと、データが悪い形であるというエラーが発生します。 ValueError:不正な入力形状(20,5) - この小さな例では、5つのクラス、20のサンプルがありました。

検査では、真理値が[n_samples]として渡されているというメッセージが表示されますが、これは私が得ているエラーと一致しますが、モデルを訓練する方法はわかりません複数のクラス。だから、これは私の質問です:どのようにフィット関数にクラスラベルの完全なセットを渡すのですか?

インターネット上でモデルを作るためのサンプルコードや、StackOverflowでこの質問を見つけることができませんでした。しかし、誰かがそれを行う方法を知っている必要があると感じています!以下のコード、train_features =中

[n_samples、nn_features]、truth_train = [n_samples、m_classes]

clf = LogisticRegressionCV(class_weight='balanced', multi_class='multinomial', solver='lbfgs') 
clf.fit(train_features, truth_train) 
pred = clf.predict(test_features) 

答えて

4

はあなたが短い中で、紛らわしい用語マルチクラスマルチラベルhttp://scikit-learn.org/stable/modules/multiclass.htmlように見える:

  • Multiclass classification means a classification task with more than two classes; e.g., classify a set of images of fruits which may be oranges, apples, or pears. Multiclass classification makes the assumption that each sample is assigned to one and only one label: a fruit can be either an apple or a pear but not both at the same time.

このようにデータが[n_samples, n_features]あるとラベルが[n_samples]

です
  • Multilabel classification assigns to each sample a set of target labels. This can be thought as predicting properties of a data-point that are not mutually exclusive, such as topics that are relevant for a document. A text might be about any of religion, politics, finance or education at the same time or none of these.

このようにデータが[n_samples, n_features]あるとラベルが[n_samples, n_labels]

していて、(マルチクラスラベル用として1次元のでなければなりません)マルチラベルを探しているように見えます。現在、sklearnでは、マルチラベルをサポートする唯一の方法は、決定木、ランダムフォレスト、最寄りの近隣、リッジ回帰です。

あなたはdiffentモデルとmultlabel問題を勉強したい場合は、単にあなたのロジスティック回帰の周りにマルチラベルラッパーとしてOneVsRestClassifierを使用

http://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier

+0

は、ご返信いただきありがとうございます。私は実際にマルチクラスを探しています。つまり、各サンプルは1つのクラスだけです。しかし、私がフォレストで行ったことは、クラスの割り当てをブール値の配列に変換していたので、n x m配列で終わったのです。だから私はあなたを正しく理解していれば、私は整数に私のクラスラベルを変換し、単一のn_sample長い配列を作成する必要があります。あれは正しいですか?ご協力いただきありがとうございます。 –

+0

はい、木と同じようにする必要があります。それ以外の場合は、マルチラベルモデルに適合します。 – lejlot

+0

@lejlot私はscikitロジスティック回帰をスカラーのマルチ予測に使用しました。私は、dukebodyの回答がhttps://stackoverflow.com/questions/36760000/python-how-to-use-multinomial-logistic-regression-using-sklearnでもうまくいきます。私はあなたの反応を誤解しているのでしょうか? –

関連する問題