Продолжение новичка.
Разблокировка наших телефонов, просто позволяя ему распознавать наше лицо или отпечатки пальцев, - одно из очень популярных достижений в истории технологий. Обладая очень высокой степенью защиты и безопасности, ML продолжает каждый день изобретать новые технологии. Одна из наиболее часто используемых ветвей машинного обучения называется Классификация.
Классификация:
- Тип обучения с учителем, при котором заданный набор данных распределяется по классам на основе сходства их характеристик.
- Цель задачи анализа данных: прогнозирование метки для заданных наборов данных; категориальные или дискретные ярлыки.
- Также известен как логистическая регрессия.
- Имеет всего 2 выхода - ДА (1) и НЕТ (0).
- Пример: определение спам-писем, в которых СПАМ = 1, а НЕ СПАМ = 0.
Как и любой другой алгоритм контролируемого обучения, этот также состоит из шести основных шагов:
- Импорт наборов данных
- Предварительная обработка данных
- Определение модели
- Расчет погрешности
- Минимизация ошибок
- Прогнозирование будущих ценностей.
Шаг 1. Импорт данных
- Хорошо известный набор данных, который используется для распознавания рукописных чисел, называется набором данных mnist, который состоит из тысяч выборок всех цифр от 0 до 9.
- Всего имеется 784 сэмпла пикселей (28x28), где числа отображаются белым цветом на черном фоне.
- Все 784 пиксельных отсчета набора данных содержат значения пикселей.
Значение пикселя для черного: 0 и значение пикселя для белого: 255
Шаг 2: предварительная обработка данных
- Изменение данных перед их передачей в алгоритм, чтобы упростить и упростить вычисления.
- Разделение всех данных на два: X-вход (функция) и Y-фактический выход, который полностью зависит от используемого набора данных и задачи, которую необходимо выполнить.
- И X, и Y делятся на
Данные для обучения - для обучения и построения модели
Тестовые данные - для проверки построенной модели.
Шаг 3: Определение модели
Модель: представление данных
- Каждая метка набора данных имеет свою собственную модель, и каждая модель представляет собой границу принятия решения - зеленую границу.
- Точки, попадающие в границу, относятся к этой конкретной категории, а остальные - к другому классу.
- Для классификации вывод только двоичный: 0≤x≤1. Мы выбираем логистическую функцию, которая вычисляет выход в требуемом диапазоне. В данном случае мы выбрали сигмовидную функцию в качестве модели.
Сигмоидальная функция z (g (z)) задается следующим образом: z = f (x) = X * theta.T
Шаг 4: Расчет погрешности
- Поскольку выходные данные являются двоичными, существует только 2 вида ошибок: нулевая ошибка и максимальная ошибка (бесконечность).
- 2 случая, когда может возникнуть ошибка:
Сценарий 1: фактический результат = 1 и прогнозируемый результат = 0
Ошибка = -log (g (x))
Сценарий 2: фактический результат = 0 и прогнозируемый результат = 1
Ошибка = -log (1-g (x))
- Объединяя оба случая, окончательная функция стоимости J обозначается как:
Шаг 5: минимизация ошибки
- Достигается с помощью алгоритма градиентного спуска, который оптимизирует значения параметров, чтобы привести модель в соответствие с входными значениями.
- Этот процесс повторяется несколько раз до тех пор, пока вы не достигнете минимума по наклону / функция стоимости не будет минимизирована.
Когда у нас есть несколько категорий в одном операторе, мы должны запускать алгоритм градиентного спуска отдельно для каждой категории классов. Чтобы свести к минимуму ошибки для всех категорий и решить, когда остановить обучение, мы используем предопределенную функцию из библиотеки scikit:
Шаг 6: окончательный шаг-прогноз
- После того, как функция стоимости минимизирована, модель затем тестируется с использованием тестовых данных и рассчитывается точность модели. Теперь модель готова делать прогнозы.
- Чтобы делать прогнозы, мы должны загрузить входное изображение. Мы можем использовать библиотеку python PIL для загрузки и инвертирования изображения (поскольку большинство входных изображений имеют белый фон с черными надписями).
- Теперь эту завершенную модель можно использовать для получения прогноза категории для одного конкретного входа, указывая, принадлежит ли вход этой конкретной категории или нет.
Чтобы прочитать о регрессии, нажмите:
Благодарю вас! Приятного чтения!