データセットでランダムフォレスト、勾配ブースティング、SVMなどの機械学習モデルを実行したいと思います。データセットには200を超える予測変数があり、ターゲットクラスはバイナリ変数です。
モデルフィッティングの前に特徴選択を実行する必要がありますか?すべての予測子変数を使用してモデルを直接当てはめると、モデルのパフォーマンスに大きな影響を与えますか、それとも大きな違いはありませんか?
データセットでランダムフォレスト、勾配ブースティング、SVMなどの機械学習モデルを実行したいと思います。データセットには200を超える予測変数があり、ターゲットクラスはバイナリ変数です。
モデルフィッティングの前に特徴選択を実行する必要がありますか?すべての予測子変数を使用してモデルを直接当てはめると、モデルのパフォーマンスに大きな影響を与えますか、それとも大きな違いはありませんか?
回答:
機能の選択は、回避すべき段階と考えることができます。問題はNP-Completeであるため、機能を削除して実際にデータを失うために計算時間を費やす必要があり、機能の選択に必要な方法は最適ではありません。それを使うことはあなたが拒否することができない申し出のように聞こえません。
それで、それを使用する利点は何ですか?
次に、特定のケースについて説明します。まず、機能とコンセプトの間の相関関係の計算から始めることをお勧めします。すべての機能間の相関関係の計算も参考になります。多くの種類の有用な相関関係(ピアソン、相互情報など)とそれらに影響を与える可能性のある多くの属性(疎性、概念の不均衡など)があることに注意してください。機能選択アルゴリズムを盲目的に使用する代わりにそれらを調べることで、将来の時間を大幅に節約できる可能性があります。
データセットで実行時の問題が多く発生することはないと思います。ただし、サンプル/機能の比率はそれほど高くないため、機能を選択するとメリットが得られる可能性があります。
複雑度の低い分類子(たとえば、線形回帰、小さな決定木)を選択し、それをベンチマークとして使用します。完全なデータセットと、機能のサブセットを含むデータセットで試してください。このようなベンチマークは、機能選択の使用をガイドします。多くのオプション(たとえば、選択する機能の数、機能選択アルゴリズム)があり、目標は通常は予測であり、機能選択ではないため、フィードバックは少なくとも1ステップ離れているため、このようなガイダンスが必要になります。
数か月前にCross Validatedに非常によく似た質問を投稿し、非常に多くの回答を得ました。回答とコメントを読んでください。
/stats/215154/variable-selection-for-predictive-modeling-really-needed-in-2016
はい、機能の選択は、データのラングリングとクリーニングを実行した後、機械学習の問題にとって最も重要なタスクの1つです。XGBOOST機能の重要性を使用して、機能選択プロセスを実装する機能をここで見つけることができます。