Изменения

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

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

16 655 байт добавлено, 19:16, 4 сентября 2022
м
rollbackEdits.php mass rollback
'''Сэмплирование''' (англ. ''data sampling'') {{---}} метод корректировки обучающей выборки с целью балансировки распределения классов в исходном наборе данных. Нужно отличать этот метод от [[Активное обучение#Методы отбора объектов |сэмплирования в активном обучении]] для отбора кандидатов и от сэмплирования в статистике<ref> [https://en.wikipedia.org/wiki/Sampling_(statistics) Sampling_Sampling (statistics)]</ref> для создания подвыборки с сохранением распределения классов.
Когда Неравномерное распределение может быть следующих типов:* Недостаточное представление класса в обучающем наборе данных доля примеров некоторого класса слишком мала, такие классы называются ''независимой'миноритарными'переменной;* Недостаточное представление класса в '' (англ. ''minorityзависимой''), а другие, сильно представленные, — '''мажоритарными''' (англ. ''majority'')). Подобные тенденции хорошо заметны в кредитном скоринге, в медицине, в директ-маркетингепеременной.
Следует отметить тоМногие модели машинного обучения, что значимость ошибочной классификации может быть разной. Неверная классификация примеров миноритарного классанапример, как правилонейронные сети, обходится в разы дороже, чем ошибочная классификация примеров мажоритарного классадают более надежные прогнозы на основе обучения со сбалансированными данными. НапримерОднако некоторые аналитические методы, при классификации людей обследованных в больнице на людей больных раком (миноритарный класс) частности [[Линейная_регрессия|линейная регрессия]] и здоровых (мажоритарный класс) лучше будет отправить на дополнительное обследование здоровых пациентов[[Логистическая_регрессия|логистическая регрессия]], чем пропустить людей с ракомне получают дополнительного преимущества.
Неравномерное распределение может быть следующих типов:* Недостаточное представление Когда в обучающем наборе данных доля примеров некоторого класса в переменной предикторе слишком мала, такие классы называются '''миноритарными''' (независимой переменнойангл. ''minority'');* Недостаточное представление класса в критериальной переменной , другие, со слишком большим количеством представителей, — '''мажоритарными''' (зависимойангл. ''majority''). Подобные тенденции хорошо заметны в кредитном скоринге, в медицине, в директ-маркетинге.
Многие модели машинного обученияСледует отметить то, напримерчто значимость ошибочной классификации может быть разной. Неверная классификация примеров миноритарного класса, как правило, нейронные сетиобходится в разы дороже, дают более надежные прогнозы на основе обучения со сбалансированными даннымичем ошибочная классификация примеров мажоритарного класса. Однако некоторые аналитические методыНапример, при классификации людей, обследованных в частности [[Линейная_регрессия|линейная регрессия]] больнице, на больных раком (миноритарный класс) и [[Логистическая_регрессия|логистическая регрессия]]здоровых (мажоритарный класс) лучше будет отправить на дополнительное обследование здоровых пациентов, не получают дополнительного преимуществачем пропустить людей с раком.
== Стратегии сэмплирования ==
* '''Cубдискретизация''' (англ. ''under-sampling'') {{---}} удаление некоторого количество количества примеров мажоритарного класса.* '''Передискретизации''' (англ. ''over-sampling'') {{---}} увеличение количество количества примеров миноритарного класса.* '''КомбинированниеКомбинирование''' (англ. ''сombining over- and under-sampling'') {{---}} последовательное применение субдискретизации и передискретизации.* '''Ансамбль сбалансированных наборов''' (англ. ''ensemble balanced sets'') {{---}} ансамбли использование встроенных методов сэмплирования в процессе построения ансамблей классификаторов, использующие сэмплирование внутри.
Также все методы можно разделить на две группы: случайные (недетерминированные) и специальные (детерминированные).
Передискретизации* '''Случайное сэмплирование''' (англ. ''random sampling'') {{---}} для этого типа сэмплирования существует равная вероятность выбора любого конкретного элемента. Например, как правиловыбор 10 чисел в промежутке от 1 до 100. Здесь каждое число имеет равную вероятность быть выбранным.** '''Сэплирование с заменой''' (англ. ''sampling with replacement'') {{---}} здесь элемент, применяется чащекоторый выбирается первым, чем субдискретизацияне должен влиять на вторую или любую другую выборку. Подбор проб применяется гораздо режеМатематически, ковариация равна нулю между двумя выборками. Переизбыток собранных Мы должны использовать выборку с заменой, когда у нас большой набор данных стал проблемой только в эпоху «больших данных». Потому что, если мы используем выборку без замены, то вероятность для каждого предмета, который будет выбран, будет изменяться, и причины использования субдискретизация она будет слишком сложной после определенного момента. Выборка с заменой может сказать нам, что чаще встречается в основном практичны и связаны с затратами наших данных.** '''Сэмплирование без замены''' (англ. ''sampling without replacement'') {{---}} здесь то, что мы выбираем первым, повлияет на ресурсывторое. Выборка без замены полезна, если набор данных мал. Математически, ковариация между двумя выборками не равна нулю.Переизбыток уже собранных данных стал проблемой только * '''Стратифицированное сэмплирование''' (англ. ''stratified sampling'') {{---}} в эпоху «больших данных», и причины использования недостаточной этом типе техники мы выбираем из определенной группы объектов из всей выборки в основном практичны и связаны с затр%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%атами на ресурсы. В частностиИз каждой группы извлекается одинаковое количество объектов, хотя для получения достоверных статистических выводов требуется достаточно большой размер выборкигруппы имеют разные размеры. Кроме того, существует вариант, когда количество объектов, выбранных из каждой группы, данные должны быть очищены перед использованиемпропорционально размеру этой группы. == Метод Uncertainty Sampling =='''Идея:''' выбирать <math>x_i</math> с наибольшей неопределенностью <math>a(x_i)</math>. Очистка обычно включает в себя значительную человеческую составляющую и Задача многоклассовой классификации: <math>a(x)=\arg\max\limits_{y\in Y}P(y \mid x)</math> <math>p_k(x), как правилоk=1\ldots\left | Y \right |</math> {{---}} ранжированные по убыванию <math>P(y \mid x), специфична для набора данных и аналитической проблемы, и поэтому требует времени и денегy\in Y</math>. * Принцип наименьшей достоверности (англ. ''least confidence'')::<math>x_i=\arg\min\limits_{u\in X^k}p_1(u)</math>* Принцип наименьшей разности отступов (англ. ''margin sampling'')::<math>x_i=\arg\min\limits_{u\in X^k}(p_1(u)-p_2(u))</math>* Принцип максимума энтропии (англ. Например''maximum entropy'')::<math>x_i=\arg\min\limits_{x\in X^k}\sum_{k} {p_k(u)\ln p_k(u)}</math> В случае двух классов эти три принципа эквивалентны. В случае многих классов появляются различия.
== Примеры алгоритмов ==
[[Файл:Random_undersampling.png|thumb|right|upright=1.6|Рис. <math>1</math>. Случайное удаление примеров мажоритарного класса]]
=== Cубдискретизация (удаление примеров мажоритарного класса) ===
==== '''Случайное удаление примеров мажоритарного класса''' (англ. ''Random Undersampling'') ====
[[Файл:Random_undersampling.png|thumb|right|upright=1.7|РисЭто самый простой алгоритм. Рассчитывается число <math>1K</math>. Случайное удаление примеров мажоритарного класса]]Это самая простая стратегия. Для этого рассчитывается число K – количество мажоритарных примеров, которое необходимо удалить для достижения требуемого уровня соотношения различных классов. Затем случайным образом выбираются K мажоритарных примеров и удаляются.
На рис. <math>1</math> изображены примеры некоторого набора данных в двумерном пространстве признаков до и после использования алгоритма.
==== '''Поиск связей Томека''' (англ. ''Tomek Links'') ====
[[Файл:Tomek_links.png|thumb|right|upright=1.76|Рисунок Рис. <math>2 </math>. Удаление мажоритарных примеров, участвующих в связях Томека]]
Пусть примеры <math>E_i</math> и <math>E_j</math> принадлежат к различным классам, <math>d(E_i,E_j)</math> – расстояние между указанными примерами. Пара <math>(E_i,E_j)</math> называется связью Томека, если не найдется ни одного примера <math>E_l</math> такого, что будет справедлива совокупность неравенств:
Согласно данному подходу, все мажоритарные записи, входящие в связи Томека, должны быть удалены из набора данных. Этот способ хорошо удаляет записи, которые можно рассматривать в качестве «зашумляющих». На рис. <math>2</math> визуально показан набор данных в двумерном пространстве признаков до и после применения стратегии поиска связей Томека.
==== '''Правило сосредоточенного ближайшего соседа''' (англ. ''Condensed Nearest Neighbor Rule'') ====
[[Файл:Condensed_nearest_neighbor_rule.png|thumb|right|upright=1.76|Рисунок Рис. <math>3 </math>. Удаление примеров мажоритарного класса правилом сосредоточенного ближайшего соседа]]
Пусть <math>L</math> – исходный набор данных. Из него выбираются все миноритарные примеры и (случайным образом) один мажоритарный. Обозначим это множество как <math>S</math>. Все примеры из <math>L</math> классифицируются по правилу одного ближайшего соседа. Записи, получившие ошибочную метку, добавляются во множество <math>S</math> (рис. <math>3</math>).
Таким образом, мы будем учить классификатор находить отличие между похожими примерами, но принадлежащими к разным классам.
* являющиеся соседями миноритарных примеров, которые были неверно классифицированы.
==== Дополнительные ====
* Under-sampling with Cluster Centroids<ref> [httpshttp://enwww.wikipediasciencedirect.org Sampling_(statistics)com/science/article/pii/S0957417408003527 Show-Jane Yen, Yue-Shi Lee,Cluster-based under-sampling approaches for imbalanced data distributions, Expert Systems with Applications, Volume 36, Issue 3, Part 1, 2009, Pages 5718-5727, ISSN 0957-4174]</ref>{{---}} уменьшает количество примеров мажоритарного класса, заменяя некоторые кластеры примеров мажоритарного класса их представителем (центроидом кластера).* NearMiss <math>(1 \And 2 \And 3)</math><ref> [https://enI. Mani, J.wikipediaZhang.org Sampling_(statistics)]</ref>* Edited Nearest Neighbours<ref> [https“kNN approach to unbalanced data distributions://enA case study involving information extraction,” In Proceedings of the Workshop on Learning from Imbalanced Data Sets, pp.wikipedia1-7, 2003.org Sampling_(statistics)]</ref>* Instance Hardness Threshold<ref> {{---}} удаляет примеры мажоритарного класса, для которых среднее расстояние до ближайших соседей ([[https://enМетрический_классификатор_и_метод_ближайших_соседей|KNN]]) миноритарного класса является наименьшим.wikipediaТакже может использоваться расстояние до самых дальних соседей, либо среднее расстояние до всех соседей.org Sampling_(statistics)]</ref>* Repeated Edited Nearest Neighbours<ref> [https://enD.wikipediaWilson, “Asymptotic Properties of Nearest Neighbor Rules Using Edited Data,” IEEE Transactions on Systems, Man, and Cybernetrics, vol.org Sampling_2(statistics3)], pp. 408-421, 1972.</ref>* AllKNN<ref> {{---}} удаляет примеры мажоритарного класса, если при классификации методом [[https://en.wikipediaМетрический_классификатор_и_метод_ближайших_соседей|KNN]] они определяются как примеры миноритарного класса.org Sampling_(statistics)]</ref>
=== Передискретизации (увеличение числа примеров миноритарного класса) ===
==== '''Дублирование примеров миноритарного класса''' (англ. ''Oversampling'') ====
Самый простой метод – это дублирование примеров миноритарного класса. В зависимости от того, какое соотношение классов необходимо, выбирается количество случайных записей для дублирования.
[[Файл:Smote.png|thumb|right|upright=1.2|Рис. <math>4</math>. Искусственно созданные новые примеры миноритарного класса]]
==== '''SMOTE''' (англ. ''Synthetic Minority Oversampling Technique'') ====
[[Файл:Random_undersampling.png|thumb|right|upright=1.7|Рис. <math>1</math>. Случайное удаление примеров мажоритарного класса]]
Этот алгоритм основан на идее генерации некоторого количества искусственных примеров, которые были бы похожи на имеющиеся в миноритарном классе, но при этом не дублировали их. Для создания новой записи находят разность <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> схематично изображено то, как в двумерном пространстве признаков могут располагаться искусственно сгенерированные примеры.
 В SMOTE (техника избыточной выборки синтетического меньшинства) мы синтезируем элементы для класса меньшинства в непосредственной близости от уже существующих элементов.<br /><code>from imblearn.over_sampling import SMOTE<br />smote = SMOTE(ratio='minority')<br />X_sm, y_sm = smote.fit_sample(X, y)</code><br />В библиотеке ''imblearn'' есть множество других методов как для недостаточной выборки (Cluster Centroids, NearMiss и т.д.), так и для избыточной выборки (ADASYN и bSMOTE).[[Файл:Random_undersamplingSmote_overgeneralization.png|thumb|right|upright=1.72|Рис. <math>15</math>. Случайное удаление примеров мажоритарного классаНегативное влияние алгоритма SMOTE]]
==== '''ASMO''' (англ. ''Adaptive Synthetic Minority Oversampling'') ====
[[Файл:Random_undersamplingAsmo.png|thumb|right|upright=1.72|Рис. <math>16</math>. Случайное удаление примеров мажоритарного классаОсновная идея алгоритма ASMO]]
Алгоритм ''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> [httpsN. V. Chawla, K. W. Bowyer, L. O. Hall, W. P. Kegelmeyer, “SMOTE://enSynthetic minority over-sampling technique,” Journal of Artificial Intelligence Research, vol. 16, pp.wikipedia321-357, 2002.org Sampling_(statistics)]</ref>{{---}} в отличие от ''SMOTE'', работает с непрерывными признаками у примеров обучающей выборки.* bSMOTE Borderline-SMOTE <math>(1 \And 2)</math> - Borderline SMOTE of types <math>1</math> and <math>2</math><ref> [httpsH. Han, W.-Y. Wang, B.-H. Mao, “Borderline-SMOTE://enA new over-sampling method in imbalanced data sets learning,” In Proceedings of the 1st International Conference on Intelligent Computing, pp.wikipedia878-887, 2005.org Sampling_(statistics)]</ref>{{---}} в отличие от ''SMOTE'', для создания новых синтетических примеров используются только примеры на границе классов.* SVM SMOTE - Support Vectors SMOTE<ref> [https://enH. M. Nguyen, E. W.wikipediaCooper, K.org Sampling_(statistics)]</ref>* ADASYN Kamei, “Borderline over- Adaptive synthetic sampling approach for imbalanced learning<ref> [https://endata classification,” In Proceedings of the 5th International Workshop on computational Intelligence and Applications, pp.wikipedia24-29, 2009.org Sampling_(statistics)]</ref>* Repeated Edited Nearest Neighbours<ref> [https://en.wikipedia.org Sampling_(statistics)]</ref>* KMeans{{---}} вариант алгоритма ''SMOTE<ref> '', который использует алгоритм [[https://en.wikipedia.org Sampling_Метод_опорных_векторов_(statisticsSVM)|SVM]</ref>] для обнаружения примеров, рядом с которыми будут создаваться новые синтетические примеры.
=== Комбинированние '''Алгоритм Метрополиса — Гастингса''' ===Алгоритм позволяет семплировать любую функцию распределения. Он основан на создании цепи Маркова, то есть на каждом шаге алгоритма новое выбранное значение зависит только от предыдущего.* Очередная итерация начинается с состояния <math>x^{(i)}</math>* Выбираем <math>x^{\prime}</math> по распределению <math>q(x^\prime; x^{(i)})</math>* Вычисляем::<math>a(x^{\prime}, x)=\frac{p^{*}(x^{\prime})}{p^{*}(x^{(i)})} \frac{q(x^{(i)}; x^{\prime})}{q(x^{\prime}; x^{(i)})}</math>* SMOTE С вероятностью <math>a(x^{\prime}, x)</math> (<math>1</math>, если <math>a\geq 1</math>) <math>x^{(i+1)}:=x^{\prime}</math> Tomek links, иначе <refmath> [httpsx^{(i+1)}:=x^{(i)}</math> === '''Сэмплирование по Гиббсу''' ===Этот алгоритм является частным случаем алгоритма Метрополиса — Гастингса и назван в честь физика Джозайи Гиббса. Он замечателен тем, что для него не требуется явно выраженное совместное распределение, а нужны лишь условные вероятности для каждой переменной, входящей в распределение. Алгоритм на каждом шаге берет одну случайную величину и выбирает её значение при условии фиксированных остальных.<br/><math>x_{i}^{t+1}</enmath> выбираем по распределению <math>p(x_{i}\mid x_{1}^{t+1},\ldots,x_{i-1}^{t+1},x_{i+1}^{t},\ldots,x_{n}^{t})</math> и повторяем.<br/>Это частный случай алгоритма Метрополиса для распределений <math>q(x^{\prime}; x)=p(x_{i}^{\prime}\mid x_{-i})</math>, и вероятность принятия каждого сэмпла полается равна <math>1</math>.wikipediaПоэтому сэмплирование по Гиббсу сходится, и, так как это такое же случайное блуждание по сути, верна та же квадратичная оценка. В больших размерностях может оказаться эффективнее сэмплить по несколько переменных сразу, а не по одной — например, часто бывает, что у нас двудольный граф из переменных, в которых все переменные из одной доли связаны со всеми переменными из другой доли (ну или со многими), а между собой не связаны.org Sampling_В такой ситуации следует зафиксировать все переменные одной доли и просэмплировать все переменные в другой доле одновременно (statisticsэто можно понимать буквально — поскольку при такой структуре все переменные одной доли условно независимы при условии другой, их можно сэмплировать независимо и параллельно)], потом зафиксировать все переменные второй доли и так далее. === '''Slice sampling''' ===Выборка среза представляет собой тип алгоритма Монте Карло по схеме марковских цепей для выборки псевдослучайных чисел, т.е. для отбора случайных выборок из статистического распределения. Метод основан на наблюдении, что для выборки случайной величины можно равномерно выбирать из области под графиком ее функции плотности. Slice sampling, в его самой простой форме, равномерно выбирается из-под кривой <math>f(x)</math> без необходимости отбрасывать какие-либо точки следующими действиями:* Выберите начальное значение <math>x_{0}</math>, для которого <math>f(x_{0})>0</math>* Выберите значение <math>y</math> равномерно между <math>0</math> и <math>f(x_{0})</math>* Проведите горизонтальную линию через кривую в этой координате <math>y</math>* Выберите точку <math>(x, y)</math> на отрезке в пределах кривой* Повторите с шага <math>2</math>, используя новое значение <math>x</math> Суть здесь заключается в том, что один из способов равномерной выборки точки из произвольной кривой — это сначала нарисовать тонкие горизонтальные срезы одинаковой высоты по всей кривой. Затем мы можем сэмплировать точку внутри кривой путем случайного выбора среза, который находится в точке или ниже кривой в позиции <math>x</math> на предыдущей итерации, а затем случайным образом выбрать позицию <math>x</math> где-нибудь вдоль среза. Используя позицию <math>x</refmath> из предыдущей итерации алгоритма, в долгосрочной перспективе мы выбираем срезы с вероятностями, пропорциональными длине их сегментов в пределах кривой. Самая сложная часть этого алгоритма — это поиск границ горизонтального среза, который включает в себя инвертирование функции, описывающей распределение, из которого производится выборка. Это особенно проблематично для мультимодальных распределений, где срез может состоять из нескольких прерывистых частей. Часто можно использовать форму выборки отклонения, чтобы преодолеть это, когда мы производим выборку из более крупного среза, который, как известно, включает в себя требуемый рассматриваемый срез, а затем отбрасываем точки за пределами желаемого среза. Этот алгоритм можно использовать для выборки из области под любой кривой, независимо от того, интегрируется ли функция в <math>1</math>. Фактически, масштабирование функции по константе не влияет на выборочные <math>x</math>—позиции. Это означает, что алгоритм может использоваться для выборки из распределения, функция плотности вероятности которого известна только с точностью до константы. === Комбинирование ===* SMOTE <math>+</math> ENNTomek links<ref> [httpsG. E. A. P. A. Batista, A. L. C. Bazzan, M. C. Monard, “Balancing training data for automated annotation of keywords:A case study,” In Proceedings of the 2nd Brazilian Workshop on Bioinformatics, pp. 10-18, 2003.</ref> {{---}} сначала выполняет передискретизацию с использованием ''SMOTE'', а потом субдискретизацию используя ''Tomek Links''.* SMOTE <math>+</enmath> ENN<ref>G.wikipediaE.org Sampling_A. P. A. Batista, R. C. Prati, M. C. Monard, “A study of the behavior of several methods for balancing machine learning training data,” ACM Sigkdd Explorations Newsletter, vol. 6(statistics1)], pp. 20-29, 2004.</ref>{{---}} последовательно использует ''SMOTE'' и ''Edited Nearest Neighbours''.
=== Ансамбль сбалансированных наборов ===
* Easy Ensemble classifier<ref> [https://enX.-Y. Liu, J. Wu and Z.-H.wikipediaZhou, “Exploratory undersampling for class-imbalance learning,” IEEE Transactions on Systems, Man, and Cybernetics, vol.org Sampling_39(statistics2)], pp. 539-550, 2009.</ref>{{---}} независимые классификаторы обучаются на случайных подвыборках, из которых постепенно удаляются правильно классифицирующиеся примеры мажоритарных классов.* Balanced Random Forest<ref> [https://enC. Chao, A. Liaw, and L. Breiman.wikipedia"Using random forest to learn imbalanced data.org Sampling_" University of California, Berkeley 110 (statistics2004)]: 1-12.</ref>{{---}} в отличие от классического [[Дерево_решений_и_случайный_лес|случайного леса]], может работать на несбалансированных данных. * Balanced Bagging<ref> [https:Hido, Shohei & Kashima, Hisashi. (2008). Roughly Balanced Bagging for Imbalanced Data. 143-152. 10.1137//en1.9781611972788.wikipedia13.org Sampling_(statistics)]</ref>* RUSBoost<ref> {{---}} в отличие от классического [[https://enВиды_ансамблей#.D0.91.D1.8D.D0.B3.D0.B3.D0.B8.D0.BD.wikipediaD0.org Sampling_(statistics)B3|бэггинга]]</ref>, имеет дополнительный шаг субдискретизации обучающей подвыборки.
== Реализации ==
[https://github.com/scikit-learn-contrib/imbalanced-learn Imbalanced-learn] {{---}} набор инструментов с открытым исходным кодом на Python, целью которого является предоставление широкого спектра методов для решения проблемы несбалансированного набора данных. На рис. <math>7</math> представлена таблица реализованных в библиотеке методов.
 
Пример кода для передискретизации набора данных с использованием ''SMOTE'':
Большинство рассмотренных алгоритмов реализованы в from sklearn.datasets import make_classification from sklearn.decomposition import PCA from imblearn.oversampling import SMOTE <font color="green"># Создание датасета</font> X, y = makeclassification (n_classes=2, weights =[0.1, 0.9], n_features=20, n_samples=5000) <font color="green">Применение SMOTE over-sampling</font> sm = SMOTE(ratio=’auto’, kind=’regular’) X_resampled , y_resampled=sm.fit_sample(X, y) [[Файл:Imbalanced-learn.png|none|thumb|upright=2|Рис. <math>7</math>. Методы imbalanced-learn]]
== См. также ==
*[[Метрический классификатор и метод ближайших соседей]]*[[Байесовская классификация]]*[[%%%%%%%%%%%%%%%%%%%%%%%%5Активное обучение]]*[[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Виды ансамблей]]
== Примечания ==
<references/>
 
==Источники информации==
#[https://en.wikipedia.org/wiki/Oversampling_and_undersampling_in_data_analysis#Undersampling_techniques_for_classification_problems Oversampling and undersampling in data analysis]
#[https://basegroup.ru/community/articles/imbalance-datasets Различные стратегии сэмплинга в условиях несбалансированности классов]
# Lemaître, G. Nogueira, F. Aridas, Ch.K. (2017) [http://www.jmlr.org/papers/volume18/16-365/16-365.pdf Imbalanced-learn: A Python Toolbox to Tackle the Curse of Imbalanced Datasets in Machine Learning], Journal of Machine Learning Research, vol. 18, no. 17, 2017, pp. 1-5.
 
[[Категория: Машинное обучение]]
[[Категория: Классификация и регрессия]]
1632
правки

Навигация