BLOCKQUOTE機能選択のテクニックに関する提案?
私は機械学習の学生や初心者です。私は機能をしたい
列の選択。私のデータセットは50000 X 370であり、それはバイナリの 分類問題です。 最初にstd.deviation = 0の列を削除した後、重複する列を削除した後、ROC曲線の面積が最も大きい20の機能をチェックアウトしました。 PCAを行う次のステップは何でしょうか?誰でも機能の選択に従う一連のステップを与えることができますか?
BLOCKQUOTE機能選択のテクニックに関する提案?
私は機械学習の学生や初心者です。私は機能をしたい
列の選択。私のデータセットは50000 X 370であり、それはバイナリの 分類問題です。 最初にstd.deviation = 0の列を削除した後、重複する列を削除した後、ROC曲線の面積が最も大きい20の機能をチェックアウトしました。 PCAを行う次のステップは何でしょうか?誰でも機能の選択に従う一連のステップを与えることができますか?
すでに多くの前処理が行われています。私が推奨する唯一の追加のステップは、PCA後に値を正規化することです。それで、あなたのデータはあなたの学習アルゴリズムに供給される準備ができているはずです。
PCAを避けたいですか?あなたの機能間の相関があまり強くない場合、これは大丈夫かもしれません。その後、PCAをスキップして値を正規化します。
L1正規化を試してください。関連性の低い機能を削除する標準的な方法です。
あなたが技術/アルゴリズムを、以下試してください可能性があります
L1正則:この疎な特徴行列を生成します。ほとんどのフィーチャウェイトはゼロになります。しかし、このテクニックは、高次元のデータセットを持っている場合に便利です。正規化をサポートしないアルゴリズムがあります。
シーケンシャル機能の選択:正規化をサポートしていないアルゴリズムに役立つことがあります。このようなアルゴリズムは、問題に関連性の高い特徴のサブセットを自動的に選択する。これについての詳細は、(1)Comparative Study of Techniques for Large Scale Feature Selection、F. Ferri、P. Pudil、M. Hatef、およびJ. Kittlerにあります。大規模な特徴選択のための技術の比較研究。 Pattern Recognition in Practice IV、403-413ページ、1994。(2)Feature selection in scikit-learn。
Dimentionality削減:あなたのデータは線形分離可能である、すなわち、あなたの問題が線形である場合 PCA(主成分分析)とLDA(線形判別分析)がうまく動作します。データが線形に分離できない場合は、カーネルの主成分分析を試みることができます。
ランダムフォレストの重要な機能:これは、機能の重要度(数値)を与えるアンサンブル手法です。貴重な機能を捨てることができます。
私はランダムフォレストが情報獲得に作用することを知っています。だから私は情報の利得が最大である最初の20の変数だけを選ぶならば。それでは、私はトップ20の機能を持っているので、私はpca、正規化、および他の方法をする必要はないと言うことができますか?私はそう言っているのでしょうか? –
ベスト20の機能を選択することについて非常に具体的な場合は、答えは「はい」です。 –
私は最初の部分を得ました。あなたは問題の2番目の部分についてコメントすることができます。 –
固定された手順はありません。あなたが習得したすべての前処理ステップは、ほとんどの場合理にかなっています。他の人は、L1正則化やランダムフォレストのような追加的なステップについても言及しています。しかし、私の主なアドバイスは:それをやり過ごさないでください。あなたの学習アルゴリズムのためにいくつかの作業を任せてください。 –