Востребованный практический подход к классификации

Разрешается любая критика и обсуждение.

Что такое метод опорных векторов?

Проще говоря, это машина, которая работает или зависит от опорных векторов.

Что такое опорные векторы?

Это точки или векторы на графике, удаление которых влияет на положение гиперплоскости. Гиперплоскость — это линия или плоскость, разделяющая образцы помеченных наборов данных на две группы.

Итак, машина опорных векторов (SVM) — это дискриминативный классификатор, определяемый разделяющей гиперплоскостью.

В чем особенность этого классификатора по сравнению с другими?

Он пытается поддерживать максимальное расстояние от опорных векторов двух классов, максимизируя диапазон (поле) разделения гиперплоскости от опорных векторов каждого вектора признаков.

Векторы признаков — это векторы, отличные от опорных векторов по обе стороны от классов.

Почему SVM так ПОПУЛЯРНО?

Он может различать два похожих объекта, например, яблоко и апельсин.

Если у нас есть зеленый апельсин и оранжевое яблоко, SVM также может их различать. Вот что делает его таким требовательным, несмотря на то, что он ограничен для небольшого набора данных, но он может эффективно классифицировать два класса.

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

Следовательно, два едва различимых объекта классифицируются

Как SVM решает проблему плохо различимых объектов?

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

Когда мы используем гиперплоскость, которая дает нам самый большой запас по сравнению с классификаторами, мы называем его классификатором с наибольшим запасом.

Для разных размерностей и распределений требования меняются в порядке возрастания сложности, а также вычислений.

За

1D-классификация :

Чтобы получить максимальную маржу, мы должны удерживать порог между двумя векторами поддержки или на половине расстояния между каждым вектором поддержки.

Что делать, если в нем есть выброс, который неправильно классифицирован?

И это ближе к классу зеленых точек. поэтому в этом случае, чтобы получить лучшую классификацию, мы должны неправильно классифицировать выброс для будущих наборов тестовых данных.

Если мы разделим линию между опорными векторами, оранжевые точки, даже если они ближе к зеленым, будут неправильно классифицированы. так что это случай (низкое смещение) и будет работать очень плохо, когда будут даны новые тестовые данные (высокая дисперсия).

Чтобы получить лучшую классификацию, мы должны неправильно классифицировать эти помеченные данные поезда.

Итак, теперь мы разрешили классификации, которые менее чувствительны к обучающим данным (высокое смещение) и будут лучше работать с тестовыми данными (низкая дисперсия).

Когда мы допускаем неправильную классификацию, расстояние между наблюдениями и порогом называется SOFT MARGIN.

Как оптимизировать мягкую маржу?

Ответ — перекрестная проверка.

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

Поэтому, когда мы используем мягкую границу для классификации порога или гиперплоскости, это называется классификатором опорных векторов, а все точки на ребре и внутри мягких границ являются опорными векторами.

Что, если мы получим такие данные для обучения?

Это пример нелинейно разделимых помеченных данных.

Зеленые точки показывают количество дозировок, которые нужно принять, чтобы вылечиться, а красные дозы показывают неизлеченные.

Как с этим бороться?

Чтобы преобразовать нелинейно разделимые данные в линейно разделимые, мы можем сопоставить одномерные наборы данных или наборы данных более низкого измерения с более высоким измерением.

Итак, давайте нанесем его на ось X.

Для лучшего понимания сдвинем линию x влево на 5 единиц.

F (x) = x-5 (при условии, что 5 идет после первых трех красных точек)

Теперь, чтобы увеличить размерность точки, давайте возьмем ось Y, и ось Y покажет квадратное значение соответствующих значений X.

F(x)=(x-5)²

теперь его можно классифицировать.

Как это произошло или что позволило классифицировать его?

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

Что делать, если у нас есть набор данных более чем в одном измерении? вот так

Но отображение в более высокое измерение требует больших вычислительных ресурсов.

Так что же с этим делать?

Ответ — гиперпараметр ядра.

Таким образом, в приведенном выше примере дозировок мы использовали полиномиальную функцию ядра d = 2.

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

Что такое полиномиальное ядро?

Полиномиальные векторы имеют вид

Где r = полиномиальный коэффициент или константа в соответствии с нашей возможностью

d = степень многочлена

В приведенном выше случае мы использовали,

d=2, для удобства давайте возьмем r=1/2, мы будем знать, что в будущем это бесполезно, так как оба значения z одинаковы, но может быть полезно в более высоких измерениях.

Таким образом, скалярное произведение между двумя точками (a, a², 1/2) и (b, b², 1/2) приводит нас к более высокому измерению с очень меньшими вычислениями без фактического отображения от более низкого измерения к более высокому измерению. «Хитрость» заключается в том, что метод ядра представляет данные только через набор попарных сравнений подобия между наблюдениями исходных данных (с исходными координатами в пространстве меньшей размерности). Это может в некоторой степени помочь понять, как функция ядра равна скалярному произведению преобразованных векторов, учитывая, что каждая координата преобразованного вектора является просто некоторой функцией координат в соответствующем векторе меньшей размерности.

Проще говоря, у нас есть еще одно преобразованное значение соответствующего значения X, которое является результатом функции, которую можно использовать для лучшего сравнения и корреляции с другими данными.

Таким образом, без представления или прямого сопоставления с более высоким измерением это помогает преобразовать исходные наборы данных измерения для лучшей корреляции.

Как классифицировать по более высоким более высоким измерениям?

И ответом на него является радиальная базисная функция.

Радиальная базисная функция — это функция, которая взвешивает отношения. если точка находится близко к порогу, это придаст ей больший вес и позволит им затмить, а на большом расстоянии это позволит им исчезнуть так же из-за веса.

Радиальная базисная функция выглядит так:

a, b представляют собой измерения двух разных дозировок, а гамма, определяемая перекрестной проверкой, масштабирует влияние.

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

возьмем две точки a =1 ,b =3

если гамма =1

РФБ = 0,0183

If a =1 b =2

РФБ = 0,37

Следовательно, чем ближе вы находитесь, тем выше RBF (радиальная базисная функция). Мы обсудим гамма-эффект в последней части этого обсуждения.

Теперь давайте вернемся к полиномиальному ядру, чтобы лучше понять радиальную базисную функцию.

Что, если r=0 и d=2, полиномиальное ядро ​​будет выглядеть так:

(axb)² = a².b²

= (a²).(b²)

Это две точки в одном и том же 1 измерении со значениями в квадрате.

Что, если мы возьмем d=3 с тем же r=0:

(axb)³ = a³.b³

= (a³).(b³)

Это будут те же две точки в масштабе 1-D. Тем не менее, мы не сможем классифицировать проблему дозировок.

Что, если мы добавим к ним полиномиальные ядра с d=1,2,3………

Для d=1,2

Здесь мы преобразовали его в линейно разделимый набор данных.

Таким образом, добавление двух ядер, которые не могут быть линейно классифицированы независимо, делает их разделимыми из-за увеличения корреляции между двумя парами чисел. Полученное значение Y или квадратный член помогают сделать его линейно классифицируемым.

Что, если d увеличить до 3

Для d=1,2,3

Мы получаем гиперплоскость, которая может удобно классифицировать данные, поскольку мы получаем еще один параметр, который может лучше классифицировать данные.

для простоты можно сказать,

изначально было сравнение между «a» и «b», поскольку d увеличилось до 2, сравнение было между «a» и «b», а также с «a²» и «b²».

Таким образом, мы получаем еще один набор баз для сравнения.

Когда мы увеличиваем его до 3, это сравнение между «a» и «b», «a²» и «b²», «a³» и «b³».

Таким образом, по мере увеличения базы размеры также увеличиваются, фактически не переходя из более низкого измерения в более высокое.

А что, если мы будем продолжать увеличивать значение d до бесконечности?

Это дает скалярное произведение между двумя точками в бесконечном измерении, это то, что делает радиальное ядро, и будет бесконечное множество пар для сравнения. следовательно, это увеличивает вероятность линейной разделимости данных.

Математическая интуиция за радиальной базисной функцией

Для удобства возьмем гамму =1/2.

ДОПОЛНЕНИЕ СЕРИИ TAYLOR

a может быть любым числом, если f(a) существует.

Возьмем а=0;

f(0)=1;

и упрощая его,

Мы получили ,

Положи х = аб

Таким образом, мы можем упростить нашу

To

Таким образом, это показывает, как радиальную базисную функцию можно разложить на сумму бесконечных полиномиальных ядер. по мере увеличения размеров ядра классификация набора данных становится более эффективной.

Итак, как сделать так, чтобы наша SVM работала более эффективно?

Путем настройки гиперпараметров

Например, гамма, ядро, регуляризация и т. д.

1. Гамма

Гамма показывает влияние на расстояние между двумя точками или, можно сказать, действует как вес.

Если гамма высокая, она будет учитывать только точки, близкие к гиперплоскости, поскольку для большего расстояния она уменьшит ее до нуля.

Пусть гамма =1,

(a=1 , b=2) , (a=1 , b=4)

РБФ = 0,367, 0,000123409

Гамма =3

(a=1, b=2 ) , (a =1 , b=4)

РБФ= 0,0497, 0,000000000000000187

Следовательно, для более высоких значений гаммы точки, находящиеся далеко друг от друга, будут быстрее уменьшать их до 0 (нуля).

Поскольку его наблюдаемые более близкие точки a = 1, b = 2, с увеличением гаммы не уменьшаются или уменьшаются меньше по сравнению с более удаленными точками, такими как a = 1, b = 4, которые становятся полностью равными нулю.

Точно так же для более низких значений гаммы можно учитывать удаленные точки.

2. Ядро

Существует множество ядер, таких как линейное, полиномиальное, радиальное, периодическое, хи-квадрат, ядро ​​Лапласа. В соответствии с требованием, основанным на размерах, распределении наблюдений, мы должны выбрать ядро, которое может сделать набор данных линейно разделимым с минимальными вычислениями.

Вот несколько примеров ядер

3. Регуляризация

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

Если мы выберем более высокий C (как используется в sklearn), он займет меньший запас с минимальной ошибкой классификации или без нее, в то время как более низкий C приведет к неправильной классификации нескольких примеров.

Теперь давайте разберемся с кодом:

  1. Использование необходимых библиотек:

2. Импорт набора данных:

3. Разделение набора данных на обучающие и тестовые данные с объемом тестовых данных, равным 25% от всех данных:

4.теперь масштабируйте набор данных:

Это помогает стандартизировать и нормализовать данные, чтобы прогнозирование или классификация могли эффективно выполняться для различных наборов данных.

Способы масштабирования:

5.подгонка SVM ядра:

Модель выбрала ядро ​​​​= радиальную базисную функцию и еще один параметр случайного состояния, который будет использоваться для рандомизации или случайного выбора данных. Но здесь данные уже случайны, поэтому лучше оставить их равными нулю.

6.прогнозирование значений Y, будь то 0 или 1:

Нулевое состояние находится под плоскостью, а единица — над плоскостью или наоборот.

7.создание матрицы путаницы:

Матрица путаницы — это сводка результатов прогнозирования задачи классификации. Количество правильных и неправильных прогнозов суммируется с количеством значений и разбивается по каждому классу.

Это помогает в прогнозировании точности, отзыва, точности нашей модели.

Матрица путаницы выглядит так:

Точность :

Точность:

Чтобы получить значение точности, мы делим общее количество правильно классифицированных положительных примеров на общее количество предсказанных положительных примеров. Высокая точность указывает, что пример, помеченный как положительный, действительно положительный (небольшое количество FP).

Отзывать:

Припоминание можно определить как отношение общего числа правильно классифицированных положительных примеров к общему количеству положительных примеров. High Recall указывает на то, что класс распознан правильно (небольшое количество FN).

Высокая полнота, низкая точность. Это означает, что большинство положительных примеров распознаются правильно (низкий FN), но есть много ложных срабатываний.

Низкий отзыв, высокая точность. Это показывает, что мы пропускаем много положительных примеров (высокий FN), но те, которые мы предсказываем как положительные, действительно положительные (низкий FP).

F-мера:

Это гармоническое средство припоминания и точности.

8. визуализация данных обучения:

И график выглядит так:

Это классификация с высоким уклоном, многие выбросы присутствуют с обеих сторон.

И он хорошо компенсировал ни недообученность, ни переобученность. Точнее, слегка недообученность.

9.визуализация тестовых данных:

И график выглядит так:

Тестовые данные почти идеально классифицированы с небольшим количеством выбросов.

Спасибо, что дошли до конца документа.