Применение ML в Билайне (Часть 2)

Применение ML в Билайне (Часть 2)

Barchenkov
Напомню задачу: определить возрастную группу пользователя по ряду показателей.

Вот и алгоритм (пока теоретический, без примеров кода - примеры с кодами будут позже).

1) Подготовить и очистить данные в обучающей выборке. Для этого нужно удалить строчки с пропусками (практически в большинстве случаев этим все и ограничивается, поэтому ограничимся и в этом примере такой "мини-подготовкой").

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

3) Несмотря на то, что у нас уже есть тестовая (будем называть ее исходная тестовая) выборка (без ответов по возрастной группе - столбец y), нам нужно создать еще одну из обучающей. Зачем это нужно? Исходная тестовая выборка не подходит для теста построенной модели (для выбора наилучшей из моделей), т.к. не содержит того столбца, по которому и будет считаться погрешность. Исходная тестовая выборка - выборка "заказчика" и мы не знаем, есть ли у него ответы по возрастной группе каждого из клиента в исходной тестовой выборке или нет (кто знает, может быть он уже полученные от аналитика результаты пустит в работу. Например, разошлет нужные рекламные объявления нужной возрастной группе). Поэтому делаем свою тестовую выборку (назовем ее просто тестовая). Чаще всего для этого используется метод кросс-валидации (о котором тоже позже).

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

3) В выбранную для обучения модель (вообще их лучше выбрать 2-3 для теста) загрузить обучающую выборку и ждать (функция fit и ее модификации в любом методе). Зачастую ждать приходится долго. Если идет работа с текстом (в особо больших объемах), то обучение (или фиттинг, от функции fit) может занимать от нескольких минут до нескольких часов (конечно, то, на чем вы работаете тоже играет немаловажную роль).

4) В каждой модели считаем погрешность. Выбираем лучшую из моделей и переходим к пункту 5.

5) В выбранной модели вызываем функцию predict (в данном примере именно эта функция) (вызываем = пишем в коде модель.predict (параметры модели)) и закидываем в ее параметры исходную тестовую выборку.

Бинго! Мы получили ответ на вопрос.

Report Page