Les màquines vectorials de suport (SVM) són un potent algorisme d'aprenentatge supervisat utilitzat per a tasques de classificació i regressió. L'objectiu principal d'un SVM és trobar l'hiperpla òptim que separi millor els punts de dades de diferents classes en un espai d'alta dimensió. La classificació d'un conjunt de característiques a SVM està profundament lligada a la funció de decisió, especialment al seu signe, que juga un paper important a l'hora de determinar en quin costat de l'hiperpla es troba un punt de dades determinat.
Funció de decisió en SVM
La funció de decisió per a un SVM es pot expressar com:
on:
- és el vector pes que defineix l'orientació de l'hiperpla.
- és el vector característica del punt de dades que s'està classificant.
- és el terme de biaix que desplaça l'hiperpla.
Per classificar un punt de dades , s'utilitza el signe de la funció de decisió:
Aquest signe determina el costat de l'hiperpla on es troba el punt de dades.
Paper de la classificació d'inici de sessió
El signe de la funció de decisió () determina directament l'etiqueta de classe assignada al punt de dades
. Així és com funciona:
1. Signe positiu: Si , el signe de la funció de decisió és positiu. Això vol dir que el punt de dades
es troba al costat de l'hiperpla on es troba la classe positiva. Per tant,
es classifica com a pertanyent a la classe positiva (normalment es denota com a +1).
2. Signe negatiu: Si , el signe de la funció de decisió és negatiu. Això indica que el punt de dades
es troba al costat de l'hiperpla on es troba la classe negativa. Per tant,
es classifica com a pertanyent a la classe negativa (normalment es denota com -1).
3. zero: En el cas rar on , el punt de dades
es troba exactament a l'hiperpla. Aquest escenari és teòricament possible, però pràcticament rar a causa de la naturalesa contínua de les dades de valor real.
Interpretació geomètrica
La interpretació geomètrica de la funció de decisió és essencial per entendre com els SVM classifiquen els punts de dades. L'hiperpla definit per actua com a límit de decisió entre les dues classes. L'orientació i la posició d'aquest hiperpla estan determinades pel vector pes
i el terme de biaix
.
1. Marge: El marge és la distància entre l'hiperpla i els punts de dades més propers de cada classe. SVM pretén maximitzar aquest marge per garantir que l'hiperpla no només separi les classes, sinó que ho faci amb la distància més gran possible des dels punts de dades més propers. Aquests punts de dades més propers es coneixen com a vectors de suport.
2. Vectors de suport: Els vectors suport són els punts de dades que es troben més a prop de l'hiperpla. Són crítics per definir la posició i l'orientació de l'hiperpla. Qualsevol canvi en la posició d'aquests vectors de suport alteraria l'hiperpla.
exemple
Considereu un exemple senzill on tenim un espai de característiques bidimensionals amb punts de dades de dues classes. Denotem la classe positiva amb +1 i la classe negativa amb -1. Suposem el vector pes i el terme de biaix
.
Per a un punt de dades , podem calcular la funció de decisió de la següent manera:
Des , el signe de la funció de decisió és positiu i, per tant, el punt de dades
es classifica com a pertanyent a la classe positiva (+1).
Per a un altre punt de dades , calculem la funció de decisió com:
Un cop més, , de manera que el signe és positiu, i
es classifica com a pertanyent a la classe positiva (+1).
Ara, considereu un punt de dades :
En aquest cas, , per tant el signe és negatiu, i
es classifica com a pertanyent a la classe negativa (-1).
Formulació Matemàtica
La formulació matemàtica de SVM implica resoldre un problema d'optimització per trobar l'òptim i
que maximitzin el marge alhora que classifiquen correctament les dades d'entrenament. El problema d'optimització es pot expressar com:
where és l'etiqueta de classe del punt de dades
, i la restricció garanteix que tots els punts de dades estiguin classificats correctament amb un marge d'almenys 1.
Truc del nucli
En moltes aplicacions pràctiques, és possible que les dades no es puguin separar linealment a l'espai de característiques original. Per solucionar-ho, els SVM es poden estendre a la classificació no lineal mitjançant el truc del nucli. Una funció del nucli mapeja implícitament les dades a un espai de dimensions superiors on és possible una separació lineal. Les funcions del nucli més utilitzades inclouen el nucli polinomial, el nucli de la funció de base radial (RBF) i el nucli sigmoide.
La funció de decisió a l'SVM kernelitzat es converteix en:
where són els multiplicadors de Lagrange obtinguts de la forma dual del problema d'optimització.
Implementació de Python
A Python, la biblioteca `scikit-learn` proporciona una implementació senzilla de SVM mitjançant la classe `SVC`. A continuació es mostra un exemple de com utilitzar "SVC" per classificar un conjunt de dades:
python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # Load the dataset iris = datasets.load_iris() X = iris.data y = iris.target # Select only two classes for binary classification X = X[y != 2] y = y[y != 2] # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Create an SVM classifier with a linear kernel clf = SVC(kernel='linear') # Train the classifier clf.fit(X_train, y_train) # Predict the class labels for the test set y_pred = clf.predict(X_test) # Calculate the accuracy of the classifier accuracy = accuracy_score(y_test, y_pred) print(f'Accuracy: {accuracy * 100:.2f}%')
En aquest exemple, la classe `SVC` s'utilitza per crear un classificador SVM amb un nucli lineal. El classificador s'entrena al conjunt d'entrenament i la precisió s'avalua al conjunt de prova. La classificació d'un conjunt de característiques a SVM depèn fonamentalment del signe de la funció de decisió. . El signe determina a quin costat de l'hiperpla es troba un punt de dades, assignant-lo així a la classe corresponent. La funció de decisió, el procés d'optimització per trobar l'hiperpla òptim i l'ús potencial de les funcions del nucli per gestionar la separabilitat no lineal són components importants dels SVM. La comprensió d'aquests aspectes proporciona una visió completa de com funcionen els SVM i la seva aplicació en diverses tasques d'aprenentatge automàtic.
Altres preguntes i respostes recents sobre Aprenentatge automàtic EITC/AI/MLP amb Python:
- Com es calcula el paràmetre b en regressió lineal (la intercepció en y de la línia de millor ajust)?
- Quin paper juguen els vectors de suport a l'hora de definir el límit de decisió d'un SVM i com s'identifiquen durant el procés de formació?
- En el context de l'optimització SVM, quina és la importància del vector de pes "w" i el biaix "b" i com es determinen?
- Quin és l'objectiu del mètode `visualize' en una implementació SVM, i com ajuda a entendre el rendiment del model?
- Com determina el mètode "predir" en una implementació SVM la classificació d'un punt de dades nou?
- Quin és l'objectiu principal d'una màquina de vectors de suport (SVM) en el context de l'aprenentatge automàtic?
- Com es poden utilitzar biblioteques com scikit-learn per implementar la classificació SVM a Python i quines són les funcions clau implicades?
- Expliqueu la importància de la restricció (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) en l'optimització de SVM.
- Quin és l'objectiu del problema d'optimització SVM i com es formula matemàticament?
- Quin és el paper de l'equació d'hiperpla (mathbf{x} cdot mathbf{w} + b = 0) en el context de les màquines de vectors de suport (SVM)?
Consulteu més preguntes i respostes a EITC/AI/MLP Machine Learning amb Python