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

Python实现SVM分层K折交叉验证出现list object not callable报错如何解决

报错原因与修复方案

报错原因

你从sklearn.metrics导入了评估函数accuracy_score后,后续自定义了一个和函数同名的列表accuracy_score = [],直接覆盖了原函数的引用。后续你执行accuracy_score(y_test, y_pred)时,Python会将该名称识别为你定义的列表,列表不支持调用操作,因此抛出'list' object is not callable错误。

修复方法

只需要将你自定义的存储精度的列表改名,避免和导入的函数重名即可,比如改名为acc_scores,修改后的对应代码片段如下:

skf = StratifiedKFold(n_splits=10, shuffle=True)
# 自定义列表改名,避免和导入的accuracy_score函数重名
acc_scores = []

for train_index, test_index in skf.split(X, y):
    X_train, X_test = X_scaled[train_index], X_scaled[test_index]
    y_train, y_test = y[train_index], y[test_index]

    svc.fit(X_train, np.ravel(y_train))
    y_pred = svc.predict(X_test)
    # 此处调用的是sklearn的accuracy_score评估函数
    score = accuracy_score(y_test, y_pred)
    acc_scores.append(score)

# 计算平均精度时使用改名后的列表
print('accuracy score: %0.3f' % np.mean(acc_scores))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:15:05