yellowbrick 可视化必须完成 fit→score/predict→poof/show 完整生命周期,跳过任一环节图形即丢弃;confusion_matrix 错位主因是 labels 未对齐,需统一用 np.unique(y_train) 并传给 labels 参数;rocauc 多模型比较须用 multirocauc,且模型需支持 predict_proba 或 decision_function;learningcurve 脚本中必须指定 outpath 才能保存图像;residualsplot 必须置于 standardscaler 之后以确保残差诊断有效。

poof() 不调就白跑,show() 在脚本里不生效——Yellowbrick 的所有可视化必须走完整生命周期:先 fit(),再 score()(或 predict()),最后显式触发 poof() 或 show()。跳过任一环节,图形对象会被丢弃,控制台无声无息,连错误都不报。
confusion_matrix 标签错位:不是数据错了,是 classes_ 顺序没对齐
训练集和测试集的标签顺序不一致,是 confusion_matrix 显示错乱的最常见原因。scikit-learn 默认按数值升序排类(如 [0,1,2]),但如果你用 LabelEncoder 手动编码过,又没传 labels=encoder.classes_,就会出现训练集显示 [0,1,2]、测试集显示 [2,0,1] 的行列颠倒。
- 统一用
np.unique(y_train)提取类名,再传给confusion_matrix(..., labels=unique_labels) -
confusion_matrix不接受class_names参数,只认labels;传字符串列表但y是整数数组,会静默失败 - 模型输出概率但未指定
decoder时,二分类可能把 0.6 当正类预测,导致矩阵行列反置
ROCAUC 多模型比较必须用 MultiROCAUC,单用 ROCAUC 只画一条线
ROCAUC 默认只支持单模型,传入多个模型也不会并排画曲线,AUC 值也不显示。想对比 LogisticRegression 和 SVC,必须换用 MultiROCAUC。
python-docx Skill功能概述python-docx Skill是一项面向实际任务的技能,主要用于本Skill提供使用python-docx生成专业Word文档的标准方法和最佳实践;生成安全服务方案文档;核心要点生成技术架构设计文档;生成任何需要专业排版的Word文档;核心库 : python-docx;使用与执行辅助库 : docx.shared , docx.enum , docx.oxml.ns;标准代码模板;1. 文档初始化;2. 字体设置(必须!它将相关步骤、工具调用和结果整理方式集
- 所有模型必须支持
predict_proba或decision_function;SVC默认不支持,得提前设probability=True - 传参方式不是
ROCAUC([m1,m2]),而是visualizer = MultiROCAUC([m1,m2]) - 若某模型不支持概率输出,
MultiROCAUC会跳过它且不报错,需手动检查visualizer.fitted_
LearningCurve 在脚本中保存图必须指定 outpath,否则什么也不留下
poof() 在 Jupyter 中默认渲染图像,但在普通 Python 脚本中它既不显示也不保存——这是新手最常踩的坑。
- Jupyter 正确写法:
lc = LearningCurve(model); lc.fit(X, y); lc.poof() - 脚本正确写法:
lc.poof(outpath="learning_curve.png", clear_figure=True) - 漏掉
outpath,脚本跑完后目录里没有文件,也没有提示 -
clear_figure=True防止后续绘图复用同一画布导致重叠
ResidualsPlot 必须放在 StandardScaler 后面,否则异方差诊断失效
ResidualsPlot 用于回归诊断,核心是看残差是否随机分布。如果前序 Pipeline 中有 StandardScaler,ResidualsPlot 必须放在它之后,否则输入到 visualizer 的是原始尺度特征,残差模式被扭曲,异方差提示失真。
- 错误顺序:
Pipeline([('scaler', StandardScaler()), ('viz', ResidualsPlot(model))]) - 正确顺序:
Pipeline([('scaler', StandardScaler()), ('model', model), ('viz', ResidualsPlot(model))]) - 单独用
ResidualsPlot时,确保传入的X已经过和训练时完全相同的预处理
poof() 的环境依赖性——它在 Jupyter 里“自动生效”,在脚本里却彻底沉默。没人告诉你它不报错也不留痕,只留下一个空目录和困惑。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










