Рекомендация по материалам для изучения дисбаланса категорий

глубокое обучение GitHub

То, что я рекомендую сегодня, это проект 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 связанных статей. Он содержит подробную классификацию нескольких существующих методов, а также является тенденцией.

? Систематический обзор существующих методов с подробной таксономией

глубокое обучение

передискретизация данных

  • передискретизация

    • 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 ссылок)

    • RAMOBoost [Code] (2010, 140+ цитирований)

    • [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), Обучение эффективных ансамблей несбалансированных данных с адаптивной координированной классификацией;

      ? Высокая производительность и эффективность вычислений, широко применимые к различным классификаторам.

аномальное обнаружение


разное

Несбалансированный набор данных

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-код ниже, чтобы общаться, учиться и развиваться вместе!