Это правильный подход, чтобы скопировать вставить неравный набор данных, чтобы сделать их всех равными? - PullRequest
0 голосов
/ 22 сентября 2019

Я работаю с Медицинскими изображениями (DICOM Images), чтобы классифицировать их по трем различным классным заболеваниям, но у меня нет одинакового распределения тренировочных образов для каждого класса.Это правильный подход, чтобы просто скопировать и вставить неравные, пока они все не равны по количеству?если нет то, что должно быть лучше?

1 Ответ

1 голос
/ 22 сентября 2019

У вас есть дисбаланс в данных и его общее.Ваше решение по сути с избыточной выборкой и является известной стратегией.Я бы использовал формальное решение, такое как np.random.choice или np.random.rand, и реализовал бы загрузчик.В качестве альтернативы itertools.combinations - это еще один подход

Справочная информация Существует 3 способа решения этой проблемы: один - недостаточная выборка, избыточная выборка, а третий - изменение метрики производительности.

Еслиу вас, скажем, 30:30:40 дисбаланс по болезням X, Y и Z. Отбор проб - это удаление избытка путем повторной выборки удаления Z для достижения баланса.

Если у вас есть 15:15:70 для X, Y, Z, вы можете рассмотреть вопрос о передискретизации путем пересчета X и Y для достижения баланса.Лично я не фанат, но просто мое мнение.

В качестве альтернативы вы можете просто использовать точность и отзыв в качестве метрик производительности, а не точности.Таким образом, используйте кривые точного вызова, очень похожие на ROC.

Лучшее решение из всех - просто собрать больше данных, но обычно это не практично.


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

...