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

Sklearn中plot_confusion_matrix已弃用,求混淆矩阵绘制替代方案

解决sklearn混淆矩阵绘图报错问题

问题原因

sklearn.metrics.plot_confusion_matrix在新版本scikit-learn中已被弃用并移除,官方推荐使用ConfusionMatrixDisplay类作为替代方案。

替代实现步骤

  1. 导入必要工具:从sklearn.metrics导入ConfusionMatrixDisplay和confusion_matrix
  2. 计算混淆矩阵数据:先通过confusion_matrix计算验证集的混淆矩阵数值
  3. 绘制并可视化:用ConfusionMatrixDisplay封装矩阵数据,调用plot()方法生成可视化图

修改后的完整代码

from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix, roc_auc_score
import matplotlib.pyplot as plt

# 假设models、X、Y、X_val、Y_val已提前定义
for i in range(3):
    models[i].fit(X, Y)
    print(f'{models[i]} : ')
    train_preds = models[i].predict_proba(X) 
    print('Training Accuracy : ', roc_auc_score(Y, train_preds[:,1]))
    val_preds = models[i].predict_proba(X_val) 
    print('Validation Accuracy : ', roc_auc_score(Y_val, val_preds[:,1]))
    print()
    
    # 替换原弃用的绘图代码
    y_pred = models[2].predict(X_val)  # 获取模型对验证集的预测结果
    cm = confusion_matrix(Y_val, y_pred)  # 计算混淆矩阵
    disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=models[2].classes_)
    disp.plot(cmap=plt.cm.Blues)  # 指定配色方案绘制
    plt.show()

额外提示

如果需要在循环中绘制当前迭代模型的混淆矩阵,只需将代码中的models[2]替换为models[i]即可。

内容的提问来源于stack exchange,提问作者John.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:29:51