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!

1
resposta

(Fundamentos de IA: investigando algoritmos e abordagens de machine learning) Faça como eu fiz: ajustando modelos de machine learning

Ao treinar um modelo de machine learning, surgem questões importantes:

Como encontrar os melhores parâmetros para um modelo?
Como identificar quais variáveis realmente influenciam as previsões?

Para responder a isso, utilizamos duas técnicas principais:

Ajuste de Hiperparâmetros → busca dos melhores valores internos do modelo.
Seleção de Features → identificação das variáveis mais relevantes.

Vamos aplicar essas ideias em dois cenários:

Regressão com o dataset California Housing
Regressão/estimativa com o dataset diabetes (scikit-learn)

Ajuste de hiperparâmetros com Grid Search (Decision Tree)

##### Carregamento e preparação dos dados #####

from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split

# Carrega o dataset de preços de imóveis da Califórnia
california = fetch_california_housing()

# X = variáveis independentes (features)
X = california.data

# y = variável alvo (preço do imóvel)
y = california.target

# Divide em treino (70%) e teste (30%)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)


##### Grid Search para otimização do modelo #####

from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import GridSearchCV

# Definição dos hiperparâmetros que serão testados
param_grid = {
    'max_depth': [3, 5, 7, 10],          # profundidade da árvore
    'min_samples_split': [2, 5, 10],     # mínimo para dividir nó
    'min_samples_leaf': [1, 2, 4]        # mínimo por folha
}

# Modelo base
model = DecisionTreeRegressor()

# Grid Search com validação cruzada
grid_search = GridSearchCV(
    model,
    param_grid,
    cv=5,
    scoring='neg_mean_squared_error'
)

# Treina todas as combinações possíveis
grid_search.fit(X_train, y_train)

# Melhor conjunto de parâmetros encontrado
print("Melhores parâmetros:", grid_search.best_params_)

Seleção de features com Random Forest

##### Preparação dos dados #####

import pandas as pd
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split

# Carrega dataset de diabetes
diabetes = load_diabetes()

X = diabetes.data
y = diabetes.target

# Divide em treino e teste
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)


##### Treinando Random Forest e extraindo importância #####

from sklearn.ensemble import RandomForestRegressor
import matplotlib.pyplot as plt

# Criação e treino do modelo
model = RandomForestRegressor(random_state=42)
model.fit(X_train, y_train)

# Importância das features
importances = model.feature_importances_
feature_names = diabetes.feature_names


##### Visualização da importância das variáveis #####

plt.figure(figsize=(10, 6))
plt.barh(feature_names, importances)
plt.title("Importância das Features")
plt.xlabel("Importância")
plt.ylabel("Variável")
plt.show()
1 resposta

Oi, Eduardo! Tudo bem?

A sua atividade ajustando modelos de machine learning, mostra uma aplicação muito bem organizada de Grid Search, ajuste de hiperparâmetros e seleção de features em cenários de regressão.

Você estruturou bem o raciocínio ao separar o uso do DecisionTreeRegressor com GridSearchCV para encontrar melhores combinações de parâmetros e o uso do RandomForestRegressor para analisar a importância das variáveis no dataset de diabetes. Essa prática fortalece a compreensão de como um modelo de Machine Learning pode ser ajustado, comparado e interpretado com mais clareza.

Dica: após encontrar os melhores hiperparâmetros, vale avaliar o modelo final com métricas como MSE, MAE ou , comparando o desempenho antes e depois do ajuste para visualizar melhor o ganho obtido.

Qual métrica você pretende usar para comparar os resultados dos modelos ajustados nos dois datasets?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!