Hola. estoy aplicando Decision Tree. Alguien sabe como puedo calcular el tamaño del árbol?? gracias

AlexMorenoSAlexMorenoS Member Posts: 3 Newbie
Hola.. entiendo que el tamaño del árbol es el número de hojas que tiene.. Como decía arriba, sabe como puedo calcular el tamaño del árbol?? Estoy haciendo Decision Tree, pero haré otros modelos, y sería algo que volvería a usar.. gracias
Tagged:

Best Answer

Answers

  • rfuentealbarfuentealba Moderator, RapidMiner Certified Analyst, Member, University Professor Posts: 568 Unicorn
    Hola @AlexMorenoS,

    Veamos un poquito.

    Si lo que quieres es configurar un árbol de decisión para que sea óptimo, eso no puedes saberlo de buenas a primeras (mentira, igual hay forma de saberlo, pero es lenta de calcular y cada vez que quieras rehacer tu árbol vas a tener que hacer lo mismo) y hay dos operadores que te pueden ayudar: Optimize ParametersValidation.

    Tengo un proceso en castellano que hace esa clase de cosas, que te puede explicar bien, pero básicamente, Optimize Parameters te permite entrenar varias veces un árbol de decisión cambiando un parámetro a la vez. Dentro del mismo, lo que debes hacer es entrenar tu resultado con una Split Validation o una Cross Validation (aunque Cross Validation hace muchas iteraciones, yo que tú usaría Split si tuviera muchos datos).

    Dentro de cualquier operador Validation tienes dos ventanas: Training y Testing. En Training entrenas tu algoritmo con los datos que vienen desde fuera, en Testing lo que haces es comprobar el performance.

    Te adjunto el proceso para que lo importes en RapidMiner. Cuando lo abras y lo veas, si hay algo que no quede claro, escríbeme acá y lo explico, ¿te parece?

    Saludos,

    Rodrigo.
  • rfuentealbarfuentealba Moderator, RapidMiner Certified Analyst, Member, University Professor Posts: 568 Unicorn
    Hola, @AlexMorenoS,

    Iba a explicar otra cosa pero lo había olvidado.

    Suponte que tenemos el dataset del Titanic, pero sólo con los siguientes atributos:
    • Sobreviviente (etiqueta)
    • Género (2 tipos de valores)
    • Edad (Numérico)
    • Clase (3 tipos de valores)
    Nuestro plan de hacer un árbol podría ser "tener una profundidad de máximo 4" (porque tenemos 3 clases, necesitamos una profundidad más) y un máximo de 6 hojas (sólo 2 para analizar por género, sólo 3 para analizar por clase, y más o menos 6 para analizar por edad, esto más o menos va a calcular por edad si es bebé, joven, adolescente, adulto joven, adulto, senior...).

    El problema de calcularlo a mano es que si aparecen otras clases u otras variables, vas a tener que agrandar el árbol por cada una, y se hace costoso de mantener. ¿Cuándo realmente quieres hacer esto? Cuando tienes condiciones específicas y quieres hacer árboles de decisión de manera manual (es decir, tú creando tus propios datos), y normalmente uso en vez de programarlos para que estos árboles te completen información antes de hacer otro proceso más grande, o porque quiero hacer reglas basadas en un subconjunto de datos.

    Esto, información complementaria.

    Saludos,

    Rodrigo.

  • AlexMorenoSAlexMorenoS Member Posts: 3 Newbie
    Hola muchas gracias.. Profundizando en mi inquietud, por el momento estoy interesado en contabilizar el número de hojas de un árbol (pues entiendo que eso se llama tamaño del árbol).
    Tomando tu sugerencia, lo que haría es:
    Con la data de Titanic, hacer un modelo de árbol, y contar cuantas hojas tiene el mismo.
    Luego, haré el proceso que me sugieres, y con el árbol que se obtenga, necesito contar cuantas hojas tiene..
    Tienes algún proceso o sugerencia que me ayude a contar cuantas hojas tiene el árbol que se obtenga? muchas gracias por tu ayuda..
  • rfuentealbarfuentealba Moderator, RapidMiner Certified Analyst, Member, University Professor Posts: 568 Unicorn
    ¿Por qué es tan importante el número de decisiones?

    Porque si tomas demasiadas decisiones, el árbol podría sobreajustarse a tus datos y no reconocer datos nuevos, mientras que si tomas muy pocas, el árbol podría no ajustarse a tus datos y reconocer datos nuevos de manera errónea. Eso se llama "overfitting" y "underfitting" en inglés, y son cosas que debemos considerar cuando entrenamos un algoritmo, cualquiera que éste sea.

    Saludos,

    Rodrigo.
  • AlexMorenoSAlexMorenoS Member Posts: 3 Newbie
    Gracias Rodrigo,
    Al momento puedo contabilizar manualmente el numero de niveles, y el número de hijos.. Tomando la recomendación, me enfoco en número de niveles. PEro hay alguna forma de contar automáticamente el número de niveles, y el números de hijos? es que hay árboles muy grandes y contar por inspección visual es complicado. Muchas gracias.
    Sdls,
    Alex
Sign In or Register to comment.