Классификация цифр с использованием Scikit-Learn

Machine LearningMachine LearningBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Этот практикум представляет собой пошаговое руководство по использованию методов классификации на наборе данных Digits с использованием scikit-learn. В этом практикуме мы загрузим набор данных, предобработаем данные, разделим набор данных на обучающую и тестовую выборки, а затем применим два различных метода классификации (K-Nearest Neighbors и Логистическая регрессия) для классификации цифр. Наконец, мы сравним точность обоих методов.

Советы по работе с ВМ

После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с использованием Jupyter Notebook.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-49106{{"Классификация цифр с использованием Scikit-Learn"}} sklearn/neighbors -.-> lab-49106{{"Классификация цифр с использованием Scikit-Learn"}} sklearn/model_selection -.-> lab-49106{{"Классификация цифр с использованием Scikit-Learn"}} ml/sklearn -.-> lab-49106{{"Классификация цифр с использованием Scikit-Learn"}} end

Загрузка набора данных Digits

Начнем с загрузки набора данных Digits с использованием функции load_digits из scikit-learn. Эта функция возвращает два массива: X_digits, содержащий входные данные, и y_digits, содержащий целевые метки.

from sklearn import datasets

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

Предварительная обработка данных

Затем мы выполним предварительную обработку данных, масштабируя признаки к диапазону [0, 1] с использованием максимального значения данных. Это можно сделать, разделив входные данные на максимальное значение входных данных.

X_digits = X_digits / X_digits.max()

Разделение набора данных на обучающую и тестовую выборки

Далее мы разделим набор данных на обучающую и тестовую выборки с использованием функции train_test_split из scikit-learn. Мы будем использовать 90% данных для обучения и 10% для тестирования.

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)

Обучение и тестирование классификатора K-Nearest Neighbors

Теперь мы обучим классификатор K-Nearest Neighbors (KNN) с использованием функции KNeighborsClassifier из scikit-learn и протестируем его на тестовой выборке. Затем мы выведем показатель точности классификатора.

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)

Обучение и тестирование классификатора Логистическая регрессия

Теперь мы обучим классификатор Логистическая регрессия с использованием функции LogisticRegression из scikit-learn и протестируем его на тестовой выборке. Затем мы выведем показатель точности классификатора.

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)

Сравнение точности обоих классификаторов

Наконец, мы сравним точность обоих классификаторов, выведя показатели точности обоих классификаторов.

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

Резюме

В этом практическом занятии мы научились применять методы классификации к набоору данных Digits с использованием scikit-learn. Мы загрузили набор данных, предобработали данные, разделили набор данных на обучающую и тестовую выборки, а затем обучили и протестировали два различных классификатора (K-Nearest Neighbors и Логистическая регрессия) на тестовой выборке. Наконец, мы сравнили точность обоих классификаторов.