K-means matlab算法代码
时间: 2023-10-05 15:10:56 浏览: 39
以下是一个简单的K-means算法的MATLAB代码实现:
% 设置初始聚类中心点
k = 3; % 聚类数
centroids = zeros(k, 2); % 初始化聚类中心点
centroids(1,:) = [3 3];
centroids(2,:) = [6 2];
centroids(3,:) = [8 5];
% 加载数据集
load('data.mat');
% 迭代更新聚类中心点
num_iter = 10; % 迭代次数
for i = 1:num_iter
% 计算每个样本点到聚类中心点的距离
distances = pdist2(data, centroids);
% 将每个样本点分配到最近的聚类中心点所在的簇中
[~, labels] = min(distances, [], 2);
% 更新每个簇的聚类中心点
for j = 1:k
centroids(j,:) = mean(data(labels == j, :));
end
end
% 可视化聚类结果
figure;
hold on;
scatter(data(labels == 1, 1), data(labels == 1, 2), 'r');
scatter(data(labels == 2, 1), data(labels == 2, 2), 'g');
scatter(data(labels == 3, 1), data(labels == 3, 2), 'b');
scatter(centroids(:, 1), centroids(:, 2), 'k', 'filled');
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
xlabel('Feature 1');
ylabel('Feature 2');
title('K-means Clustering Result');