Я новичок в машинном обучении и сталкиваюсь с ситуацией. Я работаю над проблемой ставок в реальном времени с набором данных IPinYou и пытаюсь сделать прогноз клика.
Дело в том, что, как вы, возможно, знаете, набор данных очень несбалансирован: около 1300 отрицательных примеров (без кликов) на 1 положительный пример (клик).
Это то чем я занимаюсь:
- Загрузите данные
- Разделите набор данных на 3 набора данных: A = Обучение (60%) B = Проверка (20%) C = Тестирование (20%)
- Для каждого набора данных (A, B, C) выполните недостаточную выборку для каждого отрицательного класса, чтобы получить соотношение 5 (5 отрицательных примеров для 1 положительного примера). Это дает мне 3 новых набора данных, которые являются более сбалансированными: A 'B' C '
Затем я тренирую свою модель с набором данных A 'и логистической регрессией.
Мой вопрос:
Какой набор данных мне нужно использовать для проверки? B или B '?
Какой набор данных мне нужно использовать для тестирования? С или С '
Какие показатели наиболее актуальны для оценки моей модели? F1Score, кажется, хорошо используемый показатель. Но здесь из-за несбалансированного класса (если я использую наборы данных B и C), точность низкая (ниже 0,20), и на F1Score очень влияет низкая отзывчивость / точность. Будет ли правильнее использовать aucPR или aucROC?
Если я хочу построить кривую обучения, какие метрики я должен использовать? (зная, что ошибка% не имеет значения, если я использую набор данных B для проверки)
Спасибо заранее за ваше время !
С уважением.
источник
Ибо,
1)
и2)
вы хотитеПоэтому для этих наборов данных вам не нужно балансировать классы.
Вы также можете попытаться использовать веса классов вместо недостаточной / избыточной выборки, так как это позаботится об этом решении за вас.
Поскольку
3)
вы, вероятно, хотите оптимизировать, используя любую метрику, по которой вы будете оцениваться (если это соревнование). Но если это не рассмотрение, все эти модели - прекрасный выбор. F1 может зависеть от низкой точности, но вы хотите, чтобы это было зафиксировано. Именно тогда, когда некоторые наивные модели (например, угадывают класс большинства) могут хорошо оценить по некоторым показателям, такие оценки, как F1, актуальны.Что касается того, что
4)
нет ничего плохого в том, чтобы показать, какой показатель вы оптимизируете.источник
Вы должны проверить свой классификатор на наборе данных, который представляет, почему он будет использоваться. Лучшим обычно является немодифицированное распределение.
Во время обучения измените набор данных так, как вам удобно.
Подробности см. В разделе Должен ли я использовать «сбалансированный» набор данных или «репрезентативный» набор данных?
источник