这段代码是使用scikit-learn库进行K均值聚类并计算轮廓系数(silhouette score)的部分。根据错误信息,问题出在样本数量上。
在计算轮廓系数时,sample_size参数应该传入一个整数值而不是浮点数。你可以将 len(data)/2 替换为 int(len(data)/2) 来确保传入整数类型的样本数量。
修正后的代码如下所示:
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
for i in range(3, 10):
km = KMeans(n_clusters=i,
init="k-means++",
max_iter=100,
n_init=1)
km.fit(bow.toarray())
score = silhouette_score(bow.toarray(),
km.labels_,
metric="euclidean",
sample_size=int(len(data)/2))
print(f"K = {i}: {score:.3f}")
请尝试运行修改后的代码,看看问题是否解决了。
内容由零声教学AI助手提供,问题来源于学员提问




