どの機能がより重要かを推定するには、どの機械学習アルゴリズムが適していますか?


12

変更しない機能の最小数と、変更して結果に大きな影響を与える可能性のあるいくつかの追加機能を持つデータがあります。私のデータセットは次のようになります。

機能は、A、B、C(常に存在)、およびD、E、F、G、H(時々存在)です。

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

結果の値を予測したいのですが、追加のパラメーターの組み合わせは結果を決定するために非常に重要です。この例では、EとFの存在は大きな結果をもたらしますが、EとGの存在はそうではありません。この現象を捉えるには、どの機械学習アルゴリズムまたはテクニックが適していますか?


「ときどき存在する」とは、その値を時々しか知らないという意味ですか?それとも、ほとんどの場合、彼らは役割を果たさないことが知られていますか?それとも別の何か?
デビッドJ.ハリス

@ DavidJ.Harris「ときどき存在する」とは、特定のトレーニングの例がプロパティを所有していないことを意味します。ゼロに等しかったようです。私の問題では、すべての機能が特定の範囲(たとえば、5〜15または100〜1000)の正数になります。
ベンジャミン・クルージエ

1
このリンクを見て良いかもしれませんeren.0fees.net/2012/10/22/...
erogol

回答:


14

これは、機械学習の研究の主要な分野の1つであり、特徴選択として知られています。

一般に、機能の最適なサブセットが何であるか(それらを結合できる予測モデルへの入力用)を言う唯一の方法は、可能なすべてのサブセットを試すことです。これは通常不可能であるため、人々はさまざまなヒューリスティックによって機能サブセットのスペースをサンプリングしようとします(いくつかの典型的なアプローチについては記事を参照してください)。


3

私の理解では、変数の重要性の尺度を探しています。これらは、いくつかの異なる理論的アプローチに基づいたいくつかのフレーバーで提供されますが、すべて、あなたが話しているアルゴリズムを最適化するために使用される方法への強力なリンクを持っています。一般に、各機械学習アルゴリズムには標準的な最適化方法があります。ニューラルネットワークの逆伝播、SVMの逐次最小最適化、さまざまな情報基準、カイ2乗有意性またはジニ不純物を含む決定木の統計的有意性テスト。もちろん、アルゴリズムごとに他のより新しい最適化手法が頻繁に提案されています。

各アルゴリズムのこれらの最適化方法は、基本的に手元のモデルの変数の重要度を定義します。基本的に、アルゴリズムが実行している最適化ステップの結果の近似または解釈可能な表現を探しています。ただし、これにはいくつかの理由で問題があります。

  1. 選択は多くの場合確率的なプロセス自体であるため、モデルのフォーム選択に対する特定の変数の影響を判断することの難しさ変数はモデル選択にある程度影響するため、変数がモデルの最終予測に重要でない場合でも、モデルフォーム自体を決定的に形作った可能性があります。モデルの生成自体が多くの場合確率的(パーティクルスウォーム最適化またはバギング法などを使用して最適化される)であるため、特定の変数がその形状をどのように形成したかを正確に理解することは困難です。

  2. 単一の変数の重要性を抽出することの難しさは、それが別の変数と連動または相互作用する場合にのみ重要になる可能性があることを考えます。

  3. 一部の変数は、一部の観測でのみ重要になる場合があります。他の観察結果の重要性の欠如は、実際の差を平均化することによって全体的な重要性の測定を混乱させる可能性があります。

変数の重要度のメトリックすぐに解釈取得することも困難である正確に、それは(特に袋詰めの場合)、単一の番号を生成しないかもしれないとして、モデルで定義されています。代わりに、これらの場合、各変数の重要度の分布があります。

これらの問題を克服する1つの方法は、摂動を使用することです。これは、変数にランダムノイズを追加し、これが結果にどのように影響するかを確認することにより、最終モデルを分析する方法です。利点は、シミュレーションを通じてどの変数が経験的に最も重要であるかを見つけることができることです-削除された場合、どの変数が予測を最も破壊するかという質問に答えます。欠点は、変数が削除/摂動されたとしても、モデル(再訓練された場合)が他の変数を使用してその効果を再構築できる可能性が高いことです。トレーニング済みモデルの重要度を示しますが、すべての可能なモデル全体の重要度は示しません。


3

@Bitwiseが言及しているように、特徴選択または特徴抽出はそれ自体が研究の大きな領域であり、それを行う方法は無数にあります。

私の意見では他の答えはすべて有効ですが、最終的にはおそらくあなたはほとんどのことをやり、あなたにとって最も直感的であり、あなたが最もよく理解している方法を選ぶでしょう。私はまだ2つの可能なオプションを追加します。

重回帰はおそらく最も古い手法です。モデルを適合させて、予測子からの応答を記述し、応答に大きな影響を与える予測子(大きな比例係数)のみを保持するという考え方です。ここでは、おそらくとしてD、E、FとGの不在を再コーディングしなければならないD=0E=0F=0、G =0またはそのような何か。

それがふさわしい人気を得たことのないもう1つの手法は、共慣性解析(標準解析の変形)です。私が知っている限り、それの実装はありません、そして、あなたは最初から始めなければなりません(例えばそこに)。これは、結果に一致する機能の最適な線形結合を見つける線形手法です。このブログ投稿は、その使用方法の例を示しています。


2

情報ゲイン(相互情報とも呼ばれます)を使用します。私のアドバイザーと私は、SVMによる分類の機能を分析するためにこの論文Cohen、2008で説明されているアプローチを定期的に使用しています。


2

ランダムフォレストは、あなたがやりたいことをするのにとても便利です。R のrandomForestパッケージには、2つの重要度を計算する機能があります。また、いくつかの部分依存プロットを作成できるため、予測子が応答に及ぼす可能性のある限界効果を視覚的に検査できます。


1

私はここで厄介ですが、理由があります。不均一な観測値をインジケータ変数present | not_presentで置き換えることを考えましたか?あなたの説明から、この指標値は有効な機能であるように見えます。なぜなら、因子DからHの存在は情報価値がないからです。

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