MATLAB knn对load fisheriris分类,有四个特征分别为花萼的长度和宽度以及花瓣的长度和宽度产生分类图
时间: 2024-02-09 20:08:43 浏览: 106
基于matlab的Fisher判别分类与作图
以下是使用MATLAB的k-NN算法对经典数据集"Fisher Iris"进行分类(包括四个特征)并绘制分类图的示例代码:
```matlab
% 加载 Fisher Iris 数据集
load fisheriris
% 将数据集随机分为训练集和测试集
idx = randperm(size(meas,1));
Xtrain = meas(idx(1:100),:);
Ytrain = species(idx(1:100));
Xtest = meas(idx(101:end),:);
Ytest = species(idx(101:end));
% 使用 k-NN 算法进行分类
mdl = fitcknn(Xtrain,Ytrain);
YPred = predict(mdl,Xtest);
% 绘制分类图
gscatter(Xtest(:,1),Xtest(:,2),YPred,'rgb','osd');
xlabel('Sepal length');
ylabel('Sepal width');
title('k-NN Classification of Fisher Iris');
hold on;
gscatter(Xtest(:,3),Xtest(:,4),YPred,'rgb','x*');
xlabel('Petal length');
ylabel('Petal width');
title('k-NN Classification of Fisher Iris');
```
这段代码在之前的基础上添加了绘制第二个分类图的代码。使用MATLAB的`hold on`函数,可以保持第一个图的坐标轴,并在其上添加第二个分类图。第二个分类图的横轴和纵轴分别代表花瓣长度和花瓣宽度。同样地,不同颜色的数据点代表不同的鸢尾花品种。
阅读全文