Skip to content

Irina-Smol/Classification-MNIST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Classification-MNIST

Классификация изображений на примере датасета MNIST

Классификация изображений (image classification) — это задача машинного обучения с учителем. Есть набор изображений (наши признаки) и описание того, что представлено на этих изображениях (наша целевая переменная).

Дано: классический датасет MNIST, содержащий изображения написанных от руки цифр от 0 до 9.

Задача: модель самостоятельно определяет, что представлено на изображении

  • В данном случае классов десять (т.е. речь идёт о мультиклассовой классификации).

Решение:

  • В качестве алгоритма использован метод опорных векторов (support vector machine или SVM).

Метод опорных векторов (SVM)

Принцип этого классификатора заключается в том, чтобы построить плоскость (а вернее гиперплоскость, потому что мы работа в многомерном пространстве) между несколькими точками каждого класса. Эти точки называются опорными векторами (support vectors).

1

лоскость строится таким образом, чтобы максимизировать «зазор» или расстояние между опорными векторами.

В случае если линейную плоскость провести невозможно, алгоритм предварительно трансформирует данные так, чтобы их все-таки можно было разделить с помощью гиперплоскости, т.е. линейно.

2

Это называется kernel trick (метод ядра). Помимо возведения в квадрат существуют и другие функции ядра.

Подход к решению задачи:

  1. Проанализировать изображения (посмотреть встроенный набор данных, сколько изображений, вывести матрицу первого изображения и т.д.).

  2. Рассмотрим первые 4 изображения.

  3. Подготовка данных.

  • Двумерные матрицы каждого изображения нужно преобразовать в одномерные.

3

  • Матрицы нужно соединить и тогда все изображения поместятся в один двумерный массив.

4

  • Теперь цифровые изображения ничем не отличаются от стандартных данных в задачах классификации (по горизонтали отложены изображения, т.е. точки данных, по вертикали — признаки (оттенки пикселей)).

  • В процессе обучения модели изначально необходимо разбить данные на обучающую и тестовую выборки.

  • Затем использовать метод опорных векторов для обучения модели и формирования прогноза.

  • С помощью атрубута support_ посмотреть на индексы точек (изображений), которые использовались в качестве опорных векторов при обучении модели.

  • Использовать индексы support_ к нашему датасету, выбрать (отфильтровать) изображения, которые использовал классификатор.

  • Произвести оценку качества модели (использовать метрику accuracy).

Она показывает долю правильных предсказаний. В случае с мультиклассовой классификацией она рассчитывается как среднее арифметическое accuracy по всем классам.
  • Создать матрицу ошибок (удобнее смотреть аccuracy по каждому классу).

  • Визуализировать результаты работы

Вывод: алгоритм дважды ошибся с цифрой 9, классифицировав ее как 7 и 8.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published