用西瓜数据集4.0采用 sklearn 中的 AgglomerativeClustering
时间: 2024-02-16 20:01:49 浏览: 86
算法进行聚类,可视化聚类结果并说明聚类性能如何?
首先,我们需要导入必要的库和数据集:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import AgglomerativeClustering
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.metrics import silhouette_score
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=150, n_features=2, centers=3, random_state=42)
```
接着,我们对数据进行标准化和降维:
```python
scaler = StandardScaler()
X_std = scaler.fit_transform(X)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_std)
```
然后,我们使用 AgglomerativeClustering 算法进行聚类:
```python
model = AgglomerativeClustering(n_clusters=3, linkage='ward')
model.fit(X_std)
```
最后,我们可视化聚类结果:
```python
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=model.labels_)
plt.title('AgglomerativeClustering with PCA')
plt.show()
```
下图是聚类可视化结果:
![agglomerativeclustering](https://img-blog.csdnimg.cn/20211011182447754.png)
我们可以看到,AgglomerativeClustering 算法成功将数据集分成了三个簇,并且每个簇都被正确地聚集在一起。为了评估聚类性能,我们可以使用轮廓系数(silhouette score)指标:
```python
silhouette_score(X_std, model.labels_)
```
轮廓系数的取值范围是[-1, 1],越接近1表示聚类效果越好。在本例中,轮廓系数为0.59,说明 AgglomerativeClustering 算法的聚类性能良好。
阅读全文