Algorithm 在MATLAB中理解knn算法(分类)
我仍然不太熟悉使用MATLAB,所以如果我的问题看起来有点愚蠢,我很抱歉。我正在尝试学习K-NN分类,我的教授说我应该从MATLAB开始。我有一个向量,我们称之为x,它包含两列数据。第一列是功能1,第二列是功能2。x中的每一行表示一个数据点。我还有另一个向量,我们称之为c,它包含每个数据点(1或2)的类标签,只有2个类。 问题是:我应该使用函数“knnsearch”来查找k近邻,并构建一个k-NN分类器。我知道数据中的哪些点是训练集、验证集和测试集。然后,我应该看看被错误分类的点数,看看随着k的增加这是如何变化的Algorithm 在MATLAB中理解knn算法(分类),algorithm,matlab,statistics,nearest-neighbor,knn,Algorithm,Matlab,Statistics,Nearest Neighbor,Knn,我仍然不太熟悉使用MATLAB,所以如果我的问题看起来有点愚蠢,我很抱歉。我正在尝试学习K-NN分类,我的教授说我应该从MATLAB开始。我有一个向量,我们称之为x,它包含两列数据。第一列是功能1,第二列是功能2。x中的每一行表示一个数据点。我还有另一个向量,我们称之为c,它包含每个数据点(1或2)的类标签,只有2个类。 问题是:我应该使用函数“knnsearch”来查找k近邻,并构建一个k-NN分类器。我知道数据中的哪些点是训练集、验证集和测试集。然后,我应该看看被错误分类的点数,看看随着k的
我想我知道knnsearch是如何工作的,但我不知道从那里可以走到哪里。有人能帮忙吗?在这一点上,即使是关于算法工作原理的提示也会有所帮助,因为我已经花了11个多小时试图解决这个问题。您可能会发现
ClassificationKNN
类比knnsearch
函数更适合您的需要knnsearch
只查找最近的邻居<代码>分类KNN将其应用于构建分类模型。如果您愿意,您也可以自己做,但是ClassificationKNN
要容易得多
例如:
% X is your nx2 array of training data
% Y is your nx1 array of training labels
model = ClassificationKNN.fit(X,Y);
% newX is an mx2 array of test data
predictedY = predict(model, newX)
事情应该就这么简单。如果您查看统计工具箱的文档,会发现更多关于
分类knn
的演示。如果您只想找到k-NN,可以使用MATLAB提供的函数:
IDX = knnsearch(X,Y)
你可以读更多
此外,您可能会发现这个答案很有用。Sam,我感谢您的帮助。我认为你的解决方案会很好,但我觉得如果我只是使用knnsearch函数来查找算法,然后自己构建分类过程,我就不会那么理解了。如果我想这样做,你有什么建议吗?如果没有,你能告诉我什么资源吗?