Машинное обучение - одно из самых популярных словечек 2018 года. Так что же такое машинное обучение? Я объясню это своими словами. Это процесс обучения компьютера на примерах, а не жесткого кодирования всех возможных ситуаций. Если вы знаете, что такое машина

В замешательстве? Потерпите несколько минут. Я объясню это на примере.

Предположим, вы хотите научиться спортивному футболу. Вы будете делать то же самое, что и все остальные. Вы найдете человека, который хорошо разбирается в футболе, и попросите его тренировать вас. В процессе обучения вы будете спрашивать, как бить ногами, как целиться и обо всем остальном сложном !! Вы увидите, как они играют, и попытаетесь чему-то научиться, наблюдая за ними. Здесь вы учитесь на примерах. Наблюдая за человеком, который хорошо справляется с задачей, вы постепенно начинаете хорошо ее решать. Таким образом, вы научитесь игре в футбол, поняв ее. В неизвестной ситуации вы пытаетесь найти аналогичный опыт, который был у вас в прошлом, чтобы справиться с ней. Это примерный подход к обучению игре в мяч в любой ситуации. он же подход, основанный на машинном обучении.

* Я никогда в жизни не играл в футбол! *

Давайте рассмотрим другой подход к обучению футболу. Вы не могли найти тренера в своем городе. Таким образом, вы связываетесь с человеком, который готов помочь вам по телефону. К сожалению, такой подход не принесет вам много пользы. Он будет объяснять все способы ударить по мячу и прицелиться в соответствии с правилами. Ударьте под углом 30 градусов относительно земли с силой 10 Н. В реальной игре может возникнуть бесконечное количество различных случаев. У нас не может быть тренера, который укажет нам, что делать для всех бесконечных возможных комбинаций. Это основанный на правилах подход к игре в мяч в любой ситуации. Ясно, что этот подход не удастся !!!

Надеюсь, вы получили представление о машинном обучении. Теперь мы будем говорить об алгоритме машинного обучения под названием Логистическая регрессия. Позже мы поговорим о том, как с его помощью можно понять, оскорбительный текст или нет.

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

1 → Положительный класс

0 → отрицательный класс

Я считаю, что вы уже поняли, что такое Классификация. Теперь перейдем к алгоритму.

Для простоты предположим, что у нас есть только одна точка данных. Всего в нем n функций. Также предположим, что у нас есть подходящая матрица весов. Теперь, учитывая точку данных, нам нужно предсказать метку класса (классифицировать как 1 или 0). Посмотрите на схему. У нас будет весовой вектор, который будет умножен на входной вектор, чтобы получить скалярный результат. Этот вывод подается в сигмовидную функцию для получения значения от 0 до 1. Назовем эту вероятность того, что предсказанный класс равен 1. Если вероятность больше 0,5, то предсказанный класс равен 1. Если вероятность меньше, чем. 5, то прогнозируемый класс равен 0.

Я подробно объясню все части алгоритма. Начнем с сигмовидной функции.

Таким образом, если вход принадлежит положительному классу, то скалярное произведение должно иметь большее значение, которое, в свою очередь, отправляется в сигмоид, чтобы сгенерировать большую вероятность для положительного класса и наоборот. Теперь нам нужно установить веса таким образом, чтобы алгоритм предсказывал более высокие вероятности для положительных классов и более низкие вероятности для отрицательных классов.

Прежде чем продолжить, нам нужна метрика для оценки текущей производительности алгоритма. Предположим, вы сгенерировали набор прогнозов? Насколько они хороши? Насколько мы неправы? Функция затрат помогает понять это.

Более низкая стоимость → лучший алгоритм

Более высокая стоимость → Плохой алгоритм

Во время предсказания может возникнуть четыре случая!

Функция стоимости может использоваться для оценки алгоритма. Фактически, его основное использование - оптимизация весовой матрицы. Пришло время, когда процесс дифференциации, которому мы учимся с детства, пригодится нам!

После беспорядочной дифференциации вы получите следующее

Веса оптимизированы по принципу градиентного спуска. Подробнее об этом.

Альфа обычно называется скоростью обучения или размером шага. В некотором смысле он определяет величину изменения веса для каждого обновления.

Объединение всех частей

Изначально у нас есть набор данных, в котором есть несколько точек данных с функциями в нем. Начнем со случайной инициализации весовой матрицы. Затем мы выполняем уравнение обновления веса для желаемого количества эпох для сходимости функции стоимости. Теперь у нас есть модель, готовая к развертыванию.

Теперь мы можем взять новую точку выборки, которой не было в исходном наборе данных, и сгенерировать прогноз. Вычисляется скалярное произведение, которое затем подается на сигмоид, чтобы получить выходную вероятность. Если результат больше 0,5, то это положительный класс. Иначе он относится к отрицательному классу.

Это алгоритм! А теперь сделаем что-нибудь полезное.

Использование логистической регрессии для выявления оскорблений

Выше приведены обучающие предложения, которые мы используем для логистической регрессии. Алгоритм находит соответствующий вектор весов, используя приведенные выше предложения. «1» рядом с предложением означает, что приговор является оскорблением. «0» рядом с предложением означает, что предложения не являются оскорбительными.

Мы будем использовать Sklearn для создания представления Мешок слов для предложений.

Теперь у нас есть тренированные веса. Теперь мы можем использовать эти веса и проверить их на каком-нибудь тестовом векторе.

Это печатает, было ли предложение оскорблением или нет. Там с помощью машинного обучения Алгоритм смог идентифицировать оскорбления без необходимости вручную добавлять оскорбительные слова!

На самом деле в Sklearn есть все эти алгоритмы.

Https://gist.github.com/Rithwikksvr/26efbfb07ab3542154aff788a3da6bb8

Загляните в этот Блокнот, чтобы узнать подробности!