Closed Tulmot closed 6 years ago
Lo que dice es que algo del tipo "NoneType" no tiene un atributo que se llama "children_left". Normal que None no tenga atributos. Parece que la variable con la que estás llamando al método del dibujo del árbol no tiene un árbol sino que está a None. Imprime esa variable antes de llamar al método, para ver si es o no None.
Esto tiene la variable que le paso al método para dibujar el árbol:
Así que lo que yo le paso a None no esta..
Pero ese base_estimator
no está entrenado. Tu en Random Oracles tienes tantos árboles como "oráculos" tengas: cada uno de esos árboles son copia del base_estimator
y entrenado con el subconjunto de instancias más cercanas.
Una pequeña duda estaba haciendo la condición para cuando es BaseRandomOracle o otro clasificador
if(classifier==BaseRandomOracles):
dot_data = export_graphviz(classifier._classifiers_train[0], out_file=None)
else:
dot_data = export_graphviz(classifier.base_estimator, out_file=None)
graph = graphviz.Source(dot_data)
graph
Y nose como hacer la condición, ya que no se como saber que clasificador base estoy usando...se me habia ocurrido crear una variable booleana para cuando asigno el clasificador sea True si es BaseRandomOracle o False si es otro aunque supongo que habra alguna manera mejor...
Mira a ver si lo puedes hacer con la función isinstance
.
Me funciona correctamente gracias.
Cuando intento dibujar el árbol del BaseRandomOracle me sale el siguiente error:
AttributeError: 'NoneType' object has no attribute 'children_left'
He estado mirando por internet y nose muy bien donde buscar donde puede estar el fallo en mi código.
Creo que es porque tengo dos clasificadores, entonces tendre que dibujar uno o otro.