Upload
rusbase
View
572
Download
2
Embed Size (px)
Citation preview
Станислав СемёновICBDA, 2016
Использование целевой переменной для улучшения прогноза в прикладных задачах анализа данных
Кейс Вам нужно решить стандартную задачу машинного
обучения с учителем У вас уже есть готовый набор с данными,
придуманы и построены все признаки, определён наиболее подходящий метод машинного обучения
Можно ли улучшить прогноз не используя новые данные и другие методы машинного обучения?
ДанныеГород Возраст Должность Зарплата Одобрение
Санкт-Петербург
25 Программист
100000 1
Обучающая выборка
Москва 36 Аналитик 80000 0Москва 32 Менеджер 150000 1Волгоград 30 - 10000 0Новосибирск 42 Водитель 30000 1
Ивановка 35 Продавец 10000 0… … … … …Уфа 30 Продавец 20000 ?
Тестовая выборка
Москва 32 Менеджер 120000 ?Москва 50 Директор 250000 ?Новосибирск 40 Разнорабочи
й- ?
… … … … …
Использование целевой переменной Goods – , число единиц в каждой группе Bads – число
нулей
Основная проблема Переобучение
10 20 30 40 50 60 70 80 90 10000.010.020.030.040.050.060.070.080.090.1
Валидация Тест
Решение Для построения признаков каждой строки нельзя
использовать целевую переменную этой же строки Представьте что вы используете любой метод
разбивки для кросс-валидации
Проблемы В отличие от обычных признаков, нам нужно их по-
разному рассчитывать для обучающей и для тестовой выборки
Могут быть новые значения признаков в тестовой выборке, которые не встречались в обучающей
Может быть разная частота вхождения тех или иных значений признаков в обучающей выборке
Решение
– среднее значение целевой переменной по всей выборке, – коэффициент регуляризации
Город Число строк Likelihood Smoothed LikelihoodМосква 100 0.74 0.72Санкт-Петербург 50 0.66 0.64Новосибирск 10 0.8 0.67Ивановка 1 0. 0.57Уфа 5 1. 0.68Владивосток 0 - 0.6
Непрерывные признаки Что делать если есть непрерывные признаки?Например: возраст, зарплата.1. Оставить как есть2. Создать группы руками (возраст больше 18,
зарплата больше 100000, и т.д.)3. Использовать округление (возраст / 5, зарплата /
20000)4. Посчитать перцентили для каждого признака
Результаты
XGBoost RF NN00.010.020.030.040.050.060.070.08
Метрика качества - LogLoss
Оригинальные данные Данные с использованием целевой переменной
В среднем улучшает результат на 10-15%
Плюсы метода Не нужно использовать много памяти, как в случае с
One-Hot-Encoding Можно добавлять такие признаки сразу по
нескольким целевым переменным, находя дополнительные взаимодействия между ними
Метод показывает значительный прирост без использования новых данных
Метод может быть применен автоматически к текущему решению
Минусы метода Сложно валидировать модели - остаётся шанс
переобучения Плохо работает на небольшом количестве данных
Область применимостиЗадачи с большим количеством строк и категориальных признаков:Предсказание CTR, предсказание поведения пользователя в интернете, кредитный скоринг
Спасибо за внимание Вопросы?