常に利用できるとは限らない機能をどのように処理しますか?


8

機能ベクトルに、常に利用できるとは限らない機能があります(一部のサンプルでは)使用しても意味がありません。この特徴ベクトルをsklearn MLPClassifierに与えます。機能がその決定に使用する意味があるときにニューラルネットワークはそれ自体で学習しますか、または機能ベクトルにフラグを追加する必要がありますか?たとえば、意味がある場合は「1」、意味がない場合は「0」 。

回答:


1

機能がサンプルのサブセットで意味をなさない場合、これは別のデータセットである(またはそうでなければならない)ことを意味するのではなく、2番目のモデルが必要ですか?それは私が考えているアプローチの1つです。

2つ目は、データ(機能)自体を操作することです。ニュートラル値を使用するのがおそらく最善です。

  • 数値の場合:
    • すべてのエントリで計算された平均値または中央値を使用してみてください
    • 極値を使用してみてください。たとえば、フィーチャに正の値しかない場合は-1を使用します。これは、機能が欠落しており、ネットワークがその機能を処理できることを示しているはずです。
  • 単語の埋め込みなどのテキスト値の場合N/Aは、埋め込みがないような値をプレースホルダーに置き換えます。

0

トレーニングする機能が同じではない場合、予測したい機能はいくつかあります。

  1. 問題の機能が予測データセットに含まれないため、使用されないようにモデルを再トレーニングします。
  2. データセットに欠落している場合は、その機能に値を代入します。あなたの例では、それが欠落している場合は「0」であると仮定するかもしれませんが、データセットとあなたの直感に基づいてこれを決定する必要があります。

トレーニングセットと予測セットの特徴ベクトルの長さが異なる場合、予測セットでエラーが発生します。


0

問題によっては、これらの値を削除し、可能であれば推定値を入力することで問題を解決できます。もう1つの戦略は、機能を-1、1のスケールでスケーリングし、この値をたとえば-3で暗黙指定することです。次に、「外れ値」を完全に無視するいくつかの堅牢な方法を使用します。お役に立てれば。


0

場合によっては、ダミーの変数エンコーディングを使用できます。このアイデアをあなたの問題に拡張することもできます。簡単な線形回帰の手順を説明します。

長年の教育、教えられた講義、公開された論文および現在の学位を使用して、人収入を予測したいとします。サンプルには、学者と非学者が含まれています。yix1ix2ix3ix4i

1.代替:自然なボイド値を割り当てます。たとえば、子供を探している場合、収入を含めることは意味がありません。しかし、所得には自然な無効値があり。変数がそのようなvoid値を許可するかどうかを確認できます。0

2.代替方法:データセットを2つのグループ(アカデミックと非アカデミック)に分割できます。2つの別々のモデルを実行します。

3.代替:紹介新しいダミー変数この変数が人ならば学術的ではなく、値が人ならば学術的です。すると、回帰モデルは次のようになりますis_academic x5i0i1i

yi=w0+w~0x5i+w1x1i+w~1x5ix1i+w~2x5ix2i+w~3x5ix3i++w~4x5ix4i+εi

したがって、データセットはなく、これでデータセットは完成しましたが、モデルは線形基底関数を使用しなくなりました。x1i,x2i,x3i,x4i,yix1i,x5i,x5ix1i,x5ix2i,x5ix3i,x5ix4i,yi

同様に、一部の機能がデータセット内の1つのサブサンプルに対してのみ存在/有用であることがわかった場合、データセットについて考え、ダミー変数を導入することができます。

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