层次聚类 maltab代码并绘图
时间: 2024-02-18 20:12:49 浏览: 21
下面是一个使用层次聚类算法进行三维聚类的Matlab代码,并将聚类结果用图形展示出来:
```matlab
% 生成随机数据
data = rand(100, 3);
% 使用层次聚类算法进行聚类
Y = pdist(data);
Z = linkage(Y, 'ward');
T = cluster(Z, 'maxclust', 3);
% 绘制聚类结果图形
figure;
scatter3(data(:,1),data(:,2),data(:,3),10,T);
title('Hierarchical Clustering Results');
xlabel('X');
ylabel('Y');
zlabel('Z');
```
在上面的代码中,我们使用Matlab的pdist函数计算每两个数据点之间的距离,并将结果存储在Y变量中。然后,我们使用linkage函数计算层次聚类的结果,并将结果存储在Z变量中。最后,我们使用cluster函数将层次聚类的结果划分为3个聚类,并将结果存储在T变量中。然后,我们使用scatter3函数绘制了每个数据点,并用不同的颜色表示它们所属的聚类。同时,我们添加了标题、坐标轴标签,使图形更加清晰易懂。
相关问题
层次聚类matlab代码
以下是一个简单的 MATLAB 代码示例,用于执行层次聚类:
```matlab
% 生成随机数据
data = rand(10, 3);
% 计算距离矩阵
dist = pdist(data);
% 进行层次聚类
Z = linkage(dist);
% 绘制树状图
dendrogram(Z);
% 根据聚类结果分配类别
T = cluster(Z, 'maxclust', 3);
% 绘制聚类结果
scatter3(data(:,1), data(:,2), data(:,3), [], T, 'filled');
```
这段代码首先生成一个随机的10x3数据矩阵,然后使用`pdist`函数计算数据间的距离矩阵。接下来,使用`linkage`函数对距离矩阵进行层次聚类,然后使用`dendrogram`函数绘制树状图。最后,使用`cluster`函数将数据分配到3个不同的聚类中,并使用`scatter3`函数绘制聚类结果。
层次聚类python代码
下面是一个使用scikit-learn库进行层次聚类的Python代码示例:
```python
from sklearn.cluster import AgglomerativeClustering
import numpy as np
# 创建样本数据
X = np.array([[5, 3],
[10, 15],
[15, 12],
[24, 10],
[30, 30],
[85, 70],
[71, 80],
[60, 78],
[70, 55],
[80, 91],])
# 进行层次聚类
clustering = AgglomerativeClustering(n_clusters=2).fit(X)
# 打印每个样本所属的簇
print(clustering.labels_)
```
上面的代码创建了一个包含10个样本的数据集,并使用`AgglomerativeClustering`类进行层次聚类。聚类的数量被设置为2个,因此最终生成2个簇。聚类结果存储在`clustering.labels_`中,打印输出即可看到每个样本所属的簇。