Implementação do Gradiente Descendente Estocástico

Beginner

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

Introdução

O Gradiente Descendente Estocástico (SGD) é um algoritmo de otimização popular usado no aprendizado de máquina. É uma variação do algoritmo de gradiente descendente que utiliza um subconjunto aleatoriamente selecionado dos dados de treinamento em cada iteração. Isso o torna computacionalmente eficiente e adequado para lidar com grandes conjuntos de dados. Neste laboratório, iremos percorrer os passos da implementação do SGD em Python usando o scikit-learn.

Dicas da Máquina Virtual

Após o término da inicialização da máquina virtual, 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 das 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 82%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Importar Bibliotecas

Primeiro, precisamos importar as bibliotecas necessárias para este laboratório, incluindo o scikit-learn.

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

Carregar Dados

Em seguida, carregaremos o conjunto de dados iris do scikit-learn. Este conjunto de dados é um conjunto de dados clássico de aprendizado de máquina que consiste em medições de flores de íris, juntamente com suas etiquetas de espécies.

iris = load_iris()
X = iris.data
y = iris.target

Pré-processar Dados

Antes de aplicar o SGD, muitas vezes é benéfico pré-processar os dados. Neste caso, vamos padronizar as características usando o StandardScaler do scikit-learn.

scaler = StandardScaler()
X = scaler.fit_transform(X)

Dividir Dados

Dividiremos o conjunto de dados em um conjunto de treinamento e um conjunto de teste. O conjunto de treinamento será usado para treinar o classificador SGD, enquanto o conjunto de teste será usado para avaliar seu desempenho.

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

Treinar o Classificador

Agora podemos criar e treinar o classificador SGD usando a classe SGDClassifier do scikit-learn. Usaremos a função de perda 'hinge', comumente utilizada para classificadores lineares.

clf = SGDClassifier(loss='hinge', random_state=42)
clf.fit(X_train, y_train)

Fazer Previsões

Depois de treinado o classificador, podemos usá-lo para fazer previsões em novos dados. Aqui, usaremos para prever as classes-alvo para o conjunto de teste.

y_pred = clf.predict(X_test)

Avaliar o Desempenho

Finalmente, avaliaremos o desempenho do classificador calculando a precisão de suas previsões no conjunto de teste.

accuracy = accuracy_score(y_test, y_pred)
print("Precisão:", accuracy)

Resumo

Neste laboratório, aprendemos como implementar o Gradiente Descendente Estocástico (SGD) usando o scikit-learn. Carregamos o conjunto de dados iris, pré-processamos os dados, dividimos em conjuntos de treino e teste, treinamos um classificador SGD, fizemos previsões e avaliamos o desempenho do classificador. O SGD é um poderoso algoritmo de otimização amplamente utilizado em aprendizado de máquina para problemas de grande escala.