Solucionado (ver solução)

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!

Solucionado
(ver solução)
1
resposta

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

Por Que Ajustar Modelos?

Um modelo treinado nem sempre oferece o melhor desempenho possível. Existem dois fatores críticos que influenciam esse resultado:

  • Hiperparâmetros inadequados diminuem a precisão do modelo
  • Variáveis irrelevantes adicionam ruído às previsões

Portanto, precisamos responder: Quais são os melhores valores de hiperparâmetros? Quais features realmente importam?

Técnica 1: Grid Search para Ajuste de Hiperparâmetros

Passo a passo no Google Colab:

from sklearn.datasets import fetch_california_housing
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import GridSearchCV, train_test_split
from sklearn.preprocessing import LabelBinarizer
import numpy as np

# Carregar dados
data = fetch_california_housing()
X = data.data
y = (data.target > np.median(data.target)).astype(int)

# Dividir dados
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Definir parâmetros a testar
param_grid = {
    'max_depth': [3, 5, 7, 10],
    'min_samples_split': [2, 5, 10],
    'min_samples_leaf': [1, 2, 4]
}

# Grid Search
grid_search = GridSearchCV(DecisionTreeClassifier(random_state=42), param_grid, cv=5)
grid_search.fit(X_train, y_train)

print(f"Melhores parâmetros: {grid_search.best_params_}")
print(f"Melhor score: {grid_search.best_score_:.4f}")
print(f"Score no teste: {grid_search.score(X_test, y_test):.4f}")

Técnica 2: Feature Importance para Seleção de Características

Aplicando ao dataset Pima Indians Diabetes:

from sklearn.datasets import load_diabetes
from sklearn.ensemble import RandomForestRegressor
import pandas as pd

# Carregar dados de diabetes
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target

# Treinar modelo
modelo = RandomForestRegressor(random_state=42)
modelo.fit(X, y)

# Extrair importância das features
importancia = modelo.feature_importances_
features = diabetes.feature_names

# Organizar em ordem decrescente
df_importancia = pd.DataFrame({
    'Feature': features,
    'Importância': importancia
}).sort_values('Importância', ascending=False)

print(df_importancia)

# Visualizar
import matplotlib.pyplot as plt
plt.barh(df_importancia['Feature'], df_importancia['Importância'])
plt.xlabel('Importância')
plt.title('Importância das Features na Previsão de Diabetes')
plt.show()
1 resposta
solução!

Olá, Estudante! Como vai?

Parabéns pela realização das atividades!

Você apresentou um conteúdo muito sólido, mostrando clareza na explicação sobre hiperparâmetros, organização na aplicação do Grid Search e precisão ao destacar a relevância da feature importance. Essa combinação demonstra domínio dos conceitos de ajuste de modelos e seleção de variáveis, fundamentais para melhorar a performance em projetos de machine learning.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Validação cruzada avançada: utilizar técnicas como StratifiedKFold para garantir maior robustez nos resultados.
  • Regularização: aplicar métodos como Lasso ou Ridge para reduzir o impacto de variáveis irrelevantes.
  • Automação: explorar ferramentas como RandomizedSearchCV ou Bayesian Optimization para acelerar o processo de ajuste.

Ah uma pergunta: O que você considera mais útil para evoluir seus modelos, investir em técnicas de ajuste de hiperparâmetros ou focar na seleção criteriosa das features?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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