Utiliser GridSearchCV avec AdaBoost et DecisionTreeClassifier
J'essaie d'accorder un AdaBoost Classificateur ("ABT") à l'aide d'un DecisionTreeClassifier ("DTC") comme le base_estimator. Je voudrais tune les deux ABT et DTC paramètres simultanément, mais je ne suis pas sûr de la façon d'accomplir ce pipeline ne devrait pas fonctionner, car je ne suis pas "tuyauterie" la sortie de la DTC ABT. L'idée serait d'itérer hyper paramètres pour la CAF et de DTC dans le GridSearchCV estimateur.
Comment puis-je spécifier les paramètres de réglage correctement?
J'ai essayé la suivante, ce qui a généré une erreur ci-dessous.
[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)
source d'informationauteur GPB
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs erreurs dans le code que vous avez posté:
param_grid
dictionnaire doivent être des chaînes de caractères. Vous devriez avoir unNameError
.AdaBoostClassifier
.None
(et pasnone
) n'est pas une valeur valide pourn_estimators
. La valeur par défaut (probablement ce que vous voulez dire) est de 50.Voici le code avec ces correctifs.
Pour définir les paramètres de votre Arbre estimateur vous pouvez utiliser la fonction "__" la syntaxe qui permet d'accéder aux paramètres imbriqués.
Aussi, 1 ou 2 estimateurs n'a pas vraiment de sens pour AdaBoost. Mais je devine que ce n'est pas le code que vous êtes en cours d'exécution.
Espère que cette aide.