如何在使用标准化数据训练模型后,为部分依赖图(PDP)恢复原始特征尺度
通过反向变换坐标轴刻度标签,可在不重新训练模型或修改数据的前提下,将部分依赖图横轴从标准化数值恢复为原始业务尺度,兼顾可解释性与技术正确性,需保存训练时StandardScaler的mean_和scale_参数。
模型用标准化数据训练好了,画部分依赖图(PDP)时,x轴却显示一堆缩放后的数值?别急,有办法让它们回归原始业务单位。本文介绍如何通过反向变换刻度标签,使PDP横轴恢复原始尺度,兼顾可解释性与技术正确性。
在机器学习实践中,用 StandardScaler 把特征做标准化(零均值、单位方差)是提升模型收敛性与稳定性的常规操作。可问题来了:当你调用 sklearn.inspection.PartialDependenceDisplay.from_estimator() 绘制部分依赖图时,如果传入的是已经缩放过的测试集 X_test_final,图表横轴直接显示标准化后的数值(比如 -2.1、0.0、1.8),业务人员看了直接懵圈——你没法直观判断“收入增加 5000 元”对违约概率的影响,这才是真痛点。
好消息是:你完全不用重新训练模型,也不用修改输入数据,只需要重新映射坐标轴的刻度标签(tick labels)。因为 PDP 内部计算仍然基于缩放空间(模型只认识那个空间),我们做的仅仅是给显示的刻度值“翻译”回原始尺度。
假设你已经保存了训练时 StandardScaler 的参数(强烈建议每次都这么做):
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.inspection import PartialDependenceDisplay
import matplotlib.pyplot as plt
# ✅ 正确做法:保存 scaler 参数
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
best_clf = RandomForestClassifier().fit(X_train_scaled, y_train)
# 绘制 PDP(仍使用缩放数据)
fig, ax = plt.subplots(figsize=(8, 6))
disp = PartialDependenceDisplay.from_estimator(
best_clf, X_test_scaled, features=best_features, ax=ax
)
# ⬅️ 反向映射 x 轴刻度标签(以第一个特征为例)
feature_idx = 0
x_mean = scaler.mean_[feature_idx]
x_std = scaler.scale_[feature_idx] # 注意:StandardScaler 使用 scale_(不是 std_)
# 获取当前 x 轴刻度位置(标准化空间中的值)
x_ticks = ax.get_xticks()
# 将其映射回原始尺度:x_original = x_scaled * std + mean
x_original = x_ticks * x_std + x_mean
# 格式化为易读字符串(按原始数据量级调整小数位)
x_labels = [f'{val:.2f}' if abs(val) < 100 else f'{val:.0f}' for val in x_original]
ax.set_xticks(x_ticks) # 保持原有刻度位置
ax.set_xticklabels(x_labels) # 仅替换标签文本
plt.title(f'Partial Dependence of {feature_names[best_features[feature_idx]]} (original scale)')
plt.tight_layout()
plt.show()
⚠️ 实际操作中需要注意这么几点:
- 千万别把
X_test_scaled手动反标准化后再传给from_estimator:那样 PDP 计算就在错误空间里进行,结果完全失真; - StandardScaler 的标准差存在
.scale_属性里(不是.std_),均值在.mean_中; - 如果画多特征 PDP(比如
features=[(0, 1)]),需要对每个子图的对应轴分别执行上述操作; - 对于类别型特征或者用了其他变换(如 RobustScaler、MinMaxScaler)的情形,反向公式要相应调整——比如 MinMaxScaler 就是
x_orig = x_scaled * (max - min) + min。
说到底,PDP 的可解释性不在于数据是否缩放,而在于你怎么展示坐标轴。只要保存好训练时的 scaler 参数,然后只改一下 tick labels,就能零成本实现“模型内部用缩放数据、图表对外展示原始尺度”的最佳实践。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。
Adobe Bridge 是 Adobe 推出的创意资产管理工具,可集中预览、分类和查找照片、视频、PDF及多种设计文件,并支持元数据、关键词、评级、批量重命名和格式导出。它可与 Photoshop、Illustrator 等应用衔接,
Affinity Photo 是一款面向摄影师、修图师和视觉设计人员的桌面图像编辑工具,提供 RAW 显影、多图层合成、蒙版、实时滤镜、批处理和色彩管理等功能。原独立产品已停止销售,其照片编辑能力已延续至免费的新 Affinity 应用;













