knnimpute 関数,MATLAB

10-4-2014 updated


行列中の欠損値を,一番近い値で置換する関数。Bioinformatics toolbox がインストールされていないと使えない。

 

>> A=normrnd(3,1,5,5) % normrnd で平均 3, 標準偏差 1 の5 x 5 行列を作って試してみる。

A =

3.5377 1.6923 1.6501 2.7950 3.6715

4.8339 2.5664 6.0349 2.8759 1.7925

0.7412 3.3426 3.7254 4.4897 3.7172

3.8622 6.5784 2.9369 4.4090 4.6302

3.3188 5.7694 3.7147 4.4172 3.4889

 

>> A(A>4)=NaN % 4 以上の要素を,欠損値 NaN に置き換える。-> 行列の扱い

A =

3.5377 1.6923 1.6501 2.7950 3.6715

NaN 2.5664 NaN 2.8759 1.7925

0.7412 3.3426 3.7254 NaN 3.7172

3.8622 NaN 2.9369 NaN NaN

3.3188 NaN 3.7147 NaN 3.4889

 

>> B=knnimpute(A) % NaN が,行列中の数値で置き換えられる。

B =

3.5377 1.6923 1.6501 2.7950 3.6715

1.7925 2.5664 2.5664 2.8759 1.7925

0.7412 3.3426 3.7254 0.7412 3.7172

3.8622 2.9369 2.9369 3.8622 3.8622

3.3188 3.7147 3.7147 3.3188 3.4889

 

 

References