Введение
Этот практикум представляет собой пошаговое руководство по использованию методов классификации на наборе данных Digits с использованием scikit-learn. В этом практикуме мы загрузим набор данных, предобработаем данные, разделим набор данных на обучающую и тестовую выборки, а затем применим два различных метода классификации (K-Nearest Neighbors и Логистическая регрессия) для классификации цифр. Наконец, мы сравним точность обоих методов.
Советы по работе с ВМ
После запуска ВМ перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике с использованием Jupyter Notebook.
Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Загрузка набора данных 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 и Логистическая регрессия) на тестовой выборке. Наконец, мы сравнили точность обоих классификаторов.