Всем привет! Пытаюсь сейчас заниматься решением каких-то практических задач методами ML, в связи с чем возник следующий вопрос.
У меня есть датасет, представляющий собой описание действий юзера на веб-странице, с конечным показателем 1 или 0 (1 - нажал на рекламу, 0 - нет). Первая колонка представляет собой user_id, последняя ответ, все, что между ними - признаки. Отдельных тренировочных и тестовых выборок нет, поэтому делю на них то, что есть. Хочу на нем попробовать стандартные алгоритмы для решения задач классификации (SVC, Random Forest, kNN), но есть проблема. Всего в таблице порядка 20 тысяч строк, описывающих действия юзеров, но при этом уникальных среди них - порядка 8 тысяч. Если загонять в алгоритмы данные в том виде, в котором они есть, предсказание получается слишком хорошим, так как мы по сути предсказываем ответ для объекта, основываясь на его же предыдущих ответах. Как можно устранить этот недостаток? На ум приходит просто оставить строки с уникальными id, но как именно их выбирать, если для одного id может быть много действий? В добавок, это значительно сократит объем данных для обучения, что, как я думаю, негативно скажется на точности предсказания.
Буду очень рад идеям и объяснениям, заранее спасибо.
|