これは特徴エンジニアリングの良い習慣ですか?


10

機能エンジニアリングについて実際的な質問があります...ロジスティック回帰を使用して住宅価格を予測し、郵便番号を含む一連の機能を使用したいとします。次に、機能の重要度を確認したところ、zipはかなり優れた機能であることがわかったので、zipに基づいていくつかの機能を追加することにしました。各ジップの病院の。これらの4つの新機能により、モデルのパフォーマンスが向上しました。だから私はさらにzip関連の機能を追加します...そしてこのサイクルが繰り返されます。最終的に、モデルはこれらのzip関連の機能によって支配されますよね?

私の質問:

  1. そもそもこれらを行うことには意味がありますか?
  2. はいの場合、このサイクルを停止するのに適切なタイミングを知るにはどうすればよいですか?
  3. そうでない場合、なぜでしょうか?

回答:


6

あなたは、新しいデータを追加し続けることができる場合(例えばZIPコードすなわち領域としてメインコンセプトに基づく)モデルのパフォーマンスが向上し、それはもちろん、あなたが唯一の最終的な結果を気に仮定して...許可されています。

赤池情報量基準(AIC)や同等のベイジアン情報量基準(BIC)など、これをガイドするメトリックがあります。これらは基本的に、そのパフォーマンスに基づいてモデルを選択するのに役立ち、導入され、推定する必要があるすべての追加パラメーターに対して罰せられます。AICは次のようになります。

AIC=2k2ln(L^)

ここで、は推定するパラメーターの数、つまり適用する特徴の数です。ロジスティック回帰では、各パラメーターが1つの係数を持つためです。は最尤法の最大値です(最適スコアに相当)。BICは単にモデルを罰するためにわずかに異なる方法で使用します。kL^k

これらの基準は、より多くのパラメーターを持つモデルを試すことができ、AICまたはBICの値が最も優れているモデルを取るだけなので、いつ停止するかを判断するのに役立ちます。

モデルにZIPに関連しない他の機能がまだある場合、それらは潜在的に圧倒される可能性があります-使用するモデルによって異なります。ただし、家の床面積など、ZIP情報に単純に含めることができないデータセットについても説明する場合があります(これは郵便番号から比較的独立していると想定しています)。

この場合、これらを主成分分析のようなものと比較することができます。この場合、機能のコレクションはデータセットの分散の1つの次元を説明し、他の機能は別のディメンションを説明します。したがって、ZIP関連の機能がいくつあっても、床面積の重要性を説明することはできません。


7

1)はい、それは理にかなっています。手動で特徴を作成しようとすると、学習者(つまりモデル)が生データからより多くの情報を把握するのに役立ちます。これは、生データが常に学習しやすい形式であるとは限らないため、常にそこから特徴を構築できるためです。追加する機能は1つの機能に基づいています。これは一般的です。ただし、学習者であるロジスティック回帰は、多重共線性に敏感です。追加する機能と機能の数に注意する必要があります。そうしないと、モデルがオーバーフィットする可能性があります。

2)ロジスティック回帰を使用しているので、常にAICを使用するか、カイ二乗検定(適合度の検定)などの統計的有意性検定を実行してから、新しい構造を追加してから、応答の分布が本当に異なるかどうかを判断できます。この構造の有無にかかわらず。これは、データが不足している場合に特に役立ちます。別の方法は、モデルにペナルティ項を追加することです。たとえば、ロジスティックラッソ回帰。

3)新しい機能を追加し続けることは常に良い考えではありません。高次元の呪いに気をつけて。新しい機能を追加すると、実際にはデータに新しいディメンションが追加されます。初心者は、最悪の場合、クラスに関する新しい情報を提供しないため、より多くの機能を収集しても害はないと考えるかもしれません。しかし、実際には、それらの利点は、次元の呪いよりも重要です。機械学習セッション6 について知っておくと役立つ情報が役立つことを願っています。


@ user3768495は、たとえば相互検証を使用して、サンプル外のモデルのパフォーマンスを評価していますか?そうであれば、多重共線性は問題にならず、検証パフォーマンスの低下を通じて過剰適合の兆候を示すため、過剰適合について心配する必要はありません。
rinspy

@rinspyオーバーフィッティングには多くの面があります。検証セットを使用すると、過剰適合を回避できますが、問題を解決できません。たとえば、トレーニングデータ(トレーニングセットと検証セットに分割されます)と実際の母集団の間の不整合な分布。モデルでもトレーニングデータで十分に機能しますが、実際の状況に一般化できない場合があります。私の回答からの参照は、過適合についても話しました。
Fansly

真実ですが、多重共線性を回避しても、共変量シフトから生じる「過剰適合」には役立ちません。私が言っているのは、マルチコリニアリティが、予測モデル(記述モデルではない)の構築に関心がある場合は問題にならないということです。
rinspy

オーバーフィッティングに関する私の概念は、モデルがトレーニングデータからではなく、新しいデータセットへの一般化に失敗した場合についてです。これを
Fansly

4

通常、機能が豊富であるほど優れています。

ただし、一般に、回帰は、相関性の高い(多重共線性)データではうまく機能しません。この方法で機能を拡張する場合、覚えておきたいことがあります。

このまさにトピック(および軽減するための潜在的な方法)に関する多くの情報がありますが、Google回帰と多重共線性だけです。

要するに、

  1. はい。確実に。
  2. @ n1k31t4にはいくつかの良い提案があります。モデルを改善すると思われる機能を自由に生成してから、PCAやその他の機能選択手法などの手法を使用して、重要なものに制限することができます。
  3. 考慮すべき他のことは、それが努力対結果のようにどれほど実用的であるかです。

0

特徴はモデルの情報です。情報が多いほど、実行と予測が可能になります。値が小さいほど、値を予測することが難しくなります。したがって、短いnaserはyesです。できるだけ多くの機能を備えることは常に価値があります。情報の過負荷もプロセッサを焼く可能性があるため、これには常に制限があります。そのため、設計されている機能の数に注意してください。また、不要な機能はバーンアウトに追加されるだけなので、特定の機能をクリーンアップすることは常に良い習慣です。データの前処理フェーズ全体はそれについてです。

最初の答えはそれについていくつかの良い詳細を持っています。サイクルの停止に関する限り、モデルのパフォーマンスがどこで停止したかを確認するために知っておくべき測定値と要素がいくつかあり、それらはRMSEのような測定値です。簡単な例ではxgboost、データに回帰を使用し、サイクル数を指定します。モデルを実行すると、各サイクルのRMSEが得られます。一定のサイクルの後でモデルがプラトーになったと推測できる限界まで減少します。これがモデルの調整と最適化の仕組みです。

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