2016-04-24 11 views
0

Ich implementierte PCA mit Naive Bayes mit sklearn und ich optimierte die PCA-Anzahl der Komponenten mit GridSearchCV.So erhalten Sie Feature-Namen aus der Ausgabe von gridSearchCV

Ich habe versucht, die Feature-Namen der besten Schätzer herauszufinden, aber ich war nicht in der Lage. Hier ist der Code, den ich ausprobiert habe.

from sklearn.cross_validation import train_test_split 
features_train, features_test, labels_train, labels_test = \ 
train_test_split(features, labels, test_size=0.3, random_state=42) 
### A Naive Bayes classifier combined with PCA is used and its accuracy is tested 

pca = decomposition.PCA() 
#clf = GaussianNB() 
clf = Pipeline(steps=[('pca', pca), ('gaussian_NB', GaussianNB())]) 
n_components = [3, 5, 7, 9] 
clf = GridSearchCV(clf, 
         dict(pca__n_components=n_components)) 

# from sklearn.tree import DecisionTreeClassifier 
#clf = DecisionTreeClassifier(random_state=0, min_samples_split=20) 
clf = clf.fit(features_train, labels_train) 
features_pred = clf.predict(features_test) 
print "The number of components of the best estimator is ", clf.best_estimator_.named_steps['pca'].n_components 
print "The best parameters:", clf.best_params_ 
#print "The best estimator", clf.best_estimator_.get_params(deep=True).gaussian_NB 
# best_est = RFE(clf.best_estimator_) 
# print "The best estimator:", best_est 
estimator = clf.best_estimator_ 
print "The features are:", estimator['features'].get_feature_names() 

Antwort

1

Sie scheinen Dimensionsreduktion und Auswahl bietet zu verwirrend. PCA ist eine Dimensionalitätsreduktionstechnik, es wählt keine Merkmale aus, es sucht nach einer linearen Projektion mit niedrigerer Dimension. Ihre resultierenden Funktionen sind nicht Ihre ursprünglichen - sie sind lineare Kombinationen von diesen. Also, wenn Ihre ursprünglichen Features "Breite", "Höhe" und "Alter" nach PCA zu Dim 2 waren Sie mit Features wie "0,4 * Breite + 0,1 * Höhe - 0,05 * Alter" und "0,3 * Höhe - 0,2 * Breite ".

+0

Ich denke, deshalb funktioniert es nicht so, wie ich es erwarte. –

0

Es scheint wie this answer könnte sein, was Sie suchen. Es enthält auch ein wirklich gutes und erschöpfendes Beispiel!

Verwandte Themen