以下是一个使用 Python 进行 K-Means 聚类的例子,它演示了如何对一维数据进行聚类,并学习合适的簇数量,然后将其可视化。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

# 生成一维数据
X, y = make_blobs(n_samples=200, centers=4, n_features=1, random_state=42)

# 学习合适的簇的数量
inertias = []
ks = range(1, 10)
for k in ks:
    kmeans = KMeans(n_clusters=k, random_state=42)
    kmeans.fit(X)
    inertias.append(kmeans.inertia_)

# 可视化学习结果
plt.plot(ks, inertias, '-o')
plt.xlabel('Number of clusters, k')
plt.ylabel('Inertia')
plt.xticks(ks)
plt.show()

# 进行聚类
kmeans = KMeans(n_clusters=4, random_state=42)
kmeans.fit(X)

# 将聚类结果可视化
plt.scatter(X[:, 0], np.zeros_like(X[:, 0]), c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], np.zeros_like(kmeans.cluster_centers_[:, 0]), marker='^', s=100, linewidths=2, color='k')
plt.xlabel('feature')
plt.show()

在上述代码中,我们首先使用 make_blobs 函数生成一维数据。然后,我们使用 KMeans 类学习合适的簇的数量,并将学习结果可视化。在这个例子中,我们选择 4 作为簇的数量。最后,我们使用已确定的簇的数量对数据进行聚类,并将聚类结果可视化。

Python 一维数据 K-Means 聚类:确定最佳簇数并可视化结果

原文地址: https://www.cveoy.top/t/topic/nGWZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录