利用MATLAB,使用k均值算法(k=3),对数据文件Ex4_data.mat的样本数据进行聚类,并将聚类结果与真天标签的类别结果作图显示。
时间: 2024-03-17 18:39:53 浏览: 41
好的,针对你的问题,我来为你提供一下MATLAB实现k均值算法聚类,并将聚类结果与真实标签进行比较的代码:
```matlab
% 加载数据
load('Ex4_data.mat')
% 设置聚类个数
k = 3;
% 运行k均值算法
[idx, C] = kmeans(X, k);
% 绘制聚类结果图
subplot(1,2,1);
gscatter(X(:,1), X(:,2), idx);
hold on;
plot(C(:,1), C(:,2), 'kx', 'MarkerSize', 15, 'LineWidth', 3);
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
title('K-Means Clustering Results');
xlabel('Feature 1');
ylabel('Feature 2');
% 加载真实标签数据
load('Ex4_data_labels.mat')
% 绘制真实标签结果图
subplot(1,2,2);
gscatter(X(:,1), X(:,2), y);
title('True Labels');
xlabel('Feature 1');
ylabel('Feature 2');
```
通过以上代码,可以先加载数据,然后设置聚类个数为3,使用MATLAB内置的kmeans函数进行聚类,最后绘制出聚类结果图,其中聚类结果用不同颜色的散点图表示,聚类中心用黑色的十字表示。接着,加载真实标签数据,绘制出真实标签结果图,其中每个类别用不同颜色的散点图表示。
需要注意的是,真实标签数据需要与样本数据对应,即第i个样本的真实标签应该是y(i)。
阅读全文