Так что же такое машинное обучение? Что ж, прежде чем мы перейдем к научным терминам и определениям, название «Машинное обучение» может дать нам представление о том, что оно влечет за собой. Проще говоря, компьютеры или «машины» автоматически учатся решать проблемы и совершенствуются на основе полученного опыта. Круто, правда?

Более научное определение машинного обучения. Машинное обучение — это ветвь искусственного интеллекта, которая позволяет программным приложениям более точно прогнозировать результаты без явного программирования для этого.

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

Контролируемое обучение: здесь набор обучающих данных имеет соответствующую метку (выходные данные), связанную с ним, поэтому алгоритм учится предсказывать значения меток (выходных данных).

Обучение без учителя: здесь нет меток для обучающих данных, поэтому алгоритм пытается изучить основные закономерности в данных данных.

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

Есть 5 основных шагов, которые упростили процесс машинного обучения.

Шаг 1: Определение проблемы

Шаг 2: Создание набора данных

Шаг 3: Обучение модели

Шаг 4: Оценка модели

Шаг 5: Использование модели/вывода модели

1. Определение проблемы

Этот шаг включает в себя конкретное определение задачи машинного обучения путем понимания проблемы. Будет ли это контролируемое обучение? Являются ли данные категоричными или непрерывными? Будет ли это неконтролируемое обучение? или мы внедряем обучение с подкреплением?

Например

Компания электронной коммерции хочет знать, следует ли ей больше сосредоточиться на разработке веб-сайтов или на разработке мобильных приложений, поскольку оба приложения были запущены 5 лет назад.

Как определить постановку задачи? Эта проблема довольно расплывчата, нам нужно уточнить и задать очень конкретные вопросы.

Лучшим примером может быть: как время, которое пользователи тратят на мобильное приложение, соотносится со временем, которое пользователи тратят на веб-приложение?

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

2. Создайте набор данных

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

После сбора данных мы проверяем качество данных. Это очень важный шаг. Здесь мы удаляем выбросы, проверяем наличие неполных значений, а также преобразовываем и предварительно обрабатываем данные. Имейте в виду, что нам нужно, чтобы наши данные были согласованными, потому что низкое качество данных может повлиять на производительность нашей модели.

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

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

3. Модельное обучение

Итак, теперь наш набор данных полностью очищен, предварительно обработан, и мы лучше понимаем данные. Пришло время обучить нашу модель. Ура!

Чтобы передать наши данные в модель, нам нужно разделить набор данных на набор данных для обучения и набор данных для тестирования. В большинстве случаев это делается 80%, 20% соответственно. Поэтому сначала мы обучаем нашу модель, используя обучающий набор данных, а затем тестируем нашу обученную модель, используя тестовый набор данных.

Процесс обучения включает в себя ввод обучающих данных в модель, вычисление функции потерь результата и обновление параметров модели (весов) для уменьшения потерь. Функция потерь измеряет, насколько далеки или близки значения нашей модели от фактических значений. Во время обучения мы пытаемся свести к минимуму эту потерю без недообучения или переоснащения нашей модели.

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

Некоторые примеры моделей включают: линейные модели, древовидные модели, модели глубокого обучения.

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

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

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

Некоторые статистические показатели включают в себя; точность (наиболее распространенная), логарифмическая потеря, средняя абсолютная ошибка, точность, скорректированный квадрат, R-квадрат (R²), среднеквадратическая ошибка, среднеквадратическая ошибка и другие.

Однако обратите внимание, что метрики, используемые для оценки, зависят от поставленной задачи и используемого алгоритма обучения.

Например.

Для модели линейной регрессии труднее проиллюстрировать точность, потому что совершенно невозможно предсказать точное значение, а скорее то, насколько ваш прогноз близок к реальному значению. Метриками для оценки модели в линейной регрессии могут быть R-квадрат/скорректированный r-квадрат (обратите внимание, что эти 2 выполняются по-разному), среднеквадратическая ошибка или среднеквадратическая ошибка и средняя абсолютная ошибка.

5 Вывод/Использование модели

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

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

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

Займемся моделированием :) https://www.kaggle.com/