聚类采样python代码
时间: 2023-06-02 09:06:53 浏览: 121
500 Lines or Less
4星 · 用户满意度95%
以下是一个例子聚类采样Python代码:
```python
import numpy as np
from sklearn.cluster import KMeans
# 生成一些样本数据
X = np.random.rand(100, 2)
# 聚类
kmeans = KMeans(n_clusters=4).fit(X)
# 获取簇中心
centers = kmeans.cluster_centers_
# 获取簇标签
labels = kmeans.labels_
# 对每个簇进行过采样
over_sampled_data = []
for i in range(len(centers)):
cluster_data = X[labels == i]
centroid = centers[i]
num_samples_to_add = 100 - len(cluster_data)
synthetic_samples = np.random.multivariate_normal(mean=centroid, cov=np.eye(2), size=num_samples_to_add)
over_sampled_data.append(np.vstack((cluster_data, synthetic_samples)))
# 将所有的过采样数据合并
over_sampled_data = np.vstack(over_sampled_data)
```
该代码使用KMeans算法对随机生成的样本数据进行聚类,并且对每个簇进行过采样以平衡数据。对于每个簇,该代码首先获取该簇的簇中心,然后用多元正态分布在该簇的簇中心周围生成合成样本以达到过采样的目的。最后,该代码将所有的过采样数据合并为一个数据集。
阅读全文