# ============================================
# Ajuste de hiperparámetros con Grid Search
# Árbol de Decisión
# ============================================
import pandas as pd
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeRegressor
# Cargar dataset California Housing
housing = fetch_california_housing()
X = housing.data
y = housing.target
# Separar entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(
X,
y,
test_size=0.30,
random_state=42
)
# Modelo
modelo = DecisionTreeRegressor(random_state=42)
# Parámetros a evaluar
parametros = {
'max_depth':[3,5,7,10,None],
'min_samples_split':[2,5,10],
'min_samples_leaf':[1,2,4]
}
# Grid Search
grid = GridSearchCV(
modelo,
parametros,
cv=5,
scoring='neg_mean_squared_error'
)
grid.fit(X_train,y_train)
print("Mejores parámetros:")
print(grid.best_params_)
print("\nMejor score:")
print(grid.best_score_)
# ============================================
# Variables más importantes
# ============================================
import matplotlib.pyplot as plt
mejor_modelo = grid.best_estimator_
importancias = pd.DataFrame({
'Característica': housing.feature_names,
'Importancia': mejor_modelo.feature_importances_
})
importancias = importancias.sort_values(
by='Importancia',
ascending=False
)
print(importancias)
plt.figure(figsize=(8,5))
plt.bar(importancias["Característica"],
importancias["Importancia"])
plt.xticks(rotation=45)
plt.title("Importancia de las características")
plt.show()
Mediante la técnica de Grid Search fue posible encontrar la mejor combinación de hiperparámetros para el modelo de Árbol de Decisión, mejorando su rendimiento respecto a utilizar la configuración por defecto. Además, el análisis de importancia de características permitió identificar cuáles variables tienen mayor influencia en las predicciones del modelo. Estas técnicas son fundamentales para optimizar modelos de Machine Learning, ya que permiten aumentar su precisión y comprender mejor qué información aporta más valor al proceso de predicción.