Parte 1: Ajuste de hiperparâmetros com Grid Search
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.tree import DecisionTreeRegressor
# Carregar os dados
dados = fetch_california_housing()
X = dados.data
y = dados.target
# Separar treino e teste
X_treino, X_teste, y_treino, y_teste = train_test_split(
X,
y,
test_size=0.2,
random_state=42
)
# Definir o modelo
modelo = DecisionTreeRegressor(random_state=42)
# Definir os parâmetros a serem testados
parametros = {
"max_depth": [3, 5, 10, None],
"min_samples_split": [2, 5, 10],
"min_samples_leaf": [1, 2, 4]
}
# Aplicar o Grid Search
grid = GridSearchCV(
modelo,
parametros,
cv=5,
scoring="neg_mean_squared_error"
)
grid.fit(X_treino, y_treino)
print("Melhores parâmetros:")
print(grid.best_params_)
Parte 2: Importância das variáveis na previsão de diabetes
import pandas as pd
from sklearn.datasets import load_diabetes
from sklearn.ensemble import RandomForestRegressor
# Carregar os dados
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target
# Criar o modelo
modelo = RandomForestRegressor(
random_state=42
)
# Treinar o modelo
modelo.fit(X, y)
# Importância das variáveis
importancia = pd.DataFrame({
"Variável": diabetes.feature_names,
"Importância": modelo.feature_importances_
})
# Ordenar os resultados
importancia = importancia.sort_values(
by="Importância",
ascending=False
)
print(importancia)