Какво е SVM алгоритъм?

SVM означава „Vector Vector Support“. SVM е контролиран алгоритъм за машинно обучение, който обикновено се използва за предизвикателства за класификация и регресия. Често срещани приложения на SVM алгоритъма са система за откриване на проникване, разпознаване на ръкописен текст, прогнозиране на структурата на протеина, откриване на стеганография в цифрови изображения и др.

В алгоритъма SVM всяка точка е представена като елемент от данни в n-мерното пространство, където стойността на всяка характеристика е стойността на конкретна координата.

След начертаване, класификацията е извършена чрез намиране на хипе-равнина, която разграничава два класа. Вижте по-долу изображението, за да разберете тази концепция.

Алгоритъмът за поддръжка на Vector Machine се използва главно за решаване на проблеми с класификацията. Векторите за поддръжка не са нищо друго, освен координатите на всеки елемент от данни. Support Vector Machine е граница, която разграничава два класа с помощта на хиперплоскост.

Как работи SVM алгоритъмът?

В горния раздел сме обсъдили диференцирането на два класа с помощта на хиперплоскост. Сега ще видим как всъщност работи този SVM алгоритъм.

Сценарий 1: Идентифициране на дясната хиперплоскост

Тук сме взели три хиперплоскости т.е. A, B и C. Сега трябва да идентифицираме правилната хиперплоскост, за да класифицираме звезда и кръг.

За да идентифицираме правилната хиперплоскост, трябва да знаем правилото за палеца. Изберете хиперплоскост, която разграничава два класа. В горепосоченото изображение, хиперплоскостта B много добре разграничава два класа.

Сценарий 2: Идентифициране на дясната хиперплоскост

Тук сме взели три хиперплоскости, т.е. A, B и C. Тези три хиперплоскости вече много добре разграничават класовете.

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

В горепосоченото изображение границата на хиперплоскостта С е по-висока от хиперплоскостта А и хиперплоскостта В. Така че в този сценарий С е правилната хиперплоскост. Ако изберем хиперплана с минимален марж, това може да доведе до погрешна класификация. Следователно избрахме хиперплан C с максимален запас поради здравина.

Сценарий 3: Идентифициране на дясната хиперплоскост

Забележка: За да идентифицирате хиперплана следвайте същите правила, както са споменати в предишните раздели.

Както можете да видите на горепосоченото изображение, границата на хиперплоскост B е по-висока от границата на хиперплоскост А, затова някои ще изберат хиперплоскост B като дясна. Но в SVM алгоритъма, той избира тази хиперплоскост, която класифицира класовете точни преди максимално увеличаване на маржа. В този сценарий хиперплоскостта А е класифицирала всички точно и има известна грешка С класификацията на хиперплоскост В. Следователно А е правилната хиперплоскост.

Сценарий 4: Класифицирайте два класа

Както можете да видите на по-долу споменатото изображение, ние не можем да разграничим два класа, използвайки права линия, тъй като едната звезда лежи като външен в другия кръгов клас.

Ето, една звезда е в друг клас. За звезден клас тази звезда е по-външната. Поради свойството на устойчивост на SVM алгоритъма, той ще намери правилната хиперплоскост с по-висок марж, игнориращ външната страна.

Сценарий 5: Фина хиперплоскост за разграничаване на класовете

Досега изглеждахме линейна хиперплоскост. В по-долу споменатото изображение нямаме линейна хиперплоскост между класовете.

За да класифицира тези класове, SVM въвежда някои допълнителни функции. В този сценарий ще използваме тази нова функция z = x 2 + y 2.

Начертава всички точки от данни по оста x и z.

Забележка

  • Всички стойности на z-ос трябва да са положителни, тъй като z е равно на сумата от x квадрат и y квадрат.
  • В гореспоменатия сюжет червените кръгове са затворени до началото на x-ос и y-ос, което води до стойността на z към по-ниска, а звездата е точно обратната на окръжността, тя е далеч от началото на x-ос и y-ос, водеща стойността на z до висока.

В SVM алгоритъма е лесно да се класифицира с помощта на линейна хиперплоскост между два класа. Но тук възниква въпросът, трябва ли да добавим тази функция на SVM за идентифициране на хиперплоскост. Така че отговорът е не, за решаването на този проблем SVM има техника, която е известна като трик на ядрото.

Трикът на ядрото е функцията, която трансформира данните в подходяща форма. Има различни видове функции на ядрото, използвани в SVM алгоритъма, т.е. полиномиална, линейна, нелинейна, радиална основна функция и др. Тук с помощта на нискоизмерното входно пространство с трик на ядрото се преобразува в пространство с по-големи измерения.

Когато гледаме на хиперплоскостта произхода на оста и y-оста, тя изглежда като кръг. Вижте по-долу изображението.

Плюсове на SVM алгоритъма

  • Дори ако входните данни са нелинейни и неотделими, SVM генерират точни резултати от класификацията поради своята здравина.
  • Във функцията за вземане на решение той използва подмножество от точки за обучение, наречени вектори на поддръжка, следователно е ефективна памет.
  • Полезно е да се реши всеки сложен проблем с подходяща функция на ядрото.
  • На практика SVM моделите се обобщават, с по-малък риск от прекаляване в SVM.
  • SVMs работи чудесно за класифициране на текст и при намиране на най-добрия линеен разделител.

Минуси на SVM алгоритъм

  • Това отнема дълго време за обучение при работа с големи набори от данни.
  • Трудно е да се разбере крайният модел и индивидуалното въздействие.

заключение

Той е ръководен да поддържа алгоритъм за векторна машина, който е алгоритъм за машинно обучение. В тази статия обсъдихме в детайли какво е SVM алгоритъмът, как работи и кои са неговите предимства.

Препоръчителни статии

Това е ръководство за алгоритма на SVM. Тук обсъждаме работата му със сценарий, плюсове и минуси на SVM алгоритъм. Можете също да разгледате следните статии, за да научите повече -

  1. Алгоритми за извличане на данни
  2. Техники за извличане на данни
  3. Какво е машинно обучение?
  4. Инструменти за машинно обучение
  5. Примери за C ++ алгоритъм

Категория: