2017-10-23 8 views
0

私は分類のためにknnメソッドを使用したいが、適切なラベルを取得することに加えて、(テストデータに対して)最も近いネイバーの値も取得する必要があります。どのようにして1nnの最も近い隣を取り出すことができますか? は、例えば、私は次のようなデータ最も近いネイバーの値を返します

#this is the train data 
X Y L 
1 4 T 
2 5 F 
3 6 T 
#this is the test data 
X Y L 
8 3 T 
#knn with k=1 
knn(train[,-3],test[,-3],train$L,k=1) 

この関数の応答が唯一の適切なラベル(「T」)でありますが、私は、例えば、(最近傍の値を返すようにしたい、ここにあります返される: 行3:3 6 T) 私を助けてください。

+0

私は、各データフレーム内の各インスタンスの有用性を指定します。(正確にこのインスタンスによって分類されたインスタンスの数として定義される有用性、。) 私がに(有用性属性に番号を追加したいです列車のデータ)、knnが与えられたラベルが実際のラベルと等しい場合。私のデータはリスト内のデータフレームの数です。 – maria

答えて

1

いくつかの異なるパッケージにはknnの実装があり、使用しているとは言いません。それらのすべてが隣人を提供するわけではありませんが、FNNのknnのバージョンがあります。

library(FNN) 
KNN_Model = knn(train[,-3],test[,-3],train$L,k=1) 
attr(KNN_Model, "nn.index") 
    [,1] 
[1,] 3 
+0

リストに多数のデータフレームがある場合、行番号に加えて対応するデータフレームを指定できますか? – maria

+0

私はknnの実装のどれもがデータフレームのリスト上で動作するとは思わない。リスト内のすべてのデータフレームが同じ構造を持ち、すべてのデータフレーム内のポイントと新しいポイントを比較したいと言っていると思います。それが本当であれば、すべてのデータを含む1つの大きなデータフレームを作成することをお勧めしますが、各ポイントが元のDFのどれであるかを示す列を追加してください。 – G5W

+0

dprepパッケージでknngowを使用したいのですが、この方法は公称データと数値データで使用できるためです。このパッケージには、最も近いネイバーのデータを取得できる関数がありますか?(私の質問に対する以前の答えに戻ります) – maria

関連する問題