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 <[email protected]> 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
> [email protected]
> https://mail.python.org/mailman/listinfo/scikit-learn

_______________________________________________
scikit-learn mailing list
[email protected]
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to