[scikit-learn] Use of Scaler with LassoCV, RidgeCV

Sebastian Raschka se.raschka at gmail.com
Tue Sep 13 08:33:52 EDT 2016


Hi, Yoann,

when I understand correctly, you want to apply the scaling to each iteration in cross-validation (i.e., the recommended way to do it)? Here, you could use the make_pipeline function, which will call fit on each training fold and call transform on each test fold:


from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.cross_validation import cross_val_score
from sklearn.linear_model import Ridge

pipe = make_pipeline(StandardScaler(), Ridge())
cross_val_score(pipe, X, y)

You can think of “pipe” as an Ridge estimator with a StandardScaler attached to it.

Best,
Sebastian


> On Sep 13, 2016, at 8:16 AM, Brenet, Yoann <yoann.brenet at se1.bp.com> wrote:
> 
> Hi all,
>  
> I was trying to use scikit-learn LassoCV/RidgeCV while applying a 'StandardScaler' on each fold set. I do not want to apply the scaler before the cross-validation to avoid leakage but I cannot figure out how I am supposed to do that with LassoCV/RidgeCV.
>  
> Is there a way to do this ? Or should I create a pipeline with Lasso/Ridge and 'manually' search for the hyper-parameters (using GridSearchCV for instance) ?
>  
> Many thanks.
>  
> Yoann
> _______________________________________________
> scikit-learn mailing list
> scikit-learn at python.org
> https://mail.python.org/mailman/listinfo/scikit-learn



More information about the scikit-learn mailing list