Вопрос или проблема
Я работаю над существенно несбалансированным набором данных для обнаружения мошенничества (класс 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.
Здесь проблема в том, что виджет Test and Score
делает предсказания только на основании 1,169 экземпляров из сбалансированного тренировочного набора, а не на ~71,000 экземплярах тестового набора.
Подход 2: Перекрестная проверка, а затем недовыборка
- Используйте виджет
Data Sampler
, настроенный на перекрестную проверку. - Сбалансируйте обучающие выборки с помощью случайной недовыборки и подключите их к виджету
Test and Score
, настроенному на “test on test data”. - Подключите несбалансированные тестовые выборки к тому же виджету
Test and Score
как “test data”.
Здесь проблема в том, что неясно, правильно ли выполняется процесс перекрестной проверки, удерживая тестовые выборки несбалансированными, в то время как тренировочные выборки балансируются для каждой итерации. Показатели производительности в целом согласованы по моделям, но MCC (и специфичность для SVM) неожиданно низки по сравнению с другими метриками, поэтому я думаю, что недовыборка выполнялась неправильно в процессе перекрестной проверки.
Какой из этих подходов более подходит для реализации случайной недовыборки во время перекрестной проверки в Orange?
Есть ли какие-либо неправильные настройки или ограничения в настройке виджета, которые могут объяснить описанные проблемы?
Буду признателен за любые советы или предложения
Ответ или решение
Для правильной реализации рандомной андерсэмплинга при кросс-валидации в Orange, особенно на задачах такие как обнаружение мошенничества, необходимо учитывать несколько ключевых моментов. Исходные данные содержат значительный дисбаланс классов: 284315 экземпляров класса 0 и всего 492 экземпляров класса 1. В данной ситуации вашей компании необходимо сбалансировать обучающие наборы на каждой итерации кросс-валидации, сохраняя тестовые наборы несбалансированными.
Подход 1: Андерсэмплинг до кросс-валидации
Этот метод, как вы упомянули, создает проблему: вы обучаете и тестируете модель на одном и том же наборе данных, что делает результаты некорректными. Проблема в том, что модуль "Test and Score" оценивает качество модели только на сбалансированном тренировочном наборе, а не на большом несбалансированном тестовом наборе. Поэтому этот подход не подходит для вашей задачи.
Подход 2: Андерсэмплинг во время кросс-валидации
Этот метод больше соответствует ситуации, но все еще может иметь некоторые ограничения в вашем случае. Важный аспект – убедиться, что тренировочные фолды сбалансированы для каждой итерации кросс-валидации, но с сохранением несбалансированности тестовых фолдов. Причины низких значений MCC и специфичности (особенно для SVM) могут заключаться в некорректной настройке андерсэмплинга или его недостаточности во время итераций.
Рекомендации по настройке
-
Используйте подход 2, но убедитесь, что:
- Вы добавили достаточное количество фолдов в кросс-валидации для репрезентативности.
- Вы корректно настроили рандомный андерсэмплинг на тренировочных данных для каждой итерации.
-
Перепроверка конфигурации:
- Убедитесь, что при каждом цикле тренировочный набор сбалансирован заново, а тестовый набор остается неизменным и несбалансированным.
- Рассмотрите возможность использования модулей модификации данных для более точного контроля над фолдами.
-
Альтернативные методы:
- Возможно, стоит рассмотреть использование других методов балансировки, таких как SMOTE или использование более сложных алгоритмов ансамблей, которые лучше справляются с дисбалансом.
Средством анализа ваших результатов может служить глубинная проверка журнала решений и анализ метрик, таких как F1-меры или ROC-AUC, помимо MCC.
Оптимизация на SEO задается в тексте путем применения ключевых слов, таких как "рандомный андерсэмплинг", "кросс-валидация", "Orange", "небалансированные данные" и "обнаружение мошенничества". Такой подход гарантирует, что текст будет являться релевантным для нужной аудитории, и соответствует высокопрофессиональным стандартам.