Árbol de decisión
Lección 17 de 19 del curso Introducción al aprendizaje automático de Coddy.
Un Árbol de Decisión es un modelo no lineal utilizado tanto para tareas de clasificación como de regresión. Refleja la toma de decisiones humana más de cerca que otros algoritmos, lo que lo hace intuitivo y potente para manejar conjuntos de datos complejos. En su esencia, un árbol de decisión divide los datos en subconjuntos utilizando una serie de reglas simples, lo cual es similar a hacer una serie de preguntas de sí/no sobre las características de los puntos de datos.

Fuente: wikipedia
Visualice un árbol de decisión como un gráfico en forma de árbol, donde:
- Cada nodo interno representa una "prueba" sobre un atributo (por ejemplo, si el lanzamiento de una moneda sale cara o cruz),
- Cada rama representa el resultado de la prueba, y
- Cada nodo hoja representa una etiqueta de clase (decisión tomada después de computar todos los atributos).
Tipos de Árboles de Decisión:
- Árboles de Clasificación: Se utilizan cuando el resultado predicho es la clase a la que pertenecen los datos.
- Árboles de Regresión: Se utilizan cuando el resultado predicho puede considerarse un número real (por ejemplo, el precio de una casa).
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
IntermedioCrea una función llamada decide_outcome que reciba una lista de reglas en el siguiente formato:
rules = {
rule1: {"type": "bigger", "value": 5},
rule2: {"type": "smaller", "value": 7},
}Y recibe a qué regla proceder si el resultado se cumple o no:
outcome = {
"rule1": {True: "rule2", False: "rule3"},
"rule2": {True: "rule3", False: "rule4"},
"rule3": {True: None, False: None}
"rule4": {True: None, False: None}
}data_point = {
"rule1": 8,
"rule2": 10,
}La salida debería ser rule4
8 is bigger than 5 (True)→ ir arule2desde este"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ ir arule4desde este"rule2": {True: "rule3", False: "rule4"},- No hay otras formas de continuar, por lo que la salida es
rule4
Empieza siempre desde <strong>rule1</strong>
Pruébalo tú mismo
def decide_outcome(rules, outcome, point):
current_rule = "rule1"
# Escribe tu código aquíTodas las lecciones de Introducción al aprendizaje automático
6Otros modelos
Regresión logísticaRegresión linealÁrbol de decisiónMáquina de vectores de soporte (SVM)Cuestionario sobre modelosPractica por tu cuenta: Compilador de Python online