どちらが先か:アルゴリズムのベンチマーク、機能の選択、パラメーターの調整?


11

例えば分類をしようとするとき、私のアプローチは現在

  1. 最初にさまざまなアルゴリズムを試し、それらをベンチマークする
  2. 上記の1から最適なアルゴリズムで特徴選択を実行する
  3. 選択した機能とアルゴリズムを使用してパラメーターを調整する

ただし、他のアルゴリズムが最適なパラメーター/最適な機能で最適化されている場合、選択したアルゴリズムよりも優れたアルゴリズムがある可能性があることを自分で納得できないことがよくあります。同時に、すべてのアルゴリズム*パラメータ*機能で検索を実行すると、時間がかかりすぎます。

適切なアプローチ/シーケンスに関する提案はありますか?

回答:


8

機能エンジニアリングとしての機能選択を意味していると思います。私が通常従うプロセスは、一部の人々がそうであると私は見ています

  1. 特徴エンジニアリング
  2. いくつかのアルゴリズムを試してください。通常は、機能でRandomForest、Gradient Boosted Trees、ニュートラルネットワーク、SVMなどの高性能なアルゴリズムを試してください。

    2.1狭い範囲のパラメーターでグリッド検索などの簡単なパラメーター調整を行う

ステップ2の結果が満足のいくものでない場合は、ステップ1に戻ってさらに機能を生成するか、冗長な機能を削除して最適な機能を維持します。通常、この機能の選択はと呼ばれます。新機能のアイデアが不足している場合は、より多くのアルゴリズムを試してください。

結果が問題ない場合、または希望する結果に近い場合は、手順3に進みます。

  1. 広範なパラメーター調整

これを行う理由は、分類はすべて特徴エンジニアリングに関するものであり、コンピュータービジョンなどの特定の問題に合わせてカスタマイズされたディープラーニングなどの信じられないほど強力な分類子を知らない限りです。優れた機能を生成することが重要です。分類子の選択は重要ですが、重要ではありません。上記のすべての分類子は、パフォーマンスの点でかなり同等であり、ほとんどの場合、最良の分類子はそれらの1つであることがわかります。

パラメータのチューニングにより、パフォーマンスが大幅に向上する場合があります。しかし、優れた機能がなければ、チューニングはあまり役に立ちません。常にパラメータの調整を行う時間があることに留意してください。また、パラメータを大幅に調整する意味はありません。新しい機能を見つけて、すべてをやり直します。


2

ちょっと私はあなたの質問を見た。最初に特徴選択を行い、次に交差検証を使用してモデルを調整するのは完全に間違っています。統計学習の要素とこのブログ投稿では、 CVメソッドは、モデルの構築がすべてCVループ内で行われた場合にのみバイアスされないことが明確に述べられています。したがって、パラメータ調整のためにCVループ内で機能選択を行います。これは、RのMLRパッケージのフィルターラッパーを使用して簡単に行うことができます。


1

私はすでにここで同様の質問に答えました。プロセスは次のようになります。

  • 変換と削減:変換、平均および中央値のスケーリングなどのプロセスが含まれます。
  • 機能の選択:これは、しきい値の選択、サブセットの選択など、さまざまな方法で実行できます。
  • 予測モデルの設計:手元にある機能に応じて、トレーニングデータの予測モデルを設計します。
  • 相互検証とパラメーター調整:
  • 最終予測、検証

モデルを選択する前に、常に機能エンジニアリングを試してください。次に、最良の特徴(または問題/従属変数により良い影響を与える傾向がある特徴)に従ってモデルを選択します。


0

新しいツールのしくみを学ぶことに時間を費やす準備ができている場合は、autosklearnを試すことができます。MLパイプラインを構築するために必要なすべてのことを行います。特徴の前処理、選択、モデルアンサンブルの構築、および相互検証による調整。あなたが持っているデータの量に応じて、それは良い予測へのより速い方法かもしれませんし、そうでないかもしれません。しかし、それは確かに有望なものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.