2015-03-03 14 views
14

Tôi thường nhận được PCA tải trọng như thế này:Bắt mô hình thuộc tính từ scikit-học đường ống

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

Nếu tôi chạy PCA sử dụng một pipline scikit-learn ...

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

... là nó có thể để có được tải?

Đơn giản chỉ cần cố gắng loadings = pipeline.components_ thất bại:

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

Cảm ơn!

(. Cũng quan tâm đến giải nén các thuộc tính như coef_ từ đường ống dẫn học tập)

Trả lời

26

Bạn có nhìn vào tài liệu: http://scikit-learn.org/dev/modules/pipeline.html Tôi cảm thấy đó là khá rõ ràng.

Có hai cách để có được các bước trong một đường ống dẫn, hoặc sử dụng các chỉ số hoặc sử dụng tên chuỗi bạn đã cho:

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

này sẽ cung cấp cho bạn các đối tượng PCA, mà bạn có thể nhận được các thành phần.

+0

Phải, cảm ơn. Không phải vậy (sử dụng 'named_steps') trong [doc here] (http://scikit-learn.org/dev/modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline). Đánh giá cao điều đó. – lmart999

+0

tuyệt vời :) cảm ơn – AbtPst

Các vấn đề liên quan