kmeans = KMeans(n_clusters = k).fit(df)preds = kmeans.fit_predict(df)silhouette_score.append(silhouette_score(df, preds, metric = 'euclidean'))
TypeError: ‘list’ 对象不可调用
我不确定为什么
回答:
您可能在代码的某个地方创建了一个名为 silhouette_score
的列表变量,现在试图向其中添加元素。这样,您就覆盖了现有的 scikit-learn 方法 silhouette_score
,因此您的脚本无法找到它,将 silhouette_score
视为一个列表,并在尝试执行
silhouette_score(df, preds, metric = 'euclidean')
时抛出错误,这是预期的结果,因为列表确实不可调用。
您永远不应创建与现有函数和方法同名的变量。将您的 silhouette_score
变量名更改为其他名称,重置并重新运行您的脚本,您应该就能解决问题。