Análise do Conjunto de Dados de Dígitos

Beginner

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

Introdução

Neste laboratório, exploraremos o conjunto de dados de dígitos do scikit-learn. Este conjunto de dados consiste em 1797 imagens de 8x8 pixels, cada uma representando um dígito manuscrito de 0 a 9. Nosso objetivo é analisar este conjunto de dados e compreender como podemos utilizá-lo para classificar dígitos manuscritos usando algoritmos de machine learning.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Às vezes, pode ser necessário esperar 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 tiver problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Importando o Conjunto de Dados

O primeiro passo é importar o conjunto de dados de dígitos do scikit-learn usando o seguinte código:

from sklearn import datasets

## Carregar o conjunto de dados de dígitos
digits = datasets.load_digits()

Visualizando o Conjunto de Dados

Para uma melhor compreensão do conjunto de dados, podemos visualizar uma imagem de amostra usando matplotlib. O código a seguir exibe o último dígito do conjunto de dados:

import matplotlib.pyplot as plt

## Exibir o último dígito
plt.figure(1, figsize=(3, 3))
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show()

Preparando o Conjunto de Dados para Aprendizado de Máquina

Antes de treinar um modelo de aprendizado de máquina no conjunto de dados, precisamos prepará-lo dividindo-o em conjuntos de treinamento e teste. Podemos fazer isso usando a função train_test_split do scikit-learn:

from sklearn.model_selection import train_test_split

## Dividir o conjunto de dados em conjuntos de treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)

Treinando um Modelo de Aprendizado de Máquina

Agora que o conjunto de dados foi preparado, podemos treinar um modelo de aprendizado de máquina nos dados de treinamento. Neste exemplo, usaremos um algoritmo de Máquina de Vetores de Suporte (SVM):

from sklearn.svm import SVC

## Criar o classificador SVM
clf = SVC(kernel='linear')

## Treinar o classificador nos dados de treinamento
clf.fit(X_train, y_train)

Avaliando o Modelo

Para avaliar o desempenho do nosso modelo, podemos usar a função accuracy_score do scikit-learn:

from sklearn.metrics import accuracy_score

## Predizer as etiquetas do conjunto de teste
y_pred = clf.predict(X_test)

## Calcular a precisão do modelo
accuracy = accuracy_score(y_test, y_pred)

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

Melhorando o Modelo

Se a precisão do nosso modelo não for satisfatória, podemos tentar melhorá-lo ajustando os hiperparâmetros do algoritmo SVM. Por exemplo, podemos tentar alterar o valor do parâmetro C:

## Criar o classificador SVM com um valor diferente de C
clf = SVC(kernel='linear', C=0.1)

## Treinar o classificador nos dados de treinamento
clf.fit(X_train, y_train)

## Predizer as etiquetas do conjunto de teste
y_pred = clf.predict(X_test)

## Calcular a precisão do modelo
accuracy = accuracy_score(y_test, y_pred)

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

Resumo

Neste laboratório, exploramos o conjunto de dados de dígitos do scikit-learn e aprendemos como treinar um modelo de aprendizado de máquina para classificar dígitos manuscritos. Também aprendemos como avaliar o desempenho do modelo e como melhorá-lo ajustando os hiperparâmetros do algoritmo. Este conjunto de dados é um ótimo recurso para quem está interessado em aprender sobre algoritmos de classificação de aprendizado de máquina.