我想在我的脚本中使用轮廓分数来自动计算sklearn库中k-means聚类的簇数。
有人能帮我解决这些问号吗?我不明白应该用什么来替换这些问号。我是从一个例子中拿到的代码。注释部分是之前的版本,其中我使用固定簇数4进行k-means聚类。这样代码是正确的,但在我的项目中,我需要自动选择簇数。
回答:
我假设您将使用轮廓分数来获取最佳簇数。
首先声明一个单独的KMeans
对象,然后在您的df
数据上调用它的fit_predict
函数,像这样
for n_clusters in range_n_clusters: clusterer = KMeans(n_clusters=n_clusters) preds = clusterer.fit_predict(df) centers = clusterer.cluster_centers_ score = silhouette_score(df, preds) print("当簇数为{}时,轮廓分数为{})".format(n_clusters, score))
请查看这个官方示例以获得更多清晰的说明。