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

绘制决策树分类器ROC曲线时报key of type tuple not found错误如何解决

错误产生原因
  • 索引语法不兼容:y_test是Pandas一维Series结构,你使用y_test[:, i]这种仅适用于二维numpy数组的切片方式,Pandas会将[:,i]识别为元组类型的索引键,普通Series没有MultiIndex结构,因此触发该KeyError。
  • 业务逻辑错配:当前是二分类任务,你写的循环逻辑是多分类场景下逐类别计算ROC的代码,且循环范围range(M)中的M是TF-IDF的特征数,和分类类别完全无关,属于逻辑误用。
  • 入参类型错误:ROC曲线计算依赖样本属于正类的预测概率,你传入的是predict()输出的硬分类标签(0/1),即便解决索引问题也无法得到正确的ROC曲线。
修复方案

调整ROC绘制函数适配二分类场景,同时将模型输出改为预测正类概率即可,修改后的代码如下:

# 修正后的ROC绘制函数,适配二分类场景
def plot_roc(y_score):
    fpr, tpr, _ = roc_curve(y_test, y_score)
    roc_auc = auc(fpr, tpr)
    # 可在此处补充matplotlib绘图逻辑
    return roc_auc

# 决策树训练部分改为输出正类(类别1)的预测概率
dt_gini = DecisionTreeClassifier(criterion="gini", random_state=0)
dt_gini.fit(X_train, y_train)
# 取predict_proba返回的第二列,对应类别为1的概率
dt_gini_score = dt_gini.predict_proba(X_test)[:, 1]
print(plot_roc(dt_gini_score))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:48:00