请给出聚类分析具体的代码
时间: 2023-09-14 10:11:56 浏览: 89
聚类分析matlab_matlab聚类分析代码_分类_
5星 · 资源好评率100%
好的,以下是使用Python中的sklearn库进行聚类分析的示例代码:
```python
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# 读取数据
data = np.loadtxt('rainfall.data')
# 数据标准化
scaler = StandardScaler()
data_norm = scaler.fit_transform(data)
# 聚类分析
kmeans = KMeans(n_clusters=5)
kmeans.fit(data_norm)
# 聚类结果
labels = kmeans.labels_
centers = scaler.inverse_transform(kmeans.cluster_centers_)
n_clusters = len(set(labels))
# 选择保留每个簇中心最接近总体平均值的气象观测站
mean = np.mean(data, axis=0)
keep_index = []
for i in range(n_clusters):
cluster_data = data[labels == i]
dist = np.linalg.norm(cluster_data - mean, axis=1)
keep_index.append(np.argmin(dist))
# 输出结果
for i, index in enumerate(keep_index):
print('Cluster %d: Keep station %d' % (i+1, index+1))
```
该示例代码使用K-Means算法将数据聚为5个簇,然后选择每个簇中心最接近总体平均值的气象观测站进行保留。其中,`data`为原始数据矩阵,`data_norm`为标准化后的数据矩阵,`labels`为每个数据点所属簇的标签,`centers`为每个簇的中心,`keep_index`为最终选择保留的气象观测站的索引。需要根据实际情况进行调整和优化。
阅读全文