'list' 对象不能用 silhouette_score 调用

'list' object is not callable with silhouette_score

kmeans = KMeans(n_clusters = k).fit(df)
preds = kmeans.fit_predict(df)
silhouette_score.append(silhouette_score(df, preds, metric = 'euclidean'))

类型错误:'list'对象不可调用

我不知道为什么

您可能在名为 silhouette_score 的代码中某处创建了一个列表变量,您现在尝试追加它。这样,您已经覆盖了现有的 scikit-learn 方法 silhouette_score,因此您的脚本现在找不到它,将 silhouette_score 视为一个列表,并在尝试执行时

silhouette_score(df, preds, metric = 'euclidean')

按预期抛出错误,因为列表确实不可调用。

您应该永远不要创建名称与现有函数和方法相同的变量。将您的 silhouette_score 变量的名称更改为其他名称,重置并重新运行您的脚本,您应该没问题。