Explorando Classificadores SGD do Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, exploraremos o Gradiente Descendente Estocástico (SGD), um poderoso algoritmo de otimização comumente utilizado em aprendizado de máquina para resolver problemas de grande escala e esparsos. Aprenderemos a utilizar as classes SGDClassifier e SGDRegressor da biblioteca scikit-learn para treinar classificadores e regressores lineares.

Dicas da Máquina Virtual

Após o início da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação de operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para você.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 92%. Recebeu uma taxa de avaliações positivas de 86% dos estudantes.

Importar as bibliotecas necessárias

Primeiro, precisamos importar as bibliotecas necessárias. Usaremos a biblioteca scikit-learn para aprendizado de máquina e pré-processamento de dados.

import numpy as np
from sklearn.datasets import load_iris
from sklearn.linear_model import SGDClassifier, SGDRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error

Carregar e pré-processar os dados

Em seguida, carregaremos o conjunto de dados iris e o pré-processaremos escalando as características usando StandardScaler.

## Carregar o conjunto de dados iris
iris = load_iris()
X, y = iris.data, iris.target

## Escalar as características
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

## Dividir os dados em conjuntos de treino e teste
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

Treinar um classificador usando SGD

Agora, treinaremos um classificador usando a classe SGDClassifier. Usaremos a função de perda log_loss e a penalidade l2.

## Treinar um classificador usando SGD
clf = SGDClassifier(loss="log_loss", penalty="l2", max_iter=100, random_state=42)
clf.fit(X_train, y_train)

## Fazer previsões no conjunto de teste
y_pred = clf.predict(X_test)

## Medir a precisão do classificador
accuracy = accuracy_score(y_test, y_pred)

## Imprimir a precisão
print("Precisão do Classificador:", accuracy)

Treinar um regressor usando SGD

Em seguida, treinaremos um regressor usando a classe SGDRegressor. Usaremos a função de perda squared_error e a penalidade l2.

## Treinar um regressor usando SGD
reg = SGDRegressor(loss="squared_error", penalty="l2", max_iter=100, random_state=42)
reg.fit(X_train, y_train)

## Fazer previsões no conjunto de teste
y_pred = reg.predict(X_test)

## Medir o erro quadrático médio do regressor
mse = mean_squared_error(y_test, y_pred)

## Imprimir o erro quadrático médio
print("Erro Quadrático Médio do Regressor:", mse)

Resumo

Neste laboratório, aprendemos como usar o Gradiente Descendente Estocástico (SGD) para treinar classificadores e regressores lineares usando a biblioteca scikit-learn. Treinamos um classificador no conjunto de dados iris e medimos sua precisão, e treinamos um regressor e medimos seu erro quadrático médio. O SGD é um poderoso algoritmo de otimização que pode lidar com problemas de aprendizado de máquina de grande escala e esparsos de forma eficiente.