Mit GridSearchCV mit AdaBoost und DecisionTreeClassifier
Ich bin versucht zu tunen eines AdaBoost-Klassifizierer ("ABT") mit einem DecisionTreeClassifier ("DTC") als base_estimator. Ich würde gerne tunen beide ABT und DTC-Parameter gleichzeitig, bin mir aber nicht sicher, wie dies zu tun - pipeline nicht funktionieren sollte, wie ich bin nicht "Rohrleitungen" die Ausgabe von DTC zu ABT. Die Idee wäre, Durchlaufen, hyper-Parameter für ABT und DTC in die GridSearchCV Schätzer.
Wie kann ich angeben, die tuning-Parameter korrekt?
Habe ich versucht, das folgende, das erzeugt einen Fehler unter.
[IN]
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.grid_search import GridSearchCV
param_grid = {dtc__criterion : ["gini", "entropy"],
dtc__splitter : ["best", "random"],
abc__n_estimators: [none, 1, 2]
}
DTC = DecisionTreeClassifier(random_state = 11, max_features = "auto", class_weight = "auto",max_depth = None)
ABC = AdaBoostClassifier(base_estimator = DTC)
# run grid search
grid_search_ABC = GridSearchCV(ABC, param_grid=param_grid, scoring = 'roc_auc')
[OUT]
ValueError: Invalid parameter dtc for estimator AdaBoostClassifier(algorithm='SAMME.R',
base_estimator=DecisionTreeClassifier(class_weight='auto', criterion='gini', max_depth=None,
max_features='auto', max_leaf_nodes=None, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
random_state=11, splitter='best'),
learning_rate=1.0, n_estimators=50, random_state=11)
InformationsquelleAutor der Frage GPB | 2015-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es mehrere Dinge, die falsch in dem code, den Sie geschrieben:
param_grid
Wörterbuch müssen strings sein. Sie sollten immer mit einerNameError
.AdaBoostClassifier
.None
(und nichtnone
) ist kein Gültiger Wert fürn_estimators
. Der Standardwert (wahrscheinlich das, was du gemeint) 50.Hier ist der code mit diesen Updates.
Zum einstellen der Parameter des Baums estimator können Sie die "__" syntax, die es erlaubt den Zugriff auf geschachtelte Parameter.
Auch 1 oder 2 Schätzer nicht wirklich sinnvoll für AdaBoost. Aber ich vermute, dies ist nicht der eigentliche code, den Sie gerade laufen.
Hoffe, das hilft.
InformationsquelleAutor der Antwort ldirer