kmeans聚类算法matlab代码
时间: 2023-08-30 18:05:14 浏览: 123
以下是使用MATLAB实现k-means聚类算法的示例代码:
```matlab
% 生成数据集
X = [randn(100,2)*0.75+ones(100,2);
randn(100,2)*0.5-ones(100,2)];
% 设置聚类的数量
K = 2;
% 随机初始化聚类中心
initial_centroids = X(randperm(size(X,1), K), :);
% 运行k-means算法
max_iters = 10;
[centroids, idx] = kmeans(X, K, 'MaxIter', max_iters, 'Start', initial_centroids);
% 可视化聚类结果
figure;
plot(X(idx==1,1), X(idx==1,2), 'r.', 'MarkerSize', 12);
hold on;
plot(X(idx==2,1), X(idx==2,2), 'b.', 'MarkerSize', 12);
plot(centroids(:,1), centroids(:,2), 'kx', 'MarkerSize', 15, 'LineWidth', 3);
legend('Cluster 1', 'Cluster 2', 'Centroids');
title(sprintf('K-Means Clustering (K = %d, Max Iters = %d)', K, max_iters));
```
注释:此代码首先生成一个二维数据集,然后使用`kmeans`函数将数据集划分为`K`个簇,最后绘制聚类结果的可视化图像。`initial_centroids`参数是聚类中心的初始值,`max_iters`参数是算法的最大迭代次数,`idx`向量包含每个数据点所属的簇的索引,`centroids`矩阵包含每个簇的中心点坐标。
阅读全文