Die Bibliothek imblearn ist eine Bibliothek, die für unsymmetrische Klassifizierungen verwendet wird. Es ermöglicht Ihnen, scikit-learn
Schätzer zu verwenden, während Sie die Klassen mit einer Vielzahl von Methoden ausgleichen, von Undersampling über Oversampling bis zu Ensembles.Merkmal Bedeutung mit der Bibliothek "Unausgeglichen-lernen"
Meine Frage ist jedoch, wie kann ich Feature Impotanz des Schätzers nach der Verwendung BalancedBaggingClassifier
oder eine andere Sampling-Methode von imblearn bekommen?
from collections import Counter
from sklearn.datasets import make_classification
from sklearn.cross_validation import train_test_split
from sklearn.metrics import confusion_matrix
from imblearn.ensemble import BalancedBaggingClassifier
from sklearn.tree import DecisionTreeClassifier
X, y = make_classification(n_classes=2, class_sep=2,weights=[0.1, 0.9], n_informative=3, n_redundant=1, flip_y=0, n_features=20, n_clusters_per_class=1, n_samples=1000, random_state=10)
print('Original dataset shape {}'.format(Counter(y)))
X_train, X_test, y_train, y_test = train_test_split(X, y,random_state=0)
bbc = BalancedBaggingClassifier(random_state=42,base_estimator=DecisionTreeClassifier(criterion=criteria_,max_features='sqrt',random_state=1),n_estimators=2000)
bbc.fit(X_train,y_train)
Vielen Dank für die Antwort, aber Iterieren über die Schätzer sogar mit einem feature_importance_ Feature funktioniert nicht. Es führt zu dem folgenden Fehler: "Pipeline" -Objekt hat kein Attribut "feature_importances_" – mamafoku
Ich habe die Lösung für dieses Problem behoben und getestet - es sollte jetzt funktionieren! –