質問

-1ダウンロートのお気に入り、ほとんどの変数の欠落データを含むデータセットがあります。データセットが次のとおりであると仮定します。

Obs.  var1  var2  var3  var4  var5  var6
1     x11   x12   x13   x14    Nan  Nan
2     x21   x22   x23   Nan    x25  x26
3     x31   x32   x33   x34    x35  x36
...
n     xn1   xn2   xn3   xn4    Nan  xn6

データセットをD1に分割しました。ここでは、すべての変数の完全なデータがあり、すべてのレコードに少なくとも1つの欠落変数があるD2があります。

KNNを使用してさまざまなモデルを作成しました。最初の観測でVAR5とVAR6の値を予測するために、D1(値のないデータセット)を使用し、VAR1、VAR2、VAR3、およびVAR4でモデル化しました。

最後の観察結果のvar5の値を予測するために、d1を使用し、var1、var2、var3、var4、およびvar5をモデル化しました。

私のアプローチは理にかなっていますか?!どんな提案でも大歓迎です。ありがとうございました。

役に立ちましたか?

解決

欠損値に対処するためのさまざまなアプローチがあります。データセットに4つのインスタンスがあるとします。

x1 = [1 2 3]
x2 = [1 ? 3]
x3 = [2 4 2]
x4 = [1 3 3.5]
  1. 1つの簡単なアプローチ(医療データセットで特別に人気があります)最も類似したインスタンスに関して値を見つけています。上記の場合、の値が欠落しています x2 次になります:2(から x1 最も似ています)

  2. より洗練されたアプローチは、最も類似したインスタンスの平均化(もちろん、欠損値が数値または少なくとも順序である場合にのみ適用可能)を介した重み付けです。この場合、計算する必要があります。 x2(2) = (2*(1-(0/3)) + 3*(1-(0.5/3)) / (2-(0/3)-(0.5/3)) (x4 同様のケースとしてもカウントされています

  3. 別のアプローチは、最も類似したインスタンスの間で投票することです(カテゴリ値と序数の両方に適用されます)。

ケース1と3は、あなたが実装したものです(case1 = 1近くの隣人 / case2 = k-nearest Neighbors)

欠損値を処理するには他のアプローチがありますが、データセットで何をするかによって異なります。たとえば、非常に大きなデータセットでは、少なくとも1つの欠損値を含むすべてのインスタンスを単純に無視したり、さらなるプロセスの欠損値(インスタンス全体ではなく)のみを無視したりすることが効率的である場合があります(例: VFI アルゴリズム)

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top