You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Agglomerative Clustering时出现TypeError: 'str' object is not callable错误求助

解决Agglomerative Clustering代码中的TypeError: 'str' object is not callable错误

错误原因

  • 你把字符串变量linkage_method(值为'ward')当成函数调用,这是触发TypeError的核心问题。生成树状图需要用scipy.cluster.hierarchy.linkage函数,而非自定义的字符串变量。
  • 代码缺失必要的导入:scipy.cluster.hierarchy模块的linkage和dendrogram函数,以及matplotlib.pyplot绘图模块。

修正后的完整代码

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.cluster import AgglomerativeClustering
# 补全缺失的导入
from scipy.cluster.hierarchy import linkage, dendrogram
import matplotlib.pyplot as plt

iris = load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
X = df[['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']]

linkage_method = 'ward'
distance_metric = 'euclidean'

agglomerative = AgglomerativeClustering(n_clusters=3, linkage=linkage_method, affinity=distance_metric)
agglomerative.fit(X)

# 调用scipy的linkage函数,传入参数指定链接方法和距离度量
linkage_matrix = linkage(X, method=linkage_method, metric=distance_metric)
dendrogram(linkage_matrix)
plt.show()

关键修改说明

  1. 新增from scipy.cluster.hierarchy import linkage, dendrogram和import matplotlib.pyplot as plt,补全树状图生成与绘图的必要工具。
  2. 将错误的linkage_method(X, linkage_method)调用替换为linkage(X, method=linkage_method, metric=distance_metric),使用正确的linkage函数并通过参数指定聚类方法和距离规则。

内容的提问来源于stack exchange,提问作者Hannah Watson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:42:12