2017-09-15 13 views
1

MultinomialNBと組み合わせてSelectFromModelと組み合わせて、テキスト分類タスクで機能を選択しています。Python - Naive-Bayesを使用したSelectFromModel

SelectFromModel(estimator=MultinomialNB(alpha=1.0)) 

SelectFromModelは計算することによって、機能の重要性を決定します。

importances = np.linalg.norm(estimator.coef_, axis=0,ord=norm_order) 

をしかし、高周波数の機能が低い絶対値になりますので、これは、私が何をしたいの正反対ではないでしょうか?

特定のクラスが与えられているフィーチャの重要性を判断するには、すでによく質問されていますが、フィーチャの重要性は一般的にはありません。

NBと組み合わせてSelectFromModelを使用して機能の重要性を判断する方法はありますか、このタスクに適した他の方法がありますか?

+1

もう少し詳しく説明してください。 「高い頻度のエフェクト」とはどういう意味ですか?また、これは分類作業なので、明らかに機能の重要性はクラスに従います。あなたが望むものを詳しく説明できますか? –

+0

私は、例えば、CountVectorizerを使用して、(文書内の)高頻度の特徴を意味します。 SelectFromModelは、基本的に分類タスクの各機能の重要度を判断し、SVCなどの細かい分類子を処理する「最も重要な機能」を選択しますが、説明しようとするとNBでは機能しません。 – Characeae

答えて

0

クロスバリデーションを使用した再帰的機能消去と呼ばれる機能があります。これはRFECV in sklearnとも呼ばれます。再帰的に重要度に従ってフィーチャのランク付けを行い、推定値を指定して最適な数のフィーチャを取得するために相互検証を実行します。詳細についてはexample hereをご覧ください。

selectFromModelがNaiveBayesで動作しない理由はわかりません。私はそれに関連するものを見つけたらこの答えを更新します。その間、お客様のニーズに合ったRFECVを確認することができます。

関連する問題