2015-03-03 37 views
14

我通常得到PCA载荷这样的:获取模型从属性scikit学习管道

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

如果我使用scikit-learn pipline运行PCA ...

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

...是有可能获得装载?

只是想loadings = pipeline.components_失败:

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

谢谢!

(也有兴趣在借鉴管道提取像coef_属性)

回答

26

难道你看的文档:http://scikit-learn.org/dev/modules/pipeline.html 我觉得这是很清楚的。

有两种方式可以进入管道中的步骤,或者使用索引或使用您给字符串名称:

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

这会给你的PCA对象,您可以在其中得到的组件。

+0

对,谢谢。没有([使用'named_steps')在[doc here](http://scikit-learn.org/dev/modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline)。感谢。 – lmart999 2015-03-03 23:52:35

+0

真棒:)谢谢 – AbtPst 2015-12-15 19:36:20