【问题标题】:Standardize Regressors in sklearn标准化 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

这是要走的路还是我应该提前标准化回归量?

【问题讨论】:

    标签: python-3.x scikit-learn regression


    【解决方案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)
    ...
    

    【讨论】:

    • 非常感谢,经过几次迭代,效果非常好!
    猜你喜欢
    • 2018-04-16
    • 2015-11-13
    • 2018-11-17
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 2019-05-30
    相关资源
    最近更新 更多