不完全/欠落データを処理するためのテクニック


12

私の質問は、分類器/モデルのトレーニング/フィッティング中に不完全なデータを処理する手法に関するものです。

たとえば、数百行のデータセットでは、各行が5つのディメンションと最後のアイテムとしてクラスラベルを持っているとすると、ほとんどのデータポイントは次のようになります。

[0.74、0.39、0.14、0.33、0.34、0]

いくつかは次のようになります。

[0.21、0.68、?、0.82、0.58、1]

したがって、この質問の焦点はこれらの種類のデータポイントです。

この質問をする最初の理由は、目の前の問題でした。しかし、質問を投稿する前に、コミュニティのより大きな部分に回答が役立つように、言い換える方が便利だと思いました。

単純なヒューリスティックとして、これらのデータ処理手法を、処理フロー中にそれらが採用されるタイミングに基づいて分類しましょう。分類器への入力前または処理中です(つまり、手法は分類器内にあります)。

後者について考えられる最良の例は、ディシジョンツリーで使用される巧妙な「3方向分岐」技術です。

間違いなく、前者のカテゴリははるかに大きいです。私が知っているテクニックはすべて、以下のグループのいずれかに分類されます。

最近、「データ処理の欠落」に関する個人的なメモを確認していると、かなり印象的なテクニックのリストがあることに気付きました。一般的な安心のためにこれらのメモを保持しているだけで、後輩の同僚から欠落データの処理方法を尋ねられた場合に備えて。実際には、最後の1つを除いて、実際には使用しません。

  1. 代入:欠落したデータが推定/予測ではなく置換である同じデータセットによって直接供給されることを共通の特徴とする一連の手法の広範なルーブリック。

  2. 再構成:自動連想ネットワーク(入力層と出力層のサイズが等しいニューラルネットワーク、つまり、出力が入力と同じ次元を持つ)を使用して、欠落しているデータポイントを推定します。ここでのアイデアは、このネットワークを完全なデータでトレーニングし、不完全なパターンを送り、出力ノードから欠損値を読み取ることです。

  3. ブートストラップ:(要約は必要ありません、統計分析の他の場所で使用されているので、考えてはいけません)。

  4. 拒否:トレーニングセットから欠落または破損した要素のあるデータポイントを静かに削除し、存在しないふりをします。


2
また、テスト中に検出された欠損値のパターンごとに分類子をトレーニングする「縮小モデル」アプローチもあります。IEは、i番目の属性が欠落しているxの予測を行うために、トレーニングデータのすべてのインスタンスからi番目の属性を削除し、そのトレーニングを行います。jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
ヤロスラフ

補完のあなたの定義は、現代の文脈では間違っていると思います。代入には、データセットの他の変数に基づいて欠損データをモデル化することが含まれます。現在好まれている代入法は多重欠損法で、欠損値ごとに(モデルに基づいて)複数の選択肢を生成し、完成した各選択肢のデータセットを処理し、結果間のばらつきを反映した回答を結合します。(「昔」では、人々は同様の記録の値を置換するなどの手段を行ったが、現在ではない。)
ウェイン

@ウェインは、これらのmodernテクニックを説明する論文を私に指摘してくれますか?ありがとう
エンツォ

Rパッケージにmiceは、jstatsoft.org / article / view / v045i03という JSSに関する入門書があります。(Rを使用していない場合でも、この紹介は役立つはずです。)そして、RパッケージにAmeliaは、パッケージに含まれている素敵なビネットがあります。これら2つのパッケージは詳細が異なりますが、両方とも複数の代入を使用します。
ウェイン

回答:


3

私は別の質問にこの回答をしましたが、ここでも当てはまるかもしれません。

Matrix Completionと呼ばれるかなり新しい研究分野があり、おそらくあなたが望むことをします。この講義では、エマニュエル・カンデスによる非常に素晴らしい紹介が与えられます。」

基本的に、データセットのランクが低い(またはほぼ低い)場合、つまり100行ありますが、実際のマトリックスには10(または10の大きな特異値のみ)などの小さなランクがある場合、Matrix Completionを使用して欠落を埋めることができますデータ。


2

ここで少し正統派ではないかもしれませんが、一体何でしょう。注意:この考え方は、私自身の分類哲学に基づいています。つまり、説明や概念の一貫性などではなく、純粋に予測することを目的とする場合に使用します。したがって、ここで言うことは、回帰モデルを構築するアプローチ。

さまざまな分類アプローチでは、欠落データを処理する能力が異なります。他のいくつかの要因に応じて、#5を試してみます。これらのNAを抑制しない分類器を使用します。そのルートに進むという決定の一部には、モデルを適用する将来のデータで同様の割合のNAが発生する可能性について考えることも含まれます。特定の変数のNAがコースの標準となる場合は、それらと一緒に転がすのが理にかなっているかもしれません(つまり、実際に持っているよりも有益なデータを前提とする予測モデルを構築しないでください。それが実際にどのくらい予測されるのかを自分でからかうでしょう)。実際、NAがランダムに欠落していると確信していない場合は、新しい変数(または新しいレベルの場合は新しいレベル)を再コーディングする傾向があります。

欠落データをあまりうまく受け取らない分類器を使用する正当な理由がある場合、私のアプローチは#1(多重代入)であり、代入データセット全体で同様に振る舞う分類モデルを見つけようとします。

^含む:予測変数にどれだけの欠損があるか、系統的なパターンがあるかどうか(もしあれば、分析の意味合いをよく見て検討する価値がある)、および全体で処理する必要があるデータの量。


1

問題のデータの原因となるデータ生成プロセスについて合理的な考えがあれば、ベイジアンのアイデアを使用して欠落データを推定できます。ベイジアンアプローチでは、欠損データもランダム変数であると単純に仮定し、観測データを条件とする欠損データの事後を構築します。事後平均は、欠損データの代替として使用されます。

ベイジアンモデルの使用は、広義の用語での代入として適格となる場合がありますが、リストに載っていないので言及することを考えました。

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