コードの一部に k 最近傍関数を実装しようとしています。理解できない奇妙な問題に直面しています。させて
X=[1,4,51,3,2,4,6]' % a column vector
knnsearch(X,8) %returns 7!
私はこれをテストしましたが、通常 knnsearch(X,Y) は、 Xの最近傍である Y の特定の要素に対して返されます。もちろん、'7' は X の要素ではありませんが、knnsearch(X,8) は 7 を返しています。
コードの一部に k 最近傍関数を実装しようとしています。理解できない奇妙な問題に直面しています。させて
X=[1,4,51,3,2,4,6]' % a column vector
knnsearch(X,8) %returns 7!
私はこれをテストしましたが、通常 knnsearch(X,Y) は、 Xの最近傍である Y の特定の要素に対して返されます。もちろん、'7' は X の要素ではありませんが、knnsearch(X,8) は 7 を返しています。
要素自体ではなく、インデックスを返します。
>> X = [1, 12, 33, 14]';
>> nn = knnsearch(X, 8);
>> X(nn) %Will print 12
nnインデックスを保持します (この場合は です2)。
これX(nn)は12予想される答えです。
ドキュメントから:
IDX = knnsearch(NS,Y)
[...]
IDX is a column vector with ny rows, where ny is the number of rows in Y.
Each row in IDX contains the index of observation in NS.X which has the
smallest distance to the corresponding observation in Y.
knnsearch最近傍を返すのではなく、最近傍のインデックスを返します。あなたの例で6は、 は に最も近い要素8であり、それは index7にあるので、 を取得します7。