你好。我aplicando决策树。个人萨比como puedo calcular el tamaño del árbol?? gracias

AlexMorenoSAlexMorenoS MemberPosts:3Newbie
你好。. 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 ProfessorPosts:568Unicorn
    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 ParametersyValidation.

    Tengo un proceso en castellano que hace esa clase de cosas, que te puede explicar bien, pero básicamente,Optimize Parameterste 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 unaSplit Validationo unaCross Validation(aunque Cross Validation hace muchas iteraciones, yo que tú usaría Split si tuviera muchos datos).

    Dentro de cualquier operadorValidationtienes 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 ProfessorPosts:568Unicorn
    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 MemberPosts:3Newbie
    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 ProfessorPosts:568Unicorn
    ¿Por qué es tan importante el número de decisiones?

    因为如果托马斯demasiadas决定,el arbol 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.
    AlexMorenoS
  • AlexMorenoSAlexMorenoS MemberPosts:3Newbie
    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 InorRegisterto comment.