Как правильно реализовать случайную недовыборку во время кросс-валидации в Orange

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

Я работаю над существенно несбалансированным набором данных для обнаружения мошенничества (класс 0: 284315 экземпляров, класс 1: 492 экземпляра) и пытаюсь правильно реализовать случайную недовыборку во время перекрестной проверки в Orange. Насколько я понимаю, случайная недовыборка должна применяться во время перекрестной проверки, где тестовая выборка остается несбалансированной, в то время как тренировочные выборки сбалансированы для каждой итерации.

Я попробовал два разных подхода в Orange, но оба представляют трудности:

Подход 1: Недовыборка до перекрестной проверки.

  • Разделите исходный несбалансированный набор данных на обучающую (80%) и тестовую (20%) выборки с помощью виджета Data Sampler.
  • Сбалансируйте обучающую выборку с помощью случайной недовыборки (в результате получается 1,194 экземпляра) с использованием виджетов Select Columns и Data Sampler.
  • Подключите виджет сбалансированных тренировочных данных как “data” к виджету Test and Score.
  • Подключите несбалансированную тестовую выборку (~71,000 экземпляров) как “test data” к Test and Score с настройкой CrossValidation.
    Workflow for Approach1Test and Score widget for Approach1

Здесь проблема в том, что виджет Test and Score делает предсказания только на основании 1,169 экземпляров из сбалансированного тренировочного набора, а не на ~71,000 экземплярах тестового набора.

Подход 2: Перекрестная проверка, а затем недовыборка

  • Используйте виджет Data Sampler, настроенный на перекрестную проверку.
  • Сбалансируйте обучающие выборки с помощью случайной недовыборки и подключите их к виджету Test and Score, настроенному на “test on test data”.
  • Подключите несбалансированные тестовые выборки к тому же виджету Test and Score
    как “test data”.
    Workflow for Approach2Test and Score widget for Approach2

Здесь проблема в том, что неясно, правильно ли выполняется процесс перекрестной проверки, удерживая тестовые выборки несбалансированными, в то время как тренировочные выборки балансируются для каждой итерации. Показатели производительности в целом согласованы по моделям, но MCC (и специфичность для SVM) неожиданно низки по сравнению с другими метриками, поэтому я думаю, что недовыборка выполнялась неправильно в процессе перекрестной проверки.

Какой из этих подходов более подходит для реализации случайной недовыборки во время перекрестной проверки в Orange?
Есть ли какие-либо неправильные настройки или ограничения в настройке виджета, которые могут объяснить описанные проблемы?

Буду признателен за любые советы или предложения

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

Для правильной реализации рандомной андерсэмплинга при кросс-валидации в Orange, особенно на задачах такие как обнаружение мошенничества, необходимо учитывать несколько ключевых моментов. Исходные данные содержат значительный дисбаланс классов: 284315 экземпляров класса 0 и всего 492 экземпляров класса 1. В данной ситуации вашей компании необходимо сбалансировать обучающие наборы на каждой итерации кросс-валидации, сохраняя тестовые наборы несбалансированными.

Подход 1: Андерсэмплинг до кросс-валидации

Этот метод, как вы упомянули, создает проблему: вы обучаете и тестируете модель на одном и том же наборе данных, что делает результаты некорректными. Проблема в том, что модуль "Test and Score" оценивает качество модели только на сбалансированном тренировочном наборе, а не на большом несбалансированном тестовом наборе. Поэтому этот подход не подходит для вашей задачи.

Подход 2: Андерсэмплинг во время кросс-валидации

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

Рекомендации по настройке

  1. Используйте подход 2, но убедитесь, что:

    • Вы добавили достаточное количество фолдов в кросс-валидации для репрезентативности.
    • Вы корректно настроили рандомный андерсэмплинг на тренировочных данных для каждой итерации.
  2. Перепроверка конфигурации:

    • Убедитесь, что при каждом цикле тренировочный набор сбалансирован заново, а тестовый набор остается неизменным и несбалансированным.
    • Рассмотрите возможность использования модулей модификации данных для более точного контроля над фолдами.
  3. Альтернативные методы:

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

Средством анализа ваших результатов может служить глубинная проверка журнала решений и анализ метрик, таких как F1-меры или ROC-AUC, помимо MCC.

Оптимизация на SEO задается в тексте путем применения ключевых слов, таких как "рандомный андерсэмплинг", "кросс-валидация", "Orange", "небалансированные данные" и "обнаружение мошенничества". Такой подход гарантирует, что текст будет являться релевантным для нужной аудитории, и соответствует высокопрофессиональным стандартам.

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

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