【问题标题】:'list' object is not callable with silhouette_score'list' 对象不能用 silhouette_score 调用
【发布时间】:2020-08-09 19:55:00
【问题描述】:
kmeans = KMeans(n_clusters = k).fit(df)
preds = kmeans.fit_predict(df)
silhouette_score.append(silhouette_score(df, preds, metric = 'euclidean'))
TypeError: 'list' 对象不可调用
我不知道为什么
【问题讨论】:
标签:
python
machine-learning
scikit-learn
cluster-analysis
k-means
【解决方案1】:
您可能在代码中的某处创建了一个名为silhouette_score 的列表变量,您现在尝试附加该变量。这样,您已经覆盖了现有的 scikit-learn 方法 silhouette_score,因此您的脚本现在找不到它,将 silhouette_score 视为一个列表,并且在尝试执行时
silhouette_score(df, preds, metric = 'euclidean')
按预期抛出错误,因为列表确实不可调用。
您应该切勿创建名称与现有函数和方法相同的变量。将您的 silhouette_score 变量的名称更改为其他名称,重置并重新运行您的脚本,您应该会没事的。