在matlab上用K-means算法聚类鸢尾花数据集并有混淆矩阵
时间: 2023-06-14 16:04:19 浏览: 169
好的,下面是在 MATLAB 上使用 K-means 算法聚类鸢尾花数据集并生成混淆矩阵的代码:
```matlab
% 加载鸢尾花数据集
load fisheriris;
% 选择前两个特征作为聚类的输入
X = meas(:,1:2);
% 设置簇的数量
K = 3;
% 使用 K-means 算法聚类
[idx, C] = kmeans(X, K);
% 将聚类结果可视化
gscatter(X(:,1), X(:,2), idx);
% 计算混淆矩阵
labels_true = grp2idx(species); % 将类别转换为数字标签
labels_pred = idx;
confusion_matrix = confusionmat(labels_true, labels_pred);
% 显示混淆矩阵
disp('Confusion Matrix:');
disp(confusion_matrix);
```
运行上述代码后,会得到一个类似于下图的聚类结果可视化图:
![k-means clustering result](https://i.imgur.com/RyAMs9E.png)
同时,控制台会输出混淆矩阵的结果,例如:
```
Confusion Matrix:
50 0 0
0 2 48
0 46 4
```
混淆矩阵的行表示真实的类别标签,列表示预测的类别标签。例如,第一行表示真实标签为 1 的样本有 50 个,预测为 1 的有 50 个,预测为 2 和 3 的都没有。
阅读全文