K近邻算法是找到K个最近的邻居。
IDX = knnsearch(X,Y) finds the nearest neighbor in X for each point in
Y. X is an MX-by-N matrix and Y is an MY-by-N matrix. Rows of X and Y
correspond to observations and columns correspond to variables. IDX is
a column vector with MY rows. Each row in IDX contains the index of
the nearest neighbor in X for the corresponding row in Y.
IDX = knnsearch(X, Y) 在向量集合X中找到分别与向量集合Y中每个行向量最近的邻居。X大小为MX-by-N矩阵,Y为大小MY-by-N的矩阵,X和Y的行对应观测的样本
列对应每个样本的变量。IDX是一个MY维的列向量,IDX的每一行对应着Y每一个观测在X中最近邻的索引值。
[IDX, D] = knnsearch(X,Y) returns a MY-by-1 vector D containing the
distances between each row of Y and its closest point in X.
[IDX, D]= knnsearch(X,Y,'NAME1',VALUE1,...,'NAMEN',VALUEN) specifies
optional argument name/value pairs:
Name Value
'K' A positive integer, K, specifying the number of nearest
neighbors in X to find for each point in Y. Default is
1. IDX and D are MY-by-K matrices. D sorts the
distances in each row in ascending order. Each row in
IDX contains the indices of K closest neighbors in X
corresponding to the K smallest distances in D.
“K”表示最近邻个数,返回值D是按行升序排列。
'NSMethod' Nearest neighbors search method. Value is either:
搜寻的方法参数
'Distance' A string or a function handle specifying the distance
选择何种距离作为最近邻的度量标准
Example:
% Find 2 nearest neighbors in X and the corresponding values to each
% point in Y using the distance metric 'cityblock'
X = randn(100,5);
Y = randn(25, 5);
[idx, dist] = knnsearch(X,Y,'dist','cityblock','k',2);