km算法 matlab
时间: 2023-08-09 18:07:36 浏览: 140
KM算法(K-means algorithm)是一种常用的聚类算法,用于将数据集划分为K个不同的类别。在Matlab中,可以使用自带的kmeans函数来实现KM算法。
以下是一个在Matlab中使用kmeans函数进行聚类的示例代码:
```matlab
% 假设有一个包含N个样本的数据集X,每个样本有D个特征
% 将数据集X划分为K个类别
% 生成随机数据集
N = 100; % 样本数量
D = 2; % 特征数量
K = 3; % 类别数量
rng(1); % 设置随机数种子,保证结果可重复
X = rand(N, D);
% 使用kmeans函数进行聚类
[idx, centroids] = kmeans(X, K);
% idx是一个长度为N的向量,表示每个样本所属的类别
% centroids是一个KxD的矩阵,每一行表示一个类别的中心点
% 可视化聚类结果
figure;
gscatter(X(:,1), X(:,2), idx);
hold on;
plot(centroids(:,1), centroids(:,2), 'kx', 'MarkerSize', 10, 'LineWidth', 2);
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
title('K-means Clustering');
```
在以上示例代码中,我们首先生成了一个包含100个样本、每个样本有2个特征的随机数据集X。然后使用kmeans函数将数据集划分为K=3个类别,并返回每个样本所属的类别idx和类别的中心点centroids。最后,我们使用gscatter函数将样本点按照不同的类别进行可视化,并在图中标记出类别的中心点。
希望以上示例代码对你有帮助!如果还有其他问题,请继续提问。
阅读全文