Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Faça como eu fiz: ajustando modelos de machine learning

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)