重要性を持つ欠落しているカテゴリデータをどのように処理できますか?
-
22-10-2019 - |
質問
私は非常にカテゴリー的で、多くの欠損値を持っているデータセットを持っています。例えば:
i | A_foo | A_bar | A_baz | outcome
--+-------+-------+-------+--------
0 | nan | nan | nan | 1
1 | 0 | 1 | 0 | 1
2 | nan | nan | nan | 0
3 | 1 | 0 | 0 | 0
問題は、1と0にはnanとは異なる意味があることです。 0または1の値を割り当てることでデータがバイアスをかけるため、データを請求したくありませんが、多くの機械学習アルゴリズムは欠損値のあるデータセットでは機能しません。どうすればこれを処理できますか?
解決
帰属 欠落データを幅広い主題に扱う。このテーマに関する標準資料を調査することから始めてください。
把握するための最初の質問はです なぜいくつかのデータが欠落しているのですか? と データが欠落している原因となるプロセスは何ですか? これがどのように起こるかを理解することが重要です。これは、どのソリューションが適切であるかに影響するためです。
ランダムに欠落しているデータ
データが完全にランダムに欠落している場合(値が欠落しているかどうかは、そのアイテムの機能値のいずれにも依存しません)、代入は適切です。適切に行う場合は、バイアスを作成しないでください。帰属には多くのテクニックがあります。何を試したか、なぜ結果があなたの結果にバイアスを起こすと思うのかについては言及していませんが、一般的に、適切な代入法を使用する場合、それがあなたのデータをバイアスする必要がある理由はありません。
または、欠落データに耐えることができる分類子を使用することもできます。一部の分類器は、欠落データを処理するように設計されており、それを許容できます。しかし、私はそれらを代入を超えて使用する理由を知りません。
非ランダムな欠落データ
対照的に、一部のオブジェクトのデータが欠落する可能性がそのオブジェクトの機能の値に依存する場合、より大きな問題があります。その場合、代入は他の方法と同様にバイアスを作成できます。あなたの最善の希望は、データが欠落しているランダムプロセスと確率分布(機能値の関数としてデータが欠落する確率)をより深く理解し、そのプロセスに適した手順を設計しようとすることです。
特定の状況:すべての機能がありません
あなたの特定の状況は特に奇妙です。あなたの場合、すべての機能が欠落しているか、何もないように見えます。それは奇妙なものです。機能が欠落している場合、それらのインスタンスに関する情報はまったくありません。したがって、その場合の最良の分類決定は、おそらく非常に単純なルールです。トレーニングセットに最も頻繁に表示されるクラス(または、データが欠落しているインスタンスの中で最も頻繁に)を使用してください。残りのインスタンス、つまり、データが欠落していないインスタンスで分類器を実行します。
しかし、実際の生活では、この状況はかなりまれです。いくつかの機能が欠落しており、他の機能が存在し、それが処理するためにより多くの作業が必要であることがより典型的です。
他のヒント
不足しているカテゴリデータを帰属させない最も簡単な方法は、それをカテゴリ自体として扱うことです
例えば:
i | A_foo | A_bar | A_baz | A_nan | outcome
--+-------+-------+-------+-------+---------
0 | 0 | 0 | 0 | 1 | 1
1 | 0 | 1 | 0 | 0 | 1
2 | 0 | 0 | 0 | 1 | 0
3 | 1 | 0 | 0 | 0 | 0
幸せなトレーニング!