Проблема: Производительность логистической регрессии и моделей на основе деревьев на малом несбалансированном наборе данных

Вопрос или проблема

У меня есть небольшой набор данных с 300 строками и несбалансированным распределением классов (35% положительных). Когда я обучаю модель логистической регрессии, она постоянно показывает результаты хуже случайного выбора. Я использую стратифицированную перекрестную проверку, чтобы оценить производительность, но заметил значительную изменчивость результатов в зависимости от разделения данных.

Моя текущая процедура следующая:

  1. Выделить контрольный тестовый набор, используя стратифицированную k-кратную перекрестную проверку.
  2. Использовать GridSearchCV на обучающих данных, чтобы определить лучшие гиперпараметры для модели на основе дерева.
  3. Посчитать точность на тестовом наборе.

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

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

Какие стратегии вы бы рекомендовали для решения проблемы высокой изменчивости производительности моделей на разных тестовых разделениях?

Ответ или решение

Логистическая регрессия против моделей на основе деревьев: производительность на маленьком и несбалансированном наборе данных

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

Проблема с малым объемом и несбалансированным набором данных

Ваш набор данных состоит из 300 строк с распределением классов, в котором только 35% — положительные примеры. Это может существенно повлиять на производительность модели, особенно в контексте логистической регрессии и моделей на основе деревьев, таких как случайный лес или градиентный бустинг.

  1. Статистика при малом размере выборок: При небольшом объеме данных очень важно обеспечить достаточную тренировочную и тестовую выборку. Стратифицированный k-fold позволяет сохранить пропорции классов в каждом сложенном наборе, однако низкое количество образцов может привести к высокой изменчивости результатов, как вы уже заметили.

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

  3. Деревья решений: Модели на основе деревьев, как правило, более гибкие и способны захватывать сложные зависимости в данных. Тем не менее, их производительность также может быть нестабильной, особенно если в данных много шума или они сильно несбалансированы.

Рекомендации по улучшению оценки модели

Для уменьшения влияния изменчивости и улучшения оценки моделей, рассмотрите следующие стратегии:

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

  2. Используйте метод сбалансирования классов: Перед обучением моделей примените стратегии сбалансирования классов, такие как метод SMOTE (Synthetic Minority Over-sampling Technique) или обычная избыточная выборка позитива. Это поможет улучшить представление меньшего класса.

  3. Многоуровневая кросс-валидация: Вместо использования простого стратифицированного k-fold, рассмотрите экспериментирование с многоуровневой кросс-валидацией, например, с использованием метода leave-one-out или nested cross-validation. Это может помочь уменьшить смещение и обеспечить более точные оценки.

  4. Метрики производительности: Вместо простой точности, фокусируйтесь на других метриках, таких как "F1-мера", "ROC AUC" или "точность положительных результатов" (Precision). Эти метрики лучше учитывают несбалансированность классов.

  5. Тестирование других моделей: Кроме логистической регрессии и деревьев, рассмотрите использование моделей объединения, таких как градиентный бустинг, а также алгоритмы, специально разработанные для работы с несбалансированными данными, например, Balanced Random Forest или XGBoost с соответствующими параметрами.

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

Заключение

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

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

Капча загружается...