分级聚类法 matlab,code 1.采用C均值聚类算法对男女生样本数据中的身高、体重2个特征 联合开发网 - pudn.com...
时间: 2024-02-20 17:01:22 浏览: 169
以下是使用分级聚类法进行C均值聚类的MATLAB代码:
```matlab
% 加载数据
load('data.mat');
% 数据标准化
data = zscore(data);
% 设置聚类数和终止阈值
k = 2;
threshold = 0.01;
% 初始化聚类中心
centroids = data(randperm(size(data,1),k),:);
while true
% 计算每个样本所属的簇
[~,labels] = pdist2(centroids,data,'euclidean','Smallest',1);
% 更新聚类中心
for i = 1:k
centroids(i,:) = mean(data(labels==i,:),1);
end
% 计算误差
error = sum(sum((data - centroids(labels,:)).^2));
% 判断是否达到终止条件
if error < threshold
break;
end
end
% 可视化结果
gscatter(data(:,1),data(:,2),labels,'rb');
xlabel('身高');
ylabel('体重');
legend('男生','女生');
```
其中,`data`为样本数据矩阵,每行对应一个样本,每列对应一个特征;`k`为聚类数;`threshold`为终止阈值,当误差小于该值时停止聚类。运行后会得到一个散点图,以身高为x轴,体重为y轴,男生和女生分别用红色和蓝色表示,不同颜色的点表示不同的簇。
阅读全文