K 均值聚类 matlab
时间: 2023-08-11 15:08:14 浏览: 97
K均值聚类是一种常用的无监督学习算法,用于将数据集划分为K个不同的类别。在Matlab中,你可以使用自带的kmeans函数来实现K均值聚类。
以下是一个使用Matlab进行K均值聚类的示例代码:
```matlab
% 假设你有一个名为data的数据集,其中包含N个样本,每个样本有D个维度
% data为一个N*D的矩阵
K = 3; % 设置聚类数目
% 执行K均值聚类
[idx, centroids] = kmeans(data, K);
% idx为一个长度为N的向量,表示每个样本所属的类别
% centroids为一个K*D的矩阵,表示每个类别的中心点
% 可以使用 plot 函数将聚类结果可视化
figure;
gscatter(data(:,1), data(:,2), idx);
hold on;
plot(centroids(:,1), centroids(:,2), 'kx', 'MarkerSize', 15, 'LineWidth', 3);
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
```
在上述示例中,我们假设数据集`data`有两个维度,并且希望将其划分为3个不同的类别。`kmeans`函数返回每个样本所属的类别索引`idx`以及每个类别的中心点`centroids`。然后,我们可以使用`gscatter`函数将聚类结果可视化,其中不同的类别用不同的颜色表示,中心点用黑色十字标记表示。
请注意,这只是一个简单的示例代码,你可以根据实际需求进行修改和扩展。希望对你有帮助!如果你有更多问题,请继续提问。
阅读全文