Sklearn StandardScaler + ElasticNet具有可解释的系数

问题描述 投票:1回答:1

为了适当地拟合像Elastic Net这样的正则化线性回归模型,必须首先对自变量进行标准化。然而,系数则具有不同的含义。为了提取此类模型的适当权重,我需要使用以下公式手动计算它们:b = b' * std_y/std_x还是sklearn中已经有一些内置功能?

也:我认为我不能只使用normalize=True参数,因为我有一些虚拟变量,可能应该保持未缩放状态

python scikit-learn linear-regression regularized
1个回答
0
投票
平均值]和

标准偏差取消标准化。使用sklearn后,StandardScaler提供它们。 from sklearn.preprocessing import StandardScaler ss = StandardScaler() ss.fit_transform(X_train) # or whatever you called it unstandardized_coefficients = model.coef_ * np.sqrt(ss.var_) + ss.mean_

这会使它们处于未标准化数据的规模。

但是

,因为您使用的是正则化,所以它成为

有偏估计量

。当涉及有偏/无偏估计量时,要在性能和可解释性之间进行权衡。这是对stats.stackexchange.com的更多讨论。无偏估算器与低MSE估算器之间存在差异。在此处阅读有关有偏估计量和可解释性的信息:When is a biased estimator preferable to unbiased one?tl; dr这样做是没有意义的。
© www.soinside.com 2019 - 2024. All rights reserved.