使用cut_tree函数将鸢尾花数据集实现分裂聚类,并可视化
时间: 2024-03-01 09:53:50 浏览: 158
好的,下面是一个使用`scipy.cluster.hierarchy.cut_tree`函数将鸢尾花数据集实现分裂聚类,并可视化的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage, cut_tree
from sklearn.datasets import load_iris
# 载入鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 计算样本间的距离矩阵
Z = linkage(X, method='ward')
# 将聚类树剪枝成3个簇
labels = cut_tree(Z, n_clusters=3)
# 绘制聚类结果
plt.figure(figsize=(10, 7))
plt.title('Iris Hierarchical Clustering')
plt.xlabel('Sepal Length')
plt.ylabel('Petal Length')
plt.scatter(X[:, 0], X[:, 2], c=labels, cmap='viridis')
plt.show()
```
上述代码首先使用`load_iris`函数载入鸢尾花数据集,并计算样本间的距离矩阵。然后,使用`cut_tree`函数将聚类树剪枝成3个簇,并将每个样本分配到对应的簇中。最后,使用`plt.scatter`函数绘制聚类结果,并将不同簇的样本用不同颜色表示。
注:上述代码使用了`method='ward'`来进行层次聚类,也可以使用其它距离度量和聚类方法进行分裂聚类。
阅读全文