with randomforestclassifier decision classifier python r scikit-learn

python - randomforestclassifier - ¿Puedo hacer parcelas parciales para DecisionTreeClassifier en scikit-learn(y R)?



plot decision tree python (1)

Como dice su mensaje de error, debe usar un clasificador que tenga una clase base de BaseGradientBoosting .

De la documentación que publicó:

gbrt: BaseGradientBoosting

Un modelo de aumento gradiente ajustado

Tanto GradientBoostingClassifier como GradientBoostingRegressor heredan de BaseGradientBoosting ( source ), por lo que cualquiera de esas clases debería funcionar, en teoría. En cuanto al resto de esos clasificadores, no parecen ser compatibles con la función plot_partial_dependence .

Tengo un código viejo usando DecisionTreeClassifier de scikit-learn. Me gustaría hacer parcelas parciales basadas en este clasificador.

Todos los ejemplos que he visto hasta ahora (como http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.partial_dependence.plot_partial_dependence.html ) usan "GradientBoostingRegressor" como clasificador.

Mi pregunta es, ¿es posible hacer gráficas parciales para otro clasificador? (Por ejemplo, DecisionTreeClassifier). Probé el siguiente código:

from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble.partial_dependence import plot_partial_dependence from sklearn.datasets import make_friedman1 X, y = make_friedman1() clf = DecisionTreeClassifier(max_features=''auto'').fit(X,y) fig, axs = plot_partial_dependence(clf, X, [0, (0, 1)])

y no funciona

ValueError: gbrt has to be an instance of BaseGradientBoosting

He encontrado algunos comentarios en internet (Quora):

Los diagramas de dependencia parcial no dependen en absoluto de la elección particular del clasificador. El módulo de diagrama de dependencia parcial utilizado para el ejemplo de aumento de gradiente funcionaría bien si se intercambia en un clasificador de bosque aleatorio.

Sin embargo, todavía no sé cómo funciona.

También para R, parece que puedo hacer parcelas parciales para el paquete randomForest. Sin embargo, no estoy exactamente seguro de cómo se implementa el bosque aleatorio, en el manual R el autor Andy Liaw cita la referencia "Friedman, J. (2001). Aproximación de la función codiciosa: la máquina de aumento de gradiente, Ann. Of Stat".

¿Esto significa que tengo que usar un aumento de gradiente para obtener parcelas parciales?

Cualquier ayuda es apreciada. ¡Muchas gracias!