algorithm - 了解 MATLAB 中的 knn 算法(分类)

标签 algorithm matlab statistics nearest-neighbor knn

我对使用 MATLAB 仍然不是很熟悉,所以如果我的问题看起来有点愚蠢,我深表歉意。我正在尝试学习 K-NN 分类,我的教授说我应该从 MATLAB 开始。我有一个向量,我们称之为 x,它包含 2 列数据。第一列是特征 1,第二列是特征 2。x 中的每一行代表一个数据点。我还有另一个向量,我们称之为 c,它包含每个数据点(1 或 2)的类标签,只有 2 个类。 这就是问题所在:我应该使用函数“knnsearch”来查找 k-neighbors,并构建一个 K-NN 分类器。我知道我的数据中的哪些点是训练集、验证集和测试集。然后,我应该查看被错误分类的点数,并查看其随着 k 的增加而发生的变化。

我想我知道 knnsearch 是如何工作的,但不知道从那里去哪里。谁能帮忙?即使是有关该算法如何工作的提示在这一点上也会有所帮助,因为我已经花了 11 多个小时试图弄清楚这个问题。

最佳答案

您可能会发现 ClassificationKNN 类比 knnsearch 函数更适合您的需求。 knnsearch 只是找到最近的邻居; ClassificationKNN 应用它来构建分类模型。如果您愿意,您也可以自己做,但是 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)

应该就这么简单。如果您查看 Statistics Toolbox 的文档,那里有更多关于 ClassificationKNN 的演示。

关于algorithm - 了解 MATLAB 中的 knn 算法(分类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25939604/

相关文章:

algorithm - quadratic_error 变量在 Google 的 PageRank 算法中的作用是什么?

java - 链表表示的N个数之和

algorithm - 对 Lights out 的修改版本使用回溯算法

python - 如何在 GEKKO 中编写条件和公差?

c++ - 调用 numDeriv :hessian() with multiple-parameter-objective-function in Rcpp

java - Random.nextInt 返回连续的相同值整数(经常)

algorithm - 在多个排序数组中搜索及其复杂性

java - 调用 java 类时 Matlab 中没有类定位错误

c - 将 Matlab 函数转换为 C 函数

algorithm - K-means聚类解的唯一性