标准化 sklearn 中的回归器
Posted
技术标签:
【中文标题】标准化 sklearn 中的回归器【英文标题】:Standardize Regressors in sklearn 【发布时间】:2018-08-02 05:40:31 【问题描述】:我正在使用 sklearn,我想知道如何正确使用 StandardScaler()。我构建了一个函数,允许在 Ridge 回归和 Lasso 回归之间切换,并获取 alpha 值、回归量 X 和预测变量 Y。所有回归量都应该标准化。
from sklearn.linear_model import Ridge, Lasso
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler() # Standardize regressors by removing the mean and scaling to unit variance
def do_penalized_regression(X, y, penalty, type):
if type == "ridge":
lm = Ridge(alpha = penalty, normalize=False)
elif type == "lasso":
lm = Lasso(alpha = penalty, normalize=False)
lm.scaler.fit(X,y)
return lm
这是要走的路还是我应该提前标准化回归量?
【问题讨论】:
【参考方案1】:你可以使用sklearn.pipeline.make_pipeline:
from sklearn.linear_model import Ridge, Lasso
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
model = make_pipeline(StandardScaler(), lm)
model.fit(X, y)
...
【讨论】:
非常感谢,经过几次迭代,效果非常好!以上是关于标准化 sklearn 中的回归器的主要内容,如果未能解决你的问题,请参考以下文章
为啥与 MSE 相比,使用 MAE 标准训练随机森林回归器如此缓慢?