编写代码实现K-Means算法,对数轴上的点聚类分析
时间: 2024-11-25 12:20:40 浏览: 15
K-Means是一种常用的无监督机器学习聚类算法,用于将一组数据集划分为预设数量(k)的类别。以下是使用Python和scikit-learn库编写一个基本的K-Means算法步骤:
```python
from sklearn.cluster import KMeans
import numpy as np
# 假设我们有一个二维的数轴数据(log-scale)
data = np.array([[1, 1], [1.5, 0.8], [3, 4], [3.5, 5], [5, 6]]) # 示例数据,替换为实际的log-scale数据
# 设置簇的数量(这里设定为3)
n_clusters = 3
# 初始化KMeans模型
kmeans = KMeans(n_clusters=n_clusters)
# 训练模型,找到聚类中心
kmeans.fit(data)
# 预测每个样本属于哪个簇
labels = kmeans.labels_
# 获取聚类中心
centroids = kmeans.cluster_centers_
print("每个样本的聚类标签:", labels)
print("聚类中心:", centroids)
# 数据可视化(如果你的数据可视化库支持)
import matplotlib.pyplot as plt
plt.scatter(data[:, 0], data[:, 1], c=labels)
plt.scatter(centroids[:, 0], centroids[:, 1], s=300, c='red')
plt.xlabel('X (log scale)')
plt.ylabel('Y (log scale)')
plt.show()
阅读全文