用matlab实现kmeans算法
以下是使用MATLAB实现K-Means聚类算法的示例代码:
% 生成随机数据
data = rand(100,2);
% 设置聚类数目
k = 3;
% 初始化聚类中心点
centroids = data(randperm(size(data,1),k),:);
% 迭代次数
num_iters = 10;
% 运行K-Means算法
for i=1:num_iters
% 计算每个点到聚类中心的距离
distances = pdist2(data, centroids);
% 确定每个点所属的聚类
[~, cluster] = min(distances,[],2);
% 更新聚类中心
for j=1:k
centroids(j,:) = mean(data(cluster==j,:));
end
end
% 绘制聚类结果
figure;
scatter(data(cluster==1,1), data(cluster==1,2), 'r');
hold on;
scatter(data(cluster==2,1), data(cluster==2,2), 'g');
scatter(data(cluster==3,1), data(cluster==3,2), 'b');
scatter(centroids(:,1), centroids(:,2), 100, 'k', 'filled');
该代码首先生成随机数据,然后设置聚类数目和迭代次数。接下来,它初始化聚类中心点,并在每次迭代中计算每个点到聚类中心的距离,确定每个点所属的聚类,并更新聚类中心点。最后,它绘制了聚类结果
原文地址: https://www.cveoy.top/t/topic/cUW1 著作权归作者所有。请勿转载和采集!