Getting model attributes from scikit-learn pipeline

匿名 (未验证) 提交于 2019-12-03 08:33:39

问题:

I typically get PCA loadings like this:

pca = PCA(n_components=2) X_t = pca.fit(X).transform(X) loadings = pca.components_ 

If I run PCA using a scikit-learn pipline ...

from sklearn.pipeline import Pipeline pipeline = Pipeline(steps=[     ('scaling',StandardScaler()), ('pca',PCA(n_components=2)) ]) X_t=pipeline.fit_transform(X) 

... is it possible to get the loadings?

Simply trying loadings = pipeline.components_ fails:

AttributeError: 'Pipeline' object has no attribute 'components_' 

Thanks!

(Also interested in extracting attributes like coef_ from learning pipelines.)

回答1:

Did you look at the documentation: http://scikit-learn.org/dev/modules/pipeline.html I feel it is pretty clear.

There are two ways to get to the steps in a pipeline, either using indices or using the string names you gave:

pipeline.named_steps['pca'] pipeline.steps[1][1] 

This will give you the PCA object, on which you can get components.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!