If you want to use lasso for feature selection in a pipeline you have to wrap it in SelectFromModel.

On 09/06/2017 11:56 AM, Lefevre, Augustin wrote:

Hi all,

I am playing with the pipeline features of sklearn and it seems that I can’t use a prediction algorithm as intermediate step.

For instance, in the example below I use the output of a lasso as an additional feature to feed a random forest, in such a way that feature selection the Lasso does some preliminary feature selection.

But I get a : “TypeError: All estimators should implement fit and transform.”

So I would like to add a transform method to the Lasso estimator so that it can be used in a FeatureUnion. Is that possible ?

Best regards

X=np.hstack((np.random.randn(500,10),np.random.randint(0,10,(500,10)))) /# regressor variables
/y=np.random.randn(500) /# target variable
/ct_get = FunctionTransformer(*lambda *d:d[0:10]) /# transformer to extract continuous variables /dt_get = FunctionTransformer(*lambda *d:d[11:20]) /# transformer to extract discrete variables

# first step is a regression pipeline
/reg = Pipeline([(*'ct_vars'*,ct_get),(*'scaler'*,StandardScaler()),(*'poly'*,PolynomialFeatures(degree=3)),(*'lasso'*,Lasso())]) /# A random forest feeds on the discrete part of the data + one continuous variable /estimator = Pipeline([(*'level1'*,FeatureUnion([(*'dt_vars'*,dt_get),(*'reg'*,reg)])),(*'rf'*,RandomForestRegressor())])

estimator.fit(X,y)
*print **"R^2 score is :"*,estimator.score(X,y)

*Augustin LEFEVRE*|**Consultant Senior |Ykems| -

M : +33 7 77 97 94 89 | alefe...@ykems.com <mailto:alefe...@ykems.com>| www.ykems.com <http://www.ykems.com/>

https://www.beijaflore.com/_mailing/signature/image001.png <http://www.linkedin.com/company/beijaflore?trk=top_nav_home>https://www.beijaflore.com/_mailing/signature/image002.png <https://twitter.com/BeijafloreGroup>https://www.beijaflore.com/_mailing/signature/image003.png <https://www.facebook.com/BeijafloreGroup>https://www.beijaflore.com/_mailing/signature/image004.png <https://www.youtube.com/user/ComBeijaflore>

PSave a tree ! Think before you print

/SECURE BUSINESS/

/This message and its attachment contain information that may be privileged or confidential and is the property of Beijaflore. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, use or rely on the information contained in this email. If you receive this message in error, please notify the sender immediately and delete all copies of this message./



_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to