matlab怎么把knn分类可视化
时间: 2023-11-03 08:56:45 浏览: 112
在 MATLAB 中,可以使用 scatter 函数将分类结果可视化。具体步骤如下:
1. 用 knnsearch 函数计算测试样本点到训练样本点的距离,并得到测试样本点对应的最近邻训练样本点的索引。
2. 根据最近邻训练样本点的类别,为测试样本点赋予分类结果。
3. 使用 scatter 函数将测试样本点按照分类结果进行可视化。
下面是一个简单的示例代码:
```matlab
load fisheriris;
% 选取 sepal length 和 petal length 作为特征
X = meas(:, [1, 3]);
Y = species;
% 训练 knn 模型
mdl = fitcknn(X, Y);
% 生成测试样本点
x1 = linspace(min(X(:, 1)), max(X(:, 1)), 100);
x2 = linspace(min(X(:, 2)), max(X(:, 2)), 100);
[x1grid, x2grid] = meshgrid(x1, x2);
Xtest = [x1grid(:), x2grid(:)];
% 预测测试样本点的分类结果
idx = knnsearch(X, Xtest);
Ytest = Y(idx);
% 可视化分类结果
figure;
gscatter(Xtest(:, 1), Xtest(:, 2), Ytest);
hold on;
gscatter(X(:, 1), X(:, 2), Y, 'kr', 'o*');
xlabel('Sepal length');
ylabel('Petal length');
legend('setosa', 'versicolor', 'virginica', 'Training set');
```
运行代码后,会得到一个散点图,其中红色的点代表训练样本点,蓝色、绿色和紫色的点代表测试样本点的分类结果,如下图所示:
![knn_classification](https://img-blog.csdn.net/20180509150618616?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3JyZWFjdGVfc2hvcnRfb3Jhbmdl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
阅读全文