大家好,这里是小琳AI课堂!今天我们要继续深入探讨k-means算法,这是一种在数据科学和机器学习中非常流行的聚类方法。✨
k-means在好多领域都能大显身手,比如:
我们用Python和scikit-learn库来个小演示,用k-means把数据点分成两组。
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
np.random.seed(0)
X = np.random.rand(100, 2)
# 用k-means聚类
kmeans = KMeans(n_clusters=2, random_state=0)
kmeans.fit(X)
# 获取结果
labels = kmeans.labels_
centroids = kmeans.cluster_centers_
# 绘图展示
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', marker='x')
plt.title('K-means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
看这个图,我们就用k-means把数据点分成了两组。不同颜色代表不同组,红色“X”是每组的老大(中心)。
这个小例子展示了k-means的基本原理。实际中,k-means能处理更复杂的数据,维数更高也没问题。但要注意,k-means的效果很大程度上取决于初始中心和k值的选择。实际用的时候,可能需要多试几个k值,多跑几次算法,才能找到最佳结果。
如果你对k-means有更多疑问,或者想深入了解,随时问我哦!
本期的小琳AI课堂就到这里,我们下期再见!