Анализ набора данных цифр

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

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

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

Введение

В этом лабораторном задании мы будем исследовать набор данных digits из scikit - learn. Этот набор данных состоит из 1797 изображений размером 8x8 пикселей, каждое из которых представляет собой рукописную цифру от 0 до 9. Наша цель - проанализировать этот набор данных и понять, как мы можем использовать его для классификации рукописных цифр с использованием алгоритмов машинного обучения.

Советы по использованию ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку 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/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/svm -.-> lab-49110{{"Анализ набора данных цифр"}} sklearn/model_selection -.-> lab-49110{{"Анализ набора данных цифр"}} sklearn/metrics -.-> lab-49110{{"Анализ набора данных цифр"}} ml/sklearn -.-> lab-49110{{"Анализ набора данных цифр"}} end

Импорт набора данных

Первым шагом является импорт набора данных digits из scikit - learn с использованием следующего кода:

from sklearn import datasets

## Load the digits dataset
digits = datasets.load_digits()

Визуализация набора данных

Для лучшего понимания набора данных мы можем визуализировать образец изображения с использованием matplotlib. Следующий код отображает последнюю цифру в наборе данных:

import matplotlib.pyplot as plt

## Display the last digit
plt.figure(1, figsize=(3, 3))
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show()

Подготовка набора данных для машинного обучения

Прежде чем мы сможем обучить модель машинного обучения на наборе данных, нам нужно подготовить данные, разделив их на обучающий и тестовый наборы. Мы можем сделать это с использованием функции train_test_split из scikit - learn:

from sklearn.model_selection import train_test_split

## Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)

Обучение модели машинного обучения

Теперь, когда мы подготовили набор данных, мы можем обучить модель машинного обучения на обучающих данных. В этом примере мы будем использовать алгоритм Support Vector Machine (SVM):

from sklearn.svm import SVC

## Create the SVM classifier
clf = SVC(kernel='linear')

## Train the classifier on the training data
clf.fit(X_train, y_train)

Оценка модели

Для оценки производительности нашей модели мы можем использовать функцию accuracy_score из scikit - learn:

from sklearn.metrics import accuracy_score

## Predict the labels of the test set
y_pred = clf.predict(X_test)

## Calculate the accuracy of the model
accuracy = accuracy_score(y_test, y_pred)

## Print the accuracy of the model
print("Accuracy:", accuracy)

Улучшение модели

Если точность нашей модели неудовлетворительна, мы можем попробовать улучшить ее, настроив гиперпараметры алгоритма SVM. Например, мы можем попробовать изменить значение параметра C:

## Create the SVM classifier with a different value of C
clf = SVC(kernel='linear', C=0.1)

## Train the classifier on the training data
clf.fit(X_train, y_train)

## Predict the labels of the test set
y_pred = clf.predict(X_test)

## Calculate the accuracy of the model
accuracy = accuracy_score(y_test, y_pred)

## Print the accuracy of the model
print("Accuracy:", accuracy)

Резюме

В этом практическом занятии мы изучили набор данных digits из scikit - learn и узнали, как обучать модель машинного обучения для классификации рукописных цифр. Мы также узнали, как оценивать производительность модели и как улучшать ее, настраивая гиперпараметры алгоритма. Этот набор данных - отличный ресурс для любого, кто интересуется изучением алгоритмов классификации в машинном обучении.