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!