2015-03-03 8 views
14

scikit सीखने मैं आम तौर पर PCA लोडिंग इस तरह मिलती है:हो रही मॉडल से विशेषताओं पाइपलाइन

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_' 

धन्यवाद! http://scikit-learn.org/dev/modules/pipeline.html मुझे लगता है कि यह बहुत स्पष्ट है:

(। इसके अलावा सीखने पाइपलाइनों से coef_ जैसी विशेषताओं निकालने में रुचि)

उत्तर

26

आप प्रलेखन देखो क्या।

वहाँ एक पाइप लाइन में दिए गए चरणों को पाने के लिए दो तरीके हैं, या तो सूचकांक का उपयोग कर या स्ट्रिंग नाम आप दे दी है का उपयोग करते हुए:

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

यह आपको पीसीए वस्तु, जिस पर आप घटकों प्राप्त कर सकते हैं दे देंगे।

+0

ठीक है, धन्यवाद। [Doc here] (http://scikit-learn.org/dev/modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline) में वह नहीं था ('name_steps' का उपयोग)। उसे सराहना। – lmart999

+0

भयानक :) धन्यवाद – AbtPst

संबंधित मुद्दे