То, что я рекомендую сегодня, это проект github, Адрес проекта следующий, в основном для статей, кодов, фреймворков, библиотек и других ресурсов категории несбалансированного обучения.
https://github.com/ZhiningLiu1998/awesome-imbalanced-learning
предисловие
Дисбаланс классов, также известная как проблема длинного хвоста, относится к тому факту, что количество категорий в наборе данных в задаче классификации непоследовательно, некоторые категории очень велики, а некоторые очень малы, и это очень часто встречается в практическое применение Проблема. Например, обнаружение мошенничества, предсказание побочных эффектов редких лекарств и предсказание семейства генов. Из-за дисбаланса категорий прогноз неточен, и производительность модели классификации снижается. Следовательно, цель несбалансированного обучения состоит в том, чтобы решить проблему дисбаланса классов и изучить непредвзятую модель из несбалансированных данных.
Каталог выглядит так:
- Кодовая база/фреймворк
- Python
- R
- Java
- Scalar
- Julia
- бумага
- Обзор
- глубокое обучение
- Передискретизация данных
- Экономичное обучение
- ансамблевое обучение
- аномальное обнаружение
- разное
- Несбалансированная база данных
- другие источники
Кроме того, те, которые отмечены ?, являются важными или высококачественными документами и фреймворками, особенно рекомендованными авторами.
Кодовая база/фреймворк
Python
imbalanced-learn
Официальный сайт: https://imbalanced-learn.org/stable/
Гитхаб: https://github.com/scikit-learn-contrib/imbalanced-learn
Официальная документация: https://imbalanced-learn.readthedocs.io/en/stable/
Адрес статьи: http://10.187.70.34/www.jmlr.org/papers/volume18/16-365/16-365.pdf
Эта библиотека написана на python, который предоставляет некоторые методы повторной выборки, обычно используемые в наборах данных, она адаптируется к библиотеке scikit-learn, а также является частью библиотеки scikit-learn-contrib.
? написан на питоне, легко начать
R
- smote_variants
Официальный сайт: https://smote-variants.readthedocs.io/en/latest/
Документация: [(https://smote-variants.readthedocs.io/en/latest/
Гитхаб: https://github.com/analyticalmindsltd/smote_variants)
Набор из 85 методов передискретизации для несбалансированного обучения, включая многоклассовую передискретизацию и методы признаков выбора модели (поддерживает R и Julia)
- caret
Официальный сайт: https://cran.r-project.org/web/packages/caret/index.html
Документация: http://topepo.github.io/caret/index.html
Гитхаб: https://github.com/topepo/caret
Реализует методы случайной недостаточной и избыточной выборки
- ROSE
Официальный сайт: https://cran.r-project.org/web/packages/ROSE/index.html
Документация: https://www.rdocumentation.org/packages/ROSE/versions/0.0-3.
Реализован случайный метод передискретизации
- DMwR
Официальный сайт: https://cran.r-project.org/web/packages/DMwR/index.html
Документация: https://www.rdocumentation.org/packages/DMwR/versions/0.4.1.
Реализован SMOTE (Synthetic Minority Over-sampling TEchnique), метод синтетической передискретизации меньшинства.
Java
KEEL
Официальный сайт: https://sci2s.ugr.es/keel/description.php
Гитхаб: https://github.com/SCI2SUGR/KEEL
Документ: https://sci2s.ugr.es/sites/default/files/ficherosPublicaciones/0758_Alcalaetal-SoftComputing-Keel1.0.pdf
KEEL предоставляет простой графический интерфейс для разработки экспериментов с различными наборами данных на основе потока данных, а также алгоритмы для различных интеллектуальных вычислений (особенно эволюционных алгоритмов), чтобы можно было понять поведение алгоритмов. Инструмент включает в себя множество широко используемых несбалансированных методов обучения, таких как избыточная и недостаточная выборка, обучение с учетом потерь, модификация алгоритма и методы ансамблевого обучения.
? Содержит множество алгоритмов, таких как классические алгоритмы классификации, алгоритмы регрессии и алгоритмы предварительной обработки.
Scalar
undersampling
Официальный сайт: https://github.com/NestorRV/undersampling
Документация: https://nestorrv.github.io/
Гитхаб: https://github.com/NestorRV/undersampling
Реализован метод субдискретизации, а также вариант ансамблевого метода.
Julia
smote_variantsОфициальный сайт: https://smote-variants.readthedocs.io/en/latest/ Документация: https://smote-variants.readthedocs.io/en/latest/ Гитхаб: https://github.com/analyticalmindsltd/smote_variants
Набор из 85 методов передискретизации для несбалансированного обучения, включая многоклассовую передискретизацию и методы признаков выбора модели (поддерживает R и Julia)
бумага
- Learning from imbalanced data, статья 2009 г., более 4700 цитирований, очень классическая статья. В основном систематический обзор популярных решений, критериев оценки, а также проблем и проблем, с которыми необходимо столкнуться в будущих исследованиях (по состоянию на 2009 г.);
? Классическая работа
- Learning from imbalanced data: open challenges and future directions(2016, более 400 цитирований, в этой статье основное внимание уделяется открытым проблемам и проблемам несбалансированного обучения, таким как крайний дисбаланс классов, решение проблем несбалансированного обучения в онлайн / потоковом обучении, несбалансированное обучение в нескольких классах и полу- или неконтролируемое обучение несбалансированное обучение.
- Learning from class-imbalanced data: Review of methods and applications(2017 (более 400 цитирований), очень подробный обзорный документ о методах и приложениях несбалансированного обучения, содержащий в общей сложности 527 связанных статей. Он содержит подробную классификацию нескольких существующих методов, а также является тенденцией.
? Систематический обзор существующих методов с подробной таксономией
глубокое обучение
-
Обзор
- A systematic study of the class imbalance problem in convolutional neural networks(2018, 330+ цитирований)
- Survey on deep learning with class imbalance(2019, 50+ цитирований)
? Недавние подробные статьи о дисбалансе классов в глубоком обучении
-
Сложная добыча образцов
- Training region-based object detectors with online hard example mining(CVPR 2016, 840+ ссылок), на заключительном этапе обучения нейронной сети обратное распространение градиентов выполняется только на «жестких образцах» (например, образцах с большими значениями потерь)
-
Инжиниринг функции потерь
- Training deep neural networks on imbalanced data sets(IJCNN 2016, более 110 цитирований), RMSE может в равной степени фиксировать ошибки классификации из классов большинства и меньшинства.
- Focal loss for dense object detection [Code (Unofficial)] (ICCV 2017, более 2600 цитирований), равномерная функция потерь, которая концентрирует обучение на разреженном наборе сложных выборок, предотвращая большое количество простых отрицательных выборок, которые имеют тенденцию перегружать детектор во время обучения.
? Элегантное решение с большим эффектом
- Deep imbalanced attribute classification using visual attention aggregation [Code] (ECCV 2018, более 30 ссылок)
- Imbalanced deep learning by minority class incremental rectification(TPAMI 2018, более 60 цитирований) вводит потерю коррекции класса, которая минимизирует доминирующий эффект класса большинства за счет обнаружения разреженных границ выборки класса меньшинства во время итеративного процесса пакетного обучения;
- Learning Imbalanced Datasets with Label-Distribution-Aware Margin Loss [Code] (NIPS 2019, более 10 цитирований), теоретически обоснованный предельный убыток с учетом распределения меток (LDAM), мотивированный минимизировать границы обобщения на основе поля.
- Gradient harmonized single-stage detector [Code] (AAAI 2019, более 40 цитат), по сравнению с Focal loss, которая уменьшает вес только «простых» отрицательных образцов, GHM также может уменьшить вес некоторых «жестких» образцов, которые могут быть выбросами.
? Интересная идея: согласовывать выборочные вклады в соответствии с градиентным распределением
- Class-Balanced Loss Based on Effective Number of Samples(CVPR 2019, более 70 цитирований), простой и общий механизм корректировки веса класса на основе эффективного количества выборок.
-
метаобучение
-
Learning to model the tail(NIPS 2017, более 70 цитирований), передача метазнаний от классов, богатых данными, во главе распределения к классам, бедным данными, в хвосте;
-
Learning to reweight examples for robust deep learning [Code] (ICML 2018, более 150 цитирований), который неявно изучает весовую функцию для корректировки веса выборок при градиентном обновлении глубоких нейронных сетей.
? Репрезентативная работа по устранению дисбаланса классов с помощью метаобучения.
-
Meta-weight-net: Learning an explicit mapping for sample weighting [Code] (NIPS 2019), при обновлении градиента глубокой нейронной сети явно изучается весовая функция (с использованием многослойного персептрона в качестве аппроксиматора функции) для корректировки веса выборки;
-
Learning Data Manipulation for Augmentation and Weighting [Code] (NIPS 2019)
-
Learning to Balance: Bayesian Meta-Learning for Imbalanced and Out-of-distribution Tasks [Code] (ICLR 2020)
-
-
репрезентативное обучение
- Learning deep representation for imbalanced classification(CVPR 2016, более 220 цитирований)
- Supervised Class Distribution Learning for GANs-Based Imbalanced Classification (ICDM 2019)
- Decoupling Representation and Classifier for Long-tailed Recognition (ICLR 2020)
-
изучение курса
-
двухступенчатое обучение
- Brain tumor segmentation with deep neural networks(2017, более 1200 цитирований), сначала предварительно обучите набор данных со сбалансированным классом, затем выполните точную настройку последнего выходного слоя перед сетевым softmax на исходном наборе данных со сбалансированным классом;
-
сетевая структура
передискретизация данных
-
передискретизация
-
ROS [Code] - случайная передискретизация
-
SMOTE [Code] (2002, более 9800 цитирований), Synthetic Minority Oversampling TEchnique
? Классическая работа
-
Borderline-SMOTE [Code] (2005, более 1400 цитирований), Методы избыточной выборки для классов меньшинств граничного синтеза;
-
ADASYN [Code] (2008, более 1100 цитирований), ADaptive SYNthetic Sampling;
-
SPIDER [Code (Java)] (2008, более 150 ссылок), Выборочная предварительная обработка несбалансированных данных;
-
Safe-Level-SMOTE [Code (Java)] (2009 г., более 370 цитирований), Методы избыточной выборки для интегрированных классов меньшинств на уровне безопасности;
-
SVM-SMOTE [Code] (2009, более 120 цитирований), SMOTE на основе SVM
-
SMOTE-IPF(2015, более 180 цитирований), SMOTE для итеративной фильтрации разделов
-
-
недостаточная выборка
- RUS [Code], случайная недостаточная выборка;
- CNN [Code] (1968, 2100+ цитирований), Сокращенный ближайший сосед;
- ENN [Code] (1972, более 1500 цитирований), Edited Condensed Nearest Neighbor;
- TomekLink [Code] (1976, 870+ цитат), метод коррекции Томека для сжатых ближайших соседей;
- NCR [Code] (2001, более 500 цитирований), Правила очистки ближайших соседей;
- NearMiss-1 & 2 & 3 [Code] (2003, 420+ цитат), Несколько методов KNN для решения несбалансированных распределений данных.
- CNN with TomekLink [Code (Java)] (2004, 2000+ ссылок), объединяющий методы сокращенного ближайшего соседа и TomekLink;
- OSS [Code] (2007, более 2100 цитирований): One Side Selection;
- EUS(2009, 290+ цитирований): Эволюционная недостаточная выборка;
- IHT [Code] (2014, более 130 цитирований): Instance Hardness Threshold;
-
смешанная выборка
-
SMOTE-Tomek & SMOTE-ENN(2004, 2000+ цитирований) [Code (SMOTE-Tomek)] [Code (SMOTE-ENN)] , сочетающий в себе технику передискретизации меньшинства и модификацию Томека сжатых соседей/отредактированных соседей;
? Обширная экспериментальная оценка с использованием 10 различных методов избыточной/недостаточной выборки.
-
SMOTE-RSB(2012, более 210 цитирований) с использованием сочетания предварительной обработки SMOTE и теории грубых множеств;
-
обучение с учетом затрат
- CSC4.5 [Code (Java)] (2002, 420+ ссылок), практический метод взвешивания для создания деревьев, чувствительных к затратам;
- CSSVM [Code (Java)] (2008 г., более 710 цитирований), Чувствительные к затратам SVM для сильно несбалансированной классификации;
- [CSNN](https://sci2s.ugr.es/keel/pdf/algorithm/articulo/2006 - IEEE_TKDE - Zhou_Liu.pdf) [Code (Java)] (2005 г., более 950 ссылок) за обучение чувствительной к стоимости нейронной сети на основе решения проблемы дисбаланса классов;
интегрированное обучение
-
Boosting-based
-
[AdaBoost](https://sci2s.ugr.es/keel/pdf/algorithm/articulo/1997-JCSS-Schapire-A Decision-Theoretic Generalization of On-Line Learning (AdaBoost).pdf) [Code] (1995, 18700+ цитирований)
-
DataBoost(2004, 570+ цитирований)
-
SMOTEBoost [Code] (2003 г., более 1100 цитирований)
? Классическая работа
-
[MSMOTEBoost] (https://sci2s.ugr.es/keel/pdf/algorithm/articulo/2011-IEEE TSMC partC- GalarFdezBarrenecheaBustinceHerrera.pdf) (2011, более 1300 ссылок)
-
[RUSBoost](https://sci2s.ugr.es/keel/pdf/algorithm/articulo/2010-IEEE TSMCpartA-RUSBoost A Hybrid Approach to Alleviating Class Imbalance.pdf) [Code] (2009 г., более 850 цитирований)
? Классическая работа
-
AdaBoostNC(2012, 350+ цитирований)
-
EUSBoost(2013, 210+ цитирований)
-
-
bagging-based
- [Bagging](https://sci2s.ugr.es/keel/pdf/algorithm/articulo/1996-ML-Breiman-Bagging Predictors.pdf) [Code] (1996, 23100+ цитирований), Предиктор мешков;
- [OverBagging & UnderOverBagging & SMOTEBagging & MSMOTEBagging](https://sci2s.ugr.es/keel/pdf/algorithm/congreso/2009-IEEE CIDM-WangYao.pdf) [Code (SMOTEBagging)] (2009, более 290 цитирований), Случайная передискретизация на основе пакетов/Случайная смешанная повторная выборка/SMOTE/Модифицированный SMOTE;
- [UnderBagging](https://sci2s.ugr.es/keel/pdf/algorithm/articulo/2003-PAA- New Applications of Ensembles of Classifiers.pdf) [Code] (2003, более 170 цитирований), случайная недостаточная выборка на основе бэггинга;
-
Другие методы наследования
-
[EasyEnsemble & BalanceCascade](https://sci2s.ugr.es/keel/pdf/algorithm/articulo/2009-IEEE TSMCpartB Exploratory Undersampling for Class Imbalance Learning.pdf) [Code (EasyEnsemble)] [Code (BalanceCascade)] (2008, более 1300 цитирований), Параллельное ансамблевое обучение с RUS (EasyEnsemble) / Каскадное ансамблевое обучение с RUS с итеративным удалением хорошо классифицированных образцов (BalanceCascade);
? Простой, но эффективный метод
-
Self-paced Ensemble [Code] (ICDE 2020), Обучение эффективных ансамблей несбалансированных данных с адаптивной координированной классификацией;
? Высокая производительность и эффективность вычислений, широко применимые к различным классификаторам.
-
аномальное обнаружение
- Anomaly Detection Learning Resources, книги, документы, видео и наборы инструментов, связанные с обнаружением аномалий.
- Обзор
- Anomaly detection: A survey(2009, 7300+ цитирований)
- A survey of network anomaly detection techniques(2017, 210+ цитирований)
- Классификация на основе
- One-class SVMs for document classification(2001 г., более 1300 цитирований)
- One-class Collaborative Filtering(2008, 830+ цитирований)
- Isolation Forest(2008 г., более 1000 цитирований)
- Anomaly Detection using One-Class Neural Networks(2018, 70+ цитирований)
- Anomaly Detection with Robust Deep Autoencoders(КДД 2017, более 170 цитирований)
разное
Несбалансированный набор данных
ID | Name | Repository & Target | Ratio | #S | #F |
---|---|---|---|---|---|
1 | ecoli | UCI, target: imU | 8.6:1 | 336 | 7 |
2 | optical_digits | UCI, target: 8 | 9.1:1 | 5,620 | 64 |
3 | satimage | UCI, target: 4 | 9.3:1 | 6,435 | 36 |
4 | pen_digits | UCI, target: 5 | 9.4:1 | 10,992 | 16 |
5 | abalone | UCI, target: 7 | 9.7:1 | 4,177 | 10 |
6 | sick_euthyroid | UCI, target: sick euthyroid | 9.8:1 | 3,163 | 42 |
7 | spectrometer | UCI, target: > =44 | 11:1 | 531 | 93 |
8 | car_eval_34 | UCI, target: good, v good | 12:1 | 1,728 | 21 |
9 | isolet | UCI, target: A, B | 12:1 | 7,797 | 617 |
10 | us_crime | UCI, target: >0.65 | 12:1 | 1,994 | 100 |
11 | yeast_ml8 | LIBSVM, target: 8 | 13:1 | 2,417 | 103 |
12 | scene | LIBSVM, target: >one label | 13:1 | 2,407 | 294 |
13 | libras_move | UCI, target: 1 | 14:1 | 360 | 90 |
14 | thyroid_sick | UCI, target: sick | 15:1 | 3,772 | 52 |
15 | coil_2000 | KDD, CoIL, target: minority | 16:1 | 9,822 | 85 |
16 | arrhythmia | UCI, target: 06 | 17:1 | 452 | 278 |
17 | solar_flare_m0 | UCI, target: M->0 | 19:1 | 1,389 | 32 |
18 | oil | UCI, target: minority | 22:1 | 937 | 49 |
19 | car_eval_4 | UCI, target: vgood | 26:1 | 1,728 | 21 |
20 | wine_quality | UCI, wine, target: <=4 | 26:1 | 4,898 | 11 |
21 | letter_img | UCI, target: Z | 26:1 | 20,000 | 16 |
22 | yeast_me2 | UCI, target: ME2 | 28:1 | 1,484 | 8 |
23 | webpage | LIBSVM, w7a, target: minority | 33:1 | 34,780 | 300 |
24 | ozone_level | UCI, ozone, data | 34:1 | 2,536 | 72 |
25 | mammography | UCI, target: minority | 42:1 | 11,183 | 6 |
26 | protein_homo | KDD CUP 2004, minority | 111:1 | 145,751 | 74 |
27 | abalone_19 | UCI, target: 19 | 130:1 | 4,177 | 10 |
Сбор вышеуказанных наборов данных происходит изimblearn.datasets.fetch_datasets
Другие источники
- Paper-list-on-Imbalanced-Time-series-Classification-with-Deep-Learning
- acm_imbalanced_learning, слайды и код из лекции по несбалансированному обучению ACM, 27 апреля 2016 г. в Остине, штат Техас;
- imbalanced-algorithms, основанный на алгоритме, реализованном в python для изучения несбалансированных данных;
- imbalanced-dataset-sampler, несбалансированный сэмплер набора данных (PyTorch) для избыточной выборки низкочастотных классов и недостаточной выборки высокочастотных классов;
- class_imbalance, дисбаланс категорий бинарной классификации, показанный Jupyter Notebook;
Наконец, адрес github:
https://github.com/ZhiningLiu1998/awesome-imbalanced-learning
Кроме того, мой уровень ограничен, поэтому перевод некоторых профессиональных терминов может быть неправильным и не может быть идеальным, пожалуйста, потерпите меня, спасибо!
Добро пожаловать в мой общедоступный аккаунт WeChat--Рост алгоритма обезьяныили отсканируйте QR-код ниже, чтобы общаться, учиться и развиваться вместе!