k-means算法文本 matlab
时间: 2023-09-26 09:14:17 浏览: 33
以下是使用MATLAB实现k-means算法的示例代码:
```matlab
% 首先加载数据
load('data.mat');
% 设置k值和最大迭代次数
k = 3;
max_iters = 10;
% 随机选择k个样本作为初始聚类中心
idx = randperm(size(data, 1));
centroids = data(idx(1:k), :);
for i = 1:max_iters
% 计算每个样本距离最近的聚类中心
dists = pdist2(data, centroids, 'euclidean');
[~, labels] = min(dists, [], 2);
% 更新聚类中心
for j = 1:k
centroids(j, :) = mean(data(labels == j, :), 1);
end
end
% 可视化聚类结果
figure;
gscatter(data(:,1), data(:,2), labels);
hold on;
plot(centroids(:,1), centroids(:,2), 'k*', 'MarkerSize', 10);
xlabel('Feature 1');
ylabel('Feature 2');
title('K-means Clustering');
```
其中,data.mat是一个包含两列特征的数据集,每一行代表一个样本。首先设置k值和最大迭代次数,然后随机选择k个样本作为初始聚类中心。在每一轮迭代中,计算每个样本距离最近的聚类中心,并将其分配到对应的簇中。然后更新每个簇的聚类中心。最后可视化聚类结果。