Classificação de Dígitos usando Scikit-Learn

Beginner

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

Introdução

Este laboratório é um tutorial passo a passo sobre como utilizar técnicas de classificação no conjunto de dados Digits usando o scikit-learn. Neste laboratório, carregaremos o conjunto de dados, pré-processaremos os dados, dividiremos o conjunto de dados em conjuntos de treino e teste e, em seguida, utilizaremos duas técnicas de classificação diferentes (K-Vizinhos Mais Próximos e Regressão Logística) para classificar os dígitos. Finalmente, compararemos a precisão de ambas as técnicas.

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.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar 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, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para si.

Carregar o conjunto de dados Digits

Começaremos carregando o conjunto de dados digits usando a função load_digits do scikit-learn. Esta função retorna dois arrays: X_digits contendo os dados de entrada e y_digits contendo as etiquetas alvo.

from sklearn import datasets

X_digits, y_digits = datasets.load_digits(return_X_y=True)

Pré-processar os dados

Em seguida, pré-processaremos os dados escalando as características para um intervalo de [0, 1] usando o valor máximo dos dados. Isto pode ser feito dividindo os dados de entrada pelo valor máximo dos dados de entrada.

X_digits = X_digits / X_digits.max()

Dividir o conjunto de dados em conjuntos de treino e teste

Em seguida, dividiremos o conjunto de dados em conjuntos de treino e teste usando a função train_test_split do scikit-learn. Usaremos 90% dos dados para treino e 10% para teste.

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X_digits, y_digits, test_size=0.1, random_state=42)

Treinar e testar o classificador K-Vizinhos Mais Próximos

Agora, treinaremos um classificador K-Vizinhos Mais Próximos (KNN) usando a função KNeighborsClassifier do scikit-learn e testaremos-o no conjunto de teste. Em seguida, imprimiremos a pontuação de precisão do classificador.

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
knn_score = knn.score(X_test, y_test)

print("KNN score: %f" % knn_score)

Treinar e testar o classificador de Regressão Logística

Agora, treinaremos um classificador de Regressão Logística usando a função LogisticRegression do scikit-learn e testaremos-o no conjunto de teste. Em seguida, imprimiremos a pontuação de precisão do classificador.

from sklearn.linear_model import LogisticRegression

logistic = LogisticRegression(max_iter=1000)
logistic.fit(X_train, y_train)
logistic_score = logistic.score(X_test, y_test)

print("Logistic Regression score: %f" % logistic_score)

Compare the accuracy of both classifiers

Finally, we will compare the accuracy of both classifiers by printing the accuracy scores of both classifiers.

print("KNN score: %f" % knn_score)
print("Logistic Regression score: %f" % logistic_score)

Resumo

Neste laboratório, aprendemos como utilizar técnicas de classificação no conjunto de dados Digits usando o scikit-learn. Carregamos o conjunto de dados, pré-processamos os dados, dividimos o conjunto de dados em conjuntos de treino e teste e, em seguida, treinamos e testamos dois classificadores diferentes (K-Vizinhos Mais Próximos e Regressão Logística) no conjunto de teste. Finalmente, comparamos a precisão dos dois classificadores.