MATLAB K近邻算法 — knnsearch() 函数

来源:互联网 发布:python 数组转字符串 编辑:程序博客网 时间:2024/05/13 19:43

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);
 

0 0
原创粉丝点击