logo

Algorisme de la màquina vectorial de suport (SVM).

Support Vector Machine (SVM) és un potent algorisme d'aprenentatge automàtic utilitzat per a tasques de classificació lineal o no lineal, regressió i fins i tot de detecció de valors atípics. Els SVM es poden utilitzar per a una varietat de tasques, com ara classificació de text, classificació d'imatges, detecció de correu brossa, identificació d'escriptura a mà, anàlisi d'expressió gènica, detecció de cares i detecció d'anomalies. Els SVM són adaptables i eficients en una varietat d'aplicacions perquè poden gestionar dades d'alta dimensió i relacions no lineals.

Els algorismes SVM són molt efectius ja que intentem trobar l'hiperpla de separació màxim entre les diferents classes disponibles a la funció objectiu.

java com anul·lar

Màquina vectorial de suport

Support Vector Machine (SVM) és un aprenentatge automàtic supervisat algorisme utilitzat tant per a la classificació com per a la regressió. Tot i que també diem problemes de regressió, és el més adequat per a la classificació. L'objectiu principal de l'algorisme SVM és trobar l'hiperplà òptim en un espai N-dimensional que pugui separar els punts de dades en diferents classes a l'espai de característiques. L'hiperpla intenta que el marge entre els punts més propers de diferents classes sigui el màxim possible. La dimensió de l'hiperpla depèn del nombre de característiques. Si el nombre d'elements d'entrada és dos, llavors l'hiperpla és només una línia. Si el nombre d'elements d'entrada és tres, l'hiperpla esdevé un pla 2D. Es fa difícil imaginar quan el nombre de funcions supera les tres.



Considerem dues variables independents x1, x2,i una variable dependent que és un cercle blau o un cercle vermell.

Punts de dades linealment separables

A la figura anterior queda molt clar que hi ha múltiples línies (el nostre hiperpla aquí és una línia perquè només estem considerant dues característiques d'entrada x1, x2) que segreguen els nostres punts de dades o fan una classificació entre cercles vermells i blaus. Llavors, com escollim la millor línia o, en general, el millor hiperpla que segrega els nostres punts de dades?

Com funciona SVM?

Una opció raonable com a millor hiperplà és la que representa la separació o el marge més gran entre les dues classes.

Hiperplans múltiples que separen les dades de dues classes

Hiperplans múltiples separen les dades de dues classes

Així doncs, escollim l'hiperpla la distància del qual es maximitza al punt de dades més proper a cada costat. Si existeix aquest hiperpla es coneix com a hiperpla de marge màxim/marge dur . Així, de la figura anterior, escollim L2. Considerem un escenari com el que es mostra a continuació

Selecció d'hiperpla per a dades amb valor atípic

Selecció d'hiperpla per a dades amb valor atípic

Aquí tenim una bola blava al límit de la bola vermella. Aleshores, com classifica les dades SVM? És fàcil! La bola blava al límit de les vermelles és un valor atípic de les boles blaves. L'algorisme SVM té les característiques d'ignorar el valor atípic i troba el millor hiperpla que maximitza el marge. SVM és robust als valors atípics.

Hiperplà que és el més optimitzat

Hiperplà que és el més optimitzat

Per tant, en aquest tipus de punt de dades, el que fa SVM és trobar el marge màxim tal com es va fer amb conjunts de dades anteriors i afegeix una penalització cada vegada que un punt creua el marge. Així, els marges en aquest tipus de casos s'anomenen marges suaus . Quan hi ha un marge suau al conjunt de dades, l'SVM intenta minimitzar-lo (1/marge+∧(∑penalització)) . La pèrdua de frontissa és una penalització habitual. Si no hi ha infraccions, no hi ha pèrdua de frontissa. Si hi ha infraccions, la pèrdua de frontissa és proporcional a la distància de la violació.

Fins ara, estàvem parlant de dades separables linealment (el grup de boles blaves i boles vermelles es poden separar per una línia recta/línia lineal). Què fer si les dades no són separables linealment?

Conjunt de dades 1D original per a la classificació

Conjunt de dades 1D original per a la classificació

Per exemple, les nostres dades es mostren a la figura anterior. SVM soluciona això creant una nova variable utilitzant a nucli . Anomenem un punt xia la línia i creem una nova variable yien funció de la distància des de l'origen o, per tant, si tracem això, obtenim alguna cosa com es mostra a continuació

L'actor Rekha
Assignació de dades 1D a 2D per poder separar les dues classes

Assignació de dades 1D a 2D per poder separar les dues classes

En aquest cas, la nova variable y es crea en funció de la distància a l'origen. Una funció no lineal que crea una nova variable es coneix com a nucli.

Suport a la terminologia de la màquina vectorial

    Hiperpla: l'hiperpla és el límit de decisió que s'utilitza per separar els punts de dades de diferents classes en un espai de característiques. En el cas de les classificacions lineals, serà una equació lineal, és a dir, wx+b = 0. Vectors de suport: els vectors de suport són els punts de dades més propers a l'hiperpla, la qual cosa té un paper crític a l'hora de decidir l'hiperpla i el marge. Marge: El marge és la distància entre el vector suport i l'hiperpla. L'objectiu principal de l'algorisme de la màquina vectorial de suport és maximitzar el marge. El marge més ampli indica un millor rendiment de classificació. Nucli: el nucli és la funció matemàtica, que s'utilitza a SVM per mapar els punts de dades d'entrada originals en espais de característiques d'alta dimensió, de manera que l'hiperpla es pot trobar fàcilment fins i tot si els punts de dades. no són separables linealment a l'espai d'entrada original. Algunes de les funcions comunes del nucli són lineals, polinomials, funció de base radial (RBF) i sigmoide. Marge suau: quan les dades no són perfectament separables o contenen valors atípics, SVM permet una tècnica de marge suau. Cada punt de dades té una variable slack introduïda per la formulació SVM de marge suau, que suavitza el requisit estricte de marge i permet determinades classificacions errònies o infraccions. Descobreix un compromís entre augmentar el marge i reduir les infraccions. C: La maximització del marge i les multes per classificació errònia s'equilibren amb el paràmetre de regularització C a SVM. La sanció per sobrepassar el marge o classificar erròniament els elements de dades la decideix. S'imposa una sanció més estricta amb un valor de C més gran, el que resulta en un marge més petit i potser menys classificacions errònies. Pèrdua de frontissa: una funció de pèrdua típica en les SVM és la pèrdua de frontissa. Sanciona classificacions incorrectes o infraccions de marge. La funció objectiu en SVM sovint es forma combinant-la amb el terme de regularització. Problema dual: un problema dual del problema d'optimització que requereix localitzar els multiplicadors de Lagrange relacionats amb els vectors suport es pot utilitzar per resoldre SVM. La formulació dual permet l'ús de trucs del nucli i una informàtica més eficaç.

Intuïció matemàtica de la màquina vectorial de suport

Considereu un problema de classificació binària amb dues classes, etiquetades com a +1 i -1. Tenim un conjunt de dades d'entrenament format per vectors de característiques d'entrada X i les seves corresponents etiquetes de classe Y.

L'equació de l'hiperpla lineal es pot escriure com:

w^Tx+ b = 0

El vector W representa el vector normal a l'hiperpla. és a dir, la direcció perpendicular a l'hiperpla. El paràmetre b a l'equació representa el desplaçament o distància de l'hiperpla des de l'origen al llarg del vector normal En .

La distància entre un punt de dades x_i i el límit de decisió es pot calcular com:

d_i = frac{w^T x_i + b}

on ||w|| representa la norma euclidiana del vector pes w. Norma euclidianadel vector normal W

Per al classificador lineal SVM:

Optimització:

    Per al classificador SVM lineal de marge dur:

underset{w,b}{	ext{minimitzar}}frac{1}{2}w^Tw =underset{W,b}{	ext{minimitzar}}frac{1}{2}left | w 
ight|^{2}  	ext{subjecte a}; y_i(w^Tx_i + b) geq 1 ;per; i = 1, 2,3, cdots,m

prova l'estructura de dades

La variable o etiqueta objectiu de la ithla instància d'entrenament es denota amb el símbol tien aquesta declaració. I ti=-1 per a ocurrències negatives (quan yi= 0) i ti=1instàncies positives (quan yi= 1) respectivament. Perquè necessitem el límit de decisió que satisfà la restricció: underset{w,b}{	ext{minimitzar }}frac{1}{2}w^Tw+ C sum_{i=1}^m zeta_{i}  	ext{subjecte a } y_i( w^Tx_i + b)ge 1-zeta_{i};; i ; zeta_{i} ge 0;; per ; i = 1, 2,3, cdots,m

    Per al classificador SVM lineal de marge suau:

underset{alpha}{	ext{maximitzar}}: frac{1}{2}underset{i	o m;}{sum};underset{j	o m}{sum} alpha_ialpha_j t_i t_j K(x_i, x_j) -underset{i	o m}{sum}alpha_i

    Problema dual: es pot utilitzar un problema dual del problema d'optimització que requereix localitzar els multiplicadors de Lagrange relacionats amb els vectors de suport per resoldre SVM. Els multiplicadors de Lagrange òptims α(i) que maximitzen la següent funció objectiu dual

w= underset{i	o m}{sum}alpha_i t_i K(x_i, x) + b  t_i(w^Tx_i-b) = 1 Longleftrightarrow b= w^Tx_i-t_i

on,

  • aiés el multiplicador de Lagrange associat a la i-esima mostra d'entrenament.
  • K(xi, xj) és la funció del nucli que calcula la similitud entre dues mostres xii xj. Permet a SVM manejar problemes de classificació no lineal mapeant implícitament les mostres en un espai de característiques de dimensions superiors.
  • El terme ∑αirepresenta la suma de tots els multiplicadors de Lagrange.

El límit de decisió SVM es pot descriure en termes d'aquests multiplicadors de Lagrange òptims i els vectors de suport un cop s'ha resolt el problema dual i s'han descobert els multiplicadors de Lagrange òptims. Les mostres d'entrenament que tenen i> 0 són els vectors suport, mentre que el límit de decisió ve proporcionat per:

egin{aligned} 	ext{Linear: } K(w,b) &= w^Tx+b  	ext{Polinomi: } K(w,x) &= (gamma w^Tx+b)^ N  	ext{RBF gaussià: } K(w,x) &= exp(-gamma|| x_i-x_j||^n  	ext{Sigmoid :} K(x_i, x_j) &=  tanh(alpha x_i^Tx_j + b) end{alineat}

Tipus de màquina vectorial de suport

En funció de la naturalesa del límit de decisió, les màquines de vectors de suport (SVM) es poden dividir en dues parts principals:

    SVM lineal: els SVM lineals utilitzen un límit de decisió lineal per separar els punts de dades de diferents classes. Quan les dades es poden separar linealment amb precisió, els SVM lineals són molt adequats. Això significa que una única línia recta (en 2D) o un hiperplà (en dimensions superiors) pot dividir completament els punts de dades en les seves classes respectives. Un hiperpla que maximitza el marge entre les classes és el límit de decisió. SVM no lineal: SVM no lineal es pot utilitzar per classificar dades quan no es poden separar en dues classes per una línia recta (en el cas de 2D). Mitjançant l'ús de funcions del nucli, els SVM no lineals poden gestionar dades separables no linealment. Aquestes funcions del nucli transformen les dades d'entrada originals en un espai de característiques de dimensions superiors, on els punts de dades es poden separar linealment. S'utilitza un SVM lineal per localitzar un límit de decisió no lineal en aquest espai modificat.

Funcions populars del nucli a SVM

El nucli SVM és una funció que pren espai d'entrada de dimensions baixes i el transforma en un espai de dimensions superiors, és a dir, converteix problemes no separables en problemes separables. És útil sobretot en problemes de separació no lineal. Simplement poseu el nucli, fa algunes transformacions de dades extremadament complexes i després descobreix el procés per separar les dades en funció de les etiquetes o sortides definides.

Classificacions del càncer de mama amb SVM RBF kernel-Geeksforgeeks

Avantatges de SVM

  • Eficaç en casos d'alta dimensió.
  • La seva memòria és eficient ja que utilitza un subconjunt de punts d'entrenament en la funció de decisió anomenada vectors de suport.
  • Es poden especificar diferents funcions del nucli per a les funcions de decisió i és possible especificar nuclis personalitzats.

Implementació SVM en Python

Prediu si el càncer és benigne o maligne. L'ús de dades històriques sobre pacients diagnosticats de càncer permet als metges diferenciar els casos malignes i els benignes reben atributs independents.

Passos

  • Carregueu el conjunt de dades de càncer de mama des de sklearn.datasets
  • Separeu les característiques d'entrada i les variables objectiu.
  • Construïu i entreneu els classificadors SVM utilitzant el nucli RBF.
  • Traceu el diagrama de dispersió de les característiques d'entrada.
  • Traceu el límit de decisió.
  • Traceu el límit de decisió

Python 3

# Load the important packages> from> sklearn.datasets>import> load_breast_cancer> import> matplotlib.pyplot as plt> from> sklearn.inspection>import> DecisionBoundaryDisplay> from> sklearn.svm>import> SVC> # Load the datasets> cancer>=> load_breast_cancer()> X>=> cancer.data[:, :>2>]> y>=> cancer.target> #Build the model> svm>=> SVC(kernel>=>'rbf'>, gamma>=>0.5>, C>=>1.0>)> # Trained the model> svm.fit(X, y)> # Plot Decision Boundary> DecisionBoundaryDisplay.from_estimator(> >svm,> >X,> >response_method>=>'predict'>,> >cmap>=>plt.cm.Spectral,> >alpha>=>0.8>,> >xlabel>=>cancer.feature_names[>0>],> >ylabel>=>cancer.feature_names[>1>],> >)> # Scatter plot> plt.scatter(X[:,>0>], X[:,>1>],> >c>=>y,> >s>=>20>, edgecolors>=>'k'>)> plt.show()>
>
>

Sortida :

Classificacions del càncer de mama amb el nucli SVM RBF