2016-12-30 7 views
-1

各クラスのトップフィーチャーを簡単に表示する方法はありますか? tfidfに基づいて?Scikit learn-Classification

私はKNeighbors classifer、SVC-Linear、MultinomialNBを使用しています。

第2に、正しく分類されていないドキュメントを表示する方法を探していましたか?私は混乱マトリクスを見ることができますが、誤分類の原因となっている機能を確認するための具体的な文書が必要です。

classifier = SVC(kernel='linear') 
counts = tfidf_vectorizer.fit_transform(data['text'].values).toarray() 
targets = data['class'].values 
classifier.fit(counts, targets) 
counts = tfidf_vectorizer.fit_transform(test['text'].values).toarray() 
predictions = classifier.predict(counts) 

編集:私は、私は唯一のTFIDFのベクトライザーを作成し、分類器をtraingにそれを使用していますコードスニペットを追加しました。

+0

あなたが探している回答を提供できるかどうかを判断できるように、コードを示してください。 –

+0

http://stackoverflow.com/help/how-to-ask –

答えて

0

これまでのコメントと同様に、より具体的な質問があればより良い答えが得られますが、私はいつもこのパッケージを使用しています。

I. sklearnの分類クラスのトップフィーチャを決定することは、実際に使用している個々のツールによって異なります。例えば、RandomForestClassifierGradientBoostingClassiferのような多くのアンサンブルメソッドは、その重要度に基づいて各フィーチャにスコアを付ける.feature_importances_属性が付いています。対照的に、ほとんどの線形モデル(LogisticRegressionまたはRidgeClassifierのような)は、係数のサイズをペナルティする正則化のペナルティを持っています。つまり、係数のサイズはフィーチャの重要性を反映しています(個々のフィーチャの数値スケールを覚えておく必要があります)は、モデルクラスの.coef_属性を使用してアクセスできます。

要約すると、ほぼすべてのSklearnモデルには機能のインポートを抽出する方法がありますが、モデルごとにメソッドが異なります。幸いなことに、Sklearnのドキュメンテーションは素晴らしいですので、私はあなたの特定のモデルを読んで、あなたの最良のアプローチを決定します。また、モデル固有のAPIに加えて、問題の種類に関連付けられたUser Guideも必ずお読みください。

II。誤って分類されたレコードを提供するためには、箱入りのSklearnメソッドはありませんが、モデルをフィードするためにパンダのDataFrameを使用している場合は、このようなコードをいくつか実行してください。

import pandas as pd 
from sklearn.linear_model import RandomForestClassifier 

df = pd.DataFrame(data) 
x = df[[<list of feature columns>]] 
y = df[<target column>] 

mod = RandomForestClassifier() 
mod.fit(x.values, y.values) 

df['predict'] = mod.predict(x.values) 

incorrect = df[df['predict']!=df[<target column>]] 

結果として得られたのデータフレームには、誤って分類されたレコードしか含まれません。

希望すると便利です。

+0

これは本当に助けになりました。 – someone