Sklrarn鸢尾花数据集进行层次聚类,画出树状图,进行K均值聚类,计算SSE,DBI,轮廓系数
时间: 2023-07-08 16:41:44 浏览: 193
利用鸢尾花数据进行K均值分类
好的,针对您的问题,我将逐一回答:
1. Sklearn鸢尾花数据集进行层次聚类,画出树状图:
```python
from sklearn.datasets import load_iris
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
iris = load_iris()
X = iris.data
# 层次聚类
Z = linkage(X, 'ward')
# 画出树状图
plt.figure(figsize=(12, 6))
dendrogram(Z)
plt.show()
```
2. 进行K均值聚类,计算SSE,DBI,轮廓系数:
```python
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score, davies_bouldin_score
import numpy as np
# K均值聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
# SSE(误差平方和)
sse = kmeans.inertia_
# DBI(Davies-Bouldin指数)
dbi = davies_bouldin_score(X, kmeans.labels_)
# 轮廓系数
silhouette = silhouette_score(X, kmeans.labels_)
print('SSE:', sse)
print('DBI:', dbi)
print('轮廓系数:', silhouette)
```
以上就是您提出的问题的回答,希望能对您有所帮助。
阅读全文