为了适当地拟合像Elastic Net这样的正则化线性回归模型,必须首先对自变量进行标准化。然而,系数则具有不同的含义。为了提取此类模型的适当权重,我需要使用以下公式手动计算它们:b = b' * std_y/std_x
还是sklearn中已经有一些内置功能?
也:我认为我不能只使用normalize=True
参数,因为我有一些虚拟变量,可能应该保持未缩放状态
标准偏差取消标准化。使用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这样做是没有意义的。但是
,因为您使用的是正则化,所以它成为有偏估计量