# | Ambiente | Temperatura | Humedad | Viento | Clase |
---|---|---|---|---|---|
1 | soleado | alta | alta | falso | no |
2 | soleado | alta | alta | verdadero | no |
3 | nublado | alta | alta | falso | si |
4 | lluvioso | media | alta | falso | si |
5 | lluvioso | baja | normal | falso | si |
6 | lluvioso | baja | normal | verdadero | no |
7 | nublado | baja | normal | verdadero | si |
8 | soleado | media | alta | falso | no |
9 | soleado | baja | normal | falso | si |
10 | lluvioso | media | normal | falso | si |
11 | soleado | media | normal | verdadero | no |
12 | nublado | media | alta | verdadero | si |
13 | nublado | alta | normal | falso | si |
14 | lluvioso | media | alta | verdadero | no |
import pandas as pd
data = {
'Ambiente': ['soleado', 'soleado', 'nublado', 'lluvioso', 'lluvioso', 'lluvioso', 'nublado', 'soleado', 'soleado', 'lluvioso', 'soleado', 'nublado', 'nublado', 'lluvioso'],
'Temperatura': ['alta', 'alta', 'alta', 'media', 'baja', 'baja', 'baja', 'media', 'baja', 'media', 'media', 'media', 'alta', 'media'],
'Humedad': ['alta', 'alta', 'alta', 'alta', 'normal', 'normal', 'normal', 'alta', 'normal', 'normal', 'normal', 'alta', 'normal', 'alta'],
'Viento': ['falso', 'verdadero', 'falso', 'falso', 'falso', 'verdadero', 'verdadero', 'falso', 'falso', 'falso', 'verdadero', 'verdadero', 'falso', 'verdadero'],
'Clase': ['no', 'no', 'si', 'si', 'si', 'no', 'si', 'no', 'si', 'si', 'no', 'si', 'si', 'no']
}
df = pd.DataFrame(data)
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
for column in df.columns:
df[column] = le.fit_transform(df[column])
from sklearn.tree import DecisionTreeClassifier
X = df.drop('Clase', axis=1)
y = df['Clase']
modelo = DecisionTreeClassifier(criterion='entropy')
modelo.fit(X, y)
from sklearn import tree
import matplotlib.pyplot as plt
plt.figure(figsize=(12,8))
tree.plot_tree(modelo, feature_names=X.columns, class_names=['no', 'si'], filled=True)
plt.show()
Al observar el árbol de decisión entrenado, notamos que:
Ambiente
, indicando que es el factor más determinante para decidir si se juega o no.Ambiente <= 1.5
, el siguiente atributo evaluado es Viento
. Cuando no hay viento (Viento <= 0.5
), se predice jugar con certeza (entropía 0.0 en 5 muestras).Ambiente
, donde la decisión ya no es tan clara (entropía 1.0 con 2 y 2 muestras).Ambiente > 1.5
, se analiza Humedad
, y si esta no es baja, se consulta la Temperatura
para resolver la clasificación.En resumen, el modelo revela que Ambiente es la variable más influyente, mientras queViento y Humedad refinan las decisiones. La Temperatura aparece sólo cuando las condiciones anteriores no son suficientes para una clasificación clara. Este tipo de interpretabilidad es una de las mayores ventajas de los árboles de decisión.