Как справиться с несбалансированным набором данных и выбросами в python? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть 2 сомнения:

  1. Если у нас есть проблема классификации с фреймом данных, у которого нет большого количества признаков (столбцы> 100), и если, скажем, 20/30 из них сильно коррелированы, и целевые столбцы (y) очень наклонены к одному классу; Должны ли мы сначала устранить дисбаланс с помощью Imblearn или мы должны отбросить сильно коррелированные столбцы?
  2. В случае классификации мы должны сначала стандартизировать данные или обработать выбросы?

1 Ответ

1 голос
/ 20 февраля 2020

Не существует «верного» ответа на ваши вопросы - подход к выбору сильно зависит от ваших настроек, моделей, которые вы применяете, и поставленных целей.

topi c из класса Дисбаланс обсуждался в другом месте (например, здесь и здесь ).

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

Несмотря на то, что вы на самом деле не работаете с дисбалансом в распределении ваших ярлыков, указанная вами настройка c может требовать назначения различных затрат ложных срабатываний и ложных отрицательных результатов (например, стоимость неправильной классификации больного раком как здорового может быть выше, чем наоборот). С этим можно справиться, например, адаптировав свою функцию стоимости (например, ложный отрицательный влекущий за собой более высокую стоимость, чем ложный отрицательный), или выполнив некую пороговую оптимизацию после обучения (например, для достижения определенной точности / отзыва в перекрестной проверке).

Проблема сильно коррелированных элементов возникает с моделями, которые предполагают отсутствие корреляции между объектами. Например, если у вас есть проблема с мультиколлинеарность в вашем пространстве признаков, оценки параметров в регрессиях логистики c могут быть отключены. Существует ли мультиколлинеарность или нет, например, вы можете проверить, используя коэффициент инфляции дисперсии (VIF). Однако не все модели имеют такое допущение, поэтому вы можете сэкономить, не обращая внимания на проблему в зависимости от ваших настроек.

То же самое относится к стандартизации : это может не потребоваться (например, классификаторы дерева) , но другой метод может потребовать его (например, PCA).

Трудно ли справиться с выбросами или нет. Сначала вы должны определить, что такое выбросы - являются ли они, например, результатом человеческой ошибки? Ожидаете ли вы увидеть подобные случаи в дикой природе? Если вы можете установить sh, что ваша модель работает лучше, если вы тренируете ее с удаленными выбросами (в проверке или на тестовом наборе), то: go обязательно. Но сохраняйте потенциальные выбросы для проверки, если вы планируете применить свою модель к потокам данных, которые могут привести к аналогичным выбросам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...