Изменения

Перейти к: навигация, поиск

Алгоритмы сэмплирования

3931 байт добавлено, 02:13, 17 марта 2020
Нет описания правки
* получившие верную метку класса;
* являющиеся соседями миноритарных примеров, которые были неверно классифицированы.
==== '''Сэмплирование''' (англ. ''sampling'') Дополнительно ======== '''Сэмплирование''' * Under-sampling with Cluster Centroids<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* NearMiss <math>(1 \And 2 \And 3)</math><ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* Edited Nearest Neighbours<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* Instance Hardness Threshold<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* Repeated Edited Nearest Neighbours<ref> [https://en.wikipedia.org Sampling_(англstatistics)]</ref>* AllKNN<ref> [https://en. ''sampling''wikipedia.org Sampling_(statistics) ====]</ref>
=== Передискретизации (увеличение числа примеров миноритарного класса) ===
Самый простой метод – это дублирование примеров миноритарного класса. В зависимости от того, какое соотношение классов необходимо, выбирается количество случайных записей для дублирования.
==== '''SMOTE''' (англ. ''Synthetic Minority Oversampling Technique'') ====
Этот алгоритм основан на идее генерации некоторого количества искусственных примеров, которые были бы похожи на имеющиеся в миноритарном классе, но при этом не дублировали их. Для создания новой записи находят разность <math>d=X_b–X_a</math>, где <math>X_a</math>,<math>X_b</math> – векторы признаков «соседних» примеров <math>a</math> и <math>b</math> из миноритарного класса. Их находят, используя алгоритм ближайшего соседа [[Метрический_классификатор_и_метод_ближайших_соседей|KNN]]. В данном случае необходимо и достаточно для примера <math>b</math> получить набор из <math>k</math> соседей, из которого в дальнейшем будет выбрана запись <math>b</math>. Остальные шаги алгоритма ''KNN'' не требуются.Далее из <math>d</math> путем умножения каждого его элемента на случайное число в интервале <math>(0, 1)</math> получают <math>\hat{d}</math>. Вектор признаков нового примера вычисляется путем сложения <math>X_a</math> и <math>\hat{d}</math>. Алгоритм ''SMOTE'' позволяет задавать количество записей, которое необходимо искусственно сгенерировать. Степень сходства примеров <math>a</math> и <math>b</math> можно регулировать путем изменения числа ближайших соседей <math>k</math>. На рис. <math>4</math> схематично изображено то, как в двумерном пространстве признаков могут располагаться искусственно сгенерированные примеры.==== '''ASMO''' (англ. ''Adaptive Synthetic Minority Oversampling'') ====Алгоритм ''SMOTE'' имеет недостаток в том, что «вслепую» увеличивает плотность примерами в области слабо представленного класса (рис. <math>5</math>). В случае, если миноритарные примеры равномерно распределены среди мажоритарных и имеют низкую плотность, алгоритм SMOTE только сильнее перемешает классы.В качестве решения данной проблемы был предложен алгоритм адаптивного искусственного увеличения числа примеров миноритарного класса ''ASMO'':# Если для каждого <math>i</math>-ого примера миноритарного класса из <math>k</math> ближайших соседей <math>g, (g≤k)</math> принадлежит к мажоритарному, то набор данных считается «рассеянным». В этом случае используют алгоритм ASMO, иначе применяют SMOTE (как правило, <math>g</math> задают равным <math>20</math>).# Используя только примеры миноритарного класса, выделить несколько кластеров (например, алгоритмом [[K-средних|<tex>\mathrm{k}</tex>-средних]]k-means).# Сгенерировать искусственные записи в пределах отдельных кластеров на основе всех классов. Для каждого примера миноритарного класса находят <math>m</math> ближайших соседей, и на основе них (также как в ''SMOTE'') создаются новые записи.Такая модификация алгоритма ''SMOTE'' делает его более адаптивным к различным наборам данных с несбалансированными классами. Общее представление идеи алгоритма показано на рис. <math>6</math>.==== Дополнительно ====* SMOTENC - SMOTE for Nominal Continuous<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* bSMOTE <math>(1 \And 2)</math> - Borderline SMOTE of types <math>1</math> and <math>2</math><ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* SVM SMOTE - Support Vectors SMOTE<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* ADASYN - Adaptive synthetic sampling approach for imbalanced learning<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* Repeated Edited Nearest Neighbours<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* KMeans-SMOTE<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>
Далее из <math>d</math> путем умножения каждого его элемента на случайное число в интервале <math>(0, 1)</math> получают <math>\hat{d}</math>. Вектор признаков нового примера вычисляется путем сложения <math>X_a</math> и <math>\hat{d}</math>. Алгоритм ''SMOTE'' позволяет задавать количество записей, которое необходимо искусственно сгенерировать. Степень сходства примеров <math>a</math> и <math>b</math> можно регулировать путем изменения числа ближайших соседей <math>k</math>. На рис. <math>4</math> схематично изображено то, как в двумерном пространстве признаков могут располагаться искусственно сгенерированные примеры.
==== '''Сэмплирование''' (англ. ''sampling'') ====
==== '''Сэмплирование''' (англ. ''sampling'') ====
=== Комбинированние ===
* SMOTE <math>+</math> Tomek links<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* SMOTE + ENN<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref> === Ансамбль сбалансированных наборовклассификаторов, использующие сэмплирование внутри===* Easy Ensemble classifier<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* Balanced Random Forest<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* Balanced Bagging<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* RUSBoost<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>
== Реализации ==
302
правки

Навигация