MATLAB knnsearch详解
最近用到了这个函数,查了一些资料,想在此总结一下。KNN是著名的模式识别统计学方法,是最好的文本分类算法之一,也是最简单的机器学习算法之一。MATLAB中提供了KNN的函数knnsearch。
KNN原理
最邻近搜索(Nearest Neighbor Search, NNS)又称为“最近点搜索”(Closest point search),是一个在尺度空间中寻找最近点的优化问题。问题描述如下:在尺度空间M中给定一个点集S和一个目标点q ∈ M,在S中找到距离q最近的点。很多情况下,M为多维的欧几里得空间,距离由欧几里得距离或曼哈顿距离决定。
最邻近搜索问题有若干种解决方案,这些算法的优劣决定于他们求解的时间复杂度和用来查找的数据结构的空间复杂度。一种通常的说法表述为“维数灾难”(curse of dimensionality),指对于在大维数的欧几里得空间里用最邻近搜索的话,无法找到多项式的算法和多对数的查找时间。
MATLAB knnsearch语法
Idx = knnsearch(X,Y)
Idx = knnsearch(X,Y,Name,Value)
[Idx,D] = knnsearch(___)
说明
Idx = knnsearch(X,Y) 为Y中的每个查询点在X中找到最近的邻居,并在列向量Idx中返回最近的邻居的索引。 Idx与Y具有相同的行数。X为训练点集,Y为目标点集。
Idx =