ランダムフォレストまたはグラデーションブースティングを行うときに、機能エンジニアリングは重要ですか?


9

線形モデル(線形回帰、ロジスティック回帰など)の場合、モデルのパフォーマンスを向上させるために、特徴エンジニアリングは重要なステップです。私の質問は、ランダムフォレストまたは勾配ブースティングを使用しているときに機能エンジニアリングを行うかどうかに関係ありますか?

これらのモデルがディープラーニングモデルではないことは間違いありません。しかし、機能エンジニアリング手法のいくつかは実際にはモデルを改善しないようです。たとえば、私は約200の特徴を含むバイナリ分類問題をやっていて、そのうちの20はカテゴリ特徴です。私は次のことをしました:

  1. ベンチマーク:ランダムフォレスト分類器を元のデータに直接実行しました。AUCは約0.93、精度、再現率、Fスコアは約0.95です(statifiedKfold検証が適用されており、結果に非常に小さなばらつきがあるため、私は言った)

  2. モデルを実行して、カイ2乗検定とANOVA f1検定を実行することにより、特徴の次元を削減しました。結果はほぼ同じです。AUCは約0.93、精度、再現率、Fスコアは約0.95です。

  3. 次に、すべてのカテゴリ機能をワンホットキーで入力し、モデルを再実行しましたが、結果はほぼ同じです。AUCは約0.93、精度、再現率、Fスコアは約0.95です。

  4. 次に、切り捨てられたSVDが適用されて機能がさらに削減され、モデルが再トレーニングされますが、結果は変わりません...

  5. ついに私は多項式項、残りの特徴のクロス項を追加しました。結果はまだ変わっていません...

何か提案してください?ありがとうございました。


1
答えが言うように、それは一般的に重要です。特定のフィーチャエンジニアリングテクニックは、特定の機械学習方法では役に立たない傾向があります。たとえば、ランダムフォレストは、線形モデルとは異なり、予測子の多項式ベースを作成する必要なしに、曲線関係を適切に処理する必要があります。
Scortchi-モニカの回復

回答:


8

GBMやランダムフォレストなどの比較的高度なアルゴリズムを使用すると、機能エンジニアリングによって結果が改善されることは、広く認識されています。全体的な精度と使いやすさの両方に関連するいくつかの理由があります。まず、実際にモデルを使用したい場合、機能にはメンテナンスと実装が必要であり、ユーザーへの説明が必要になることがよくあります。つまり、追加の機能ごとに追加の作業が発生します。そのため、実用的な目的では、精度の向上に実質的に貢献しない機能を削除すると便利です。

全体的な精度に関して、追加の機能や不十分に設計された機能により、信号ではなくノイズでモデルをトレーニングする可能性が高くなります。したがって、ドメイン知識またはデータの検査を使用して、機能を設計する別の方法を提案すると、通常結果が向上します。kaggleブログ-blog.kaggle.com-には、各コンテストの表彰台フィニッシャーからの「彼らのやり方」の記事が含まれています。これらには通常、機能エンジニアリングの説明が含まれます-おそらく、モデルチューニングの説明よりも頻繁に、機能エンジニアリングの重要性を強調します-それらのいくつかは非常に創造的であり、コンテスト主催者によって提供された、またはコンテスト中に発見されたドメイン知識を活用することを含みます。

この最近の記事は、機能の選択/エンジニアリングに使用されている競技中に取得されたドメイン知識の良い例ですhttp://blog.kaggle.com/2017/06/29/2017-data-science-bowl-predicting-lung- Cancer-2nd-place-solution-write-up-daniel-hammack-and-julian-de-wit /(「前処理」および「外部データ」という見出しのセクションが良い例です)。


4

はい、たくさんあります。これに気づく最良の方法は、カグルコンペティションを行うことです。多くのユーザーが同じモデル(主にグラディエントブースティングとスタッキング)を使用していることがわかりますが、機能のエンジニアリングと選択は、上位5%のリーダーボードスコアと上位20%の違いを生み出すものです。

ただし、フィーチャの共線性を確認する必要もあります。相関するフィーチャを追加しすぎると、モデルの精度が低下する場合があります。

また、モデルスコアを大幅に向上させることができるハイパーパラメーターを微調整する必要もあります。

結局のところ、モデルが改善しなかった場合は、使用したアルゴリズムが問題の種類に適していない可能性があります。アルゴリズムが普及しても、それがあらゆる種類の問題に適しているとは限りません。


2

ブースターユニットとしてツリーを使用していると仮定すると(各反復でフィットされるモデル)、厳密に単調な変換(たとえば、二乗、スケーリング、lnなど)などの比較的単純な変換が結果に影響を与えないことは事実です、なぜなら木はそのような変換に対して不変だからです。また、ツリーは本質的に相互作用をモデル化できるため、変数間の相互作用を作成してもあまり役に立ちません(ツリーを十分に深くできる場合)。詳細については、統計学習要素の 352ページ(セクション10.7)を参照してください。

しかし、私はあなたが説明するかなり複雑な変換が結果全体に影響を与えることを期待しています。

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