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>


P Save 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

Reply via email to