偏依赖图 - 使用缩放数据开发的模型,如何对PDP进行反缩放?

0 投票
1 回答
38 浏览
提问于 2025-04-14 15:48

我在Python中做了一个随机森林分类器模型,现在想制作部分依赖图(PDP)。我在训练和测试模型时使用了经过缩放的数据,然后用以下代码生成了PDP:PartialDependenceDisplay.from_estimator(best_clf, X_test_final, best_features)。不过,图表的x轴值是缩放过的,这让人很难理解。

在调用PartialDependenceDisplay之前,如果我先把数据X_test_final反缩放,结果也不行。有没有什么建议可以让我把x轴的值从缩放状态改成原始状态?我使用StandardScaler()对数据进行了缩放。

1 个回答

0

把标准化的数据还原回原来的样子其实很简单。标准化数据的公式是:X' = (X - mean(X)) / std(X),也就是说你把数据减去平均值,然后除以标准差。要把它还原回来,只需要用这个公式:X = (X' * std(X)) + mean(X)

如果你只是想改变刻度标签,以便能用原始数据的尺度来理解结果,那么你只需要做类似下面的操作:

# Get the tick positions on the current axis
x_ticks = ax.get_xticks()

# Un-standardise the tick values
xt_unscaled = [(xt * x.std()) + x.mean() for xt in x_ticks]

# Format the ticks to strings (here to 1 d.p.)
xt_unscaled = [f'{xt:.1f}' for xt in xt_unscaled]

# Assign the unscaled tick values to the tick labels
# This retains the original tick positions etc, but
# lets you interpret them the way you want.
ax.set_xticklabels(xt_unscaled)

plt.show()

撰写回答