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.