Машинное обучение и анализ данных

Читатели моего блога знают, что я люблю разного рода исследования.

Особый интерес вызвали два исследования по YMYL страницах сайтов медицинской тематики.

Это связано с тем, что в процессе исследования я использовал машинное обучение при помощи бесплатного инструмента BigML.

Из текста заданных мне вопросов и комментариев я понял, что многие читатели хотели бы самостоятельно провести своё исследование, используя машинное обучение, но им:
а) не хватает базовых знаний о процессе машинного обучения;
б) сложно разобраться в том, как использовать BigML для этого.

Поэтому, эта статья — это, по сути, машинное обучение для чайников или введение в машинное обучение.

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

Что такое машинное обучение?

Существует огромное количество определений термина машинное обучение. Мне больше всего нравится определение, сформулированное специалистами SAS:

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

Давайте вернёмся к азам.

Введение в машинное обучение

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

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

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

Процесс подготовки данных для алгоритма машинного обучения можно обобщить в три этапа:

Шаг 1 : Выбор и сбор данных.
Шаг 2 : Предварительная обработка данных.
Шаг 3 : Преобразование данных. Этот шаг не для чайников, потому я в этой статье описывать его не буду.

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

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

Три основных этапа предварительной обработки данных — это форматирование, очистка и выборка:

Форматирование : выбранные вами данные могут быть не в том формате, который вам подходит для работы. Установите нужный формат для соответствующих типов данных. Не используйте для числовых данных подобный формат представления 1,989,49. Многие программы будут распознавать такие данные, как текст. Если вы хотите, чтобы это была цифра, она в вашем наборе данных должна выглядеть так  1989,49. Некоторые программы для анализа данных распознают данные как текст, если вместо запятой после целой части числа используется точка вместо запятой. Рекомендую использовать именно запятую.

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

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

Промежуточный итог

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

Машинное обучение — пример

Судя по данным Ahrefs и Serpstat, многие пользователи ищут информацию о машинном обучении по запросам «машинное обучение пример» и «машинное обучение с чего начать». Это перекликается с основной сутью полученных мной отзывов на предыдущие публикации.

Если вы не вебмастер, вы можете использовать любые другие доступные вам данные, например информацию из бухгалтерской программы 1С.

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

Поскольку я занимаюсь веб-аналитикой и оптимизацией сайтов, в качестве источников информации я обычно использую данные:
* SEMrush;
* Serpstat ;
* Majestic;
* Ahrefs;
* Moz;
* Google Analytics;
* Google Search Console.

Собираю я эти и другие данные при помощи программ Netpeak Spider и Netpeak Checker (промокод на скидку в 10% — 869c893c), используя API указанных выше сервисов.

Вот что я использую для анализа данных:

AnswerMiner — позволяет быстро и удобно получить информацию о силе корреляции между показателями набора данных.
* Orange — бесплатный, удобный и быстрый интеллектуальный анализ данных.
* BigML — бесплатная платформа для машинного обучения.

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

Цель — классифицировать YMYL страницы по качеству, выявить наборы уникальных различий для каждого из кластеров.

Способ достижения результата — сбор ТОП 30 по 100 запросам медицинской тематики (использовался SEMrush), сбор данных по запросам — использовался Netpeak Checker, кластеризация YMYL страниц (использовался Orange), машинное обучение (построение модели, её обучение и оценка — использовался BigML).

То что я собирал запросы именно с помощью SEMrush, ещё не значит, что вы должны делать так же.

Нужные запросы вы можете собрать и при помощи Serpstat и там же сразу кластеризовать.

Открываете в Serpstat меню «Инструменты» и там выбираете инструмент «Кластеризация ключевых слов и анализ текста». Создаёте ваш проект, выставляете настройки кластеризации. Дальше инструмент всё сделает за вас.

Много об этом писать не буду, просто посмотрите это видео.

Что вам это даст? Результаты классификации можно использовать как дополнительные категории при анализе данных в процессе машинного обучения.

Допустим, все нужные запросы уже собраны. Запускаем Netpeak Checker (промокод на скидку в 10% — 869c893c). Открываем в нём инструмент «Парсер поисковых систем». Выставляем нужные настройки и вносим список ключевых слов для парсинга.

Сбор данных при помощи Netpeak Checker

Я таким образом по 100 запросам собрал результаты поисковой выдачи из ТОП30 Google.

Там же в Netpeak Checker я собрал показатели OnPage интернет-страниц, а также информацию по API из указанных выше источников данных. Например, показатели трафика я брал из Serpstat.

Дальше руками, хотя есть решения при помощи Python, я произвёл форматирование и очистку данных, как было описано выше.

Полученный набор данных я загрузил в Orange.

Data Mining в Orange

Используя Data Mining средствами Orange, я получил информацию о целевых кластерах, а также то, что самой значимой переменной для кластеризации является «Общий трафик». Все мои выводы были опубликованы в исследовании Как Google классифицирует YMYL сайты .

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

Регистрируетесь в BigML.

Загружаете ваш набор данных. Здесь я дам небольшой комментарий. В качестве источника данных вы можете дать ссылку или просто перетянуть файл с рабочего стола в BigML, но я предпочитаю обычную загрузку файла. Причём, самый лучший формат для набора данных — CSV.

Машинное обучение для чайников в BigML

Вот так изнутри выглядит ваш набор данных.

Анализ данных в BigML

В моём наборе три типа данных — числовые (123), текстовые (text), категории (ABC). Прежде чем производить дальнейшие действия, проверьте насколько BigML корректно распознал тип данных. Если вы увидели ошибку, нажмите на кнопку в виде бочёнка с шестерёнкой и внесите нужные исправления. Не забудьте сохранить изменения.

Затем переходим к созданию набора данных для машинного обучения в среде BigML. Нажмите на кнопку «1-Click Dataset».

BigML - создание набора данных

Вы должны исключить из дальнейшего процесса машинного обучения не значимые показатели. Например, я исключил показатель «Запрос». Как это сделать?

Напротив каждого показателя есть «Карандаш». Это кнопка для редактирования. По умолчанию показатели значимые (на картинке выше действие №1), кроме случаев, когда BigML сам определяет не значимые показатели. Вам нужно нажать на кнопку со знаком восклицания и затем сохранить изменения. После этого возле не значимого поля появится красный знак восклицания (на картинке выше действие №2).

Машинное обучение модели

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

Давайте разделим данные на две части — набор данных для обучения и на тестовый набор данных.

Машинное обучение данных

По умолчанию BigML разделит ваши данные в пропорции 80 на 20, но вы можете выставить собственные значения, например, 70 на 30. Я оставил по умолчанию. В итоге будут созданы два дополнительных набора данных «НазваниеВашегоНабора80» и «НазваниеВашегоНабора20».

Вам нужно войти в набор данных для обучения «НазваниеВашегоНабора80» и создать модель. Для этого нажимаете на кнопку в виде облака с молнией и выбираете опцию «1-CLICK MODEL».

BigML построит дерево решений. Чем толще ветка дерева решений, тем вероятнее прогноз.

Машинное обучение - дерево решений

Но вы должны проанализировать и другие ветки. Обратите внимание на ветки, у которых конечный элемент имеет значение показателя уверенность (Confidence) больше 75 процентов. Таких веток может быть несколько. Советую отдавать предпочтение той ветке, у которой выше показатель уверенности и процент элементов в наборе данных. Для этого подведите курсор к конечному элементу ветки и вы увидите подсказку.

Оценка модели и прогноз

Следующий этап — это оценка точности модели. Очень важно, чтобы точность модели была не ниже 95 процентов.

В наборе данных для обучения «НазваниеВашегоНабора80» нужно выбрать функцию «Оценить» (Evaluate — на рисунке ниже действие №1). Затем, если вы захотите сделать прогноз, нужно нажать на кнопку «Прогнозировать» (Predict — на рисунке ниже действие №2).

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

В моём случае, точность модели составила 98,97 процента. Дерева решений вполне достаточно для того, чтобы найти интересные данные, которые раньше были не очевидными.

Что касается прогноза, я советую вам поиграть со значениями и ползунками. Уверен, что там ничего сложного и вы с этим сами разберётесь.

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

Если что-то непонятно, пишите ваши отзывы в комментариях к статье.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *