Le Support Vector Machine (SVM) sono un potente algoritmo di apprendimento supervisionato utilizzato per attività di classificazione e regressione. L'obiettivo principale di una SVM è trovare l'iperpiano ottimale che separi al meglio i punti dati di classi diverse in uno spazio ad alta dimensione. La classificazione di un set di feature in SVM è profondamente legata alla funzione di decisione, in particolare al suo segno, che svolge un ruolo importante nel determinare su quale lato dell'iperpiano cade un dato punto dati.
Funzione decisionale in SVM
La funzione decisionale per una SVM può essere espressa come:
dove:
- è il vettore dei pesi che definisce l'orientamento dell'iperpiano.
- è il vettore delle caratteristiche del punto dati da classificare.
- è il termine bias che sposta l'iperpiano.
Per classificare un punto dati , viene utilizzato il segno della funzione di decisione:
Questo segno determina il lato dell'iperpiano su cui giace il punto dati.
Ruolo della classificazione dei segni
Il segno della funzione decisionale () determina direttamente l'etichetta della classe assegnata al punto dati
. Ecco come funziona:
1. Segno positivo: Se , il segno della funzione decisionale è positivo. Ciò significa che il punto dati
si trova dal lato dell'iperpiano dove si trova la classe positiva. Perciò,
è classificato come appartenente alla classe positiva (solitamente indicato come +1).
2. Segno negativo: Se , il segno della funzione decisionale è negativo. Ciò indica che il punto dati
si trova sul lato dell'iperpiano dove si trova la classe negativa. Quindi,
è classificato come appartenente alla classe negativa (solitamente indicato come -1).
3. Zero: Nel raro caso in cui , il punto dati
giace esattamente sull'iperpiano. Questo scenario è teoricamente possibile ma praticamente raro a causa della natura continua dei dati a valore reale.
Interpretazione geometrica
L'interpretazione geometrica della funzione decisionale è essenziale per comprendere come le SVM classificano i punti dati. L'iperpiano definito da funge da confine decisionale tra le due classi. L'orientamento e la posizione di questo iperpiano sono determinati dal vettore dei pesi
e il termine di pregiudizio
.
1. Margine: Il margine è la distanza tra l'iperpiano e i punti dati più vicini di ciascuna classe. SVM mira a massimizzare questo margine per garantire che l'iperpiano non solo separi le classi ma lo faccia con la massima distanza possibile dai punti dati più vicini. Questi punti dati più vicini sono noti come vettori di supporto.
2. Vettori di supporto: I vettori di supporto sono i punti dati più vicini all'iperpiano. Sono fondamentali nel definire la posizione e l'orientamento dell'iperpiano. Qualsiasi cambiamento nella posizione di questi vettori di supporto altererebbe l'iperpiano.
Esempio
Considera un semplice esempio in cui abbiamo uno spazio di caratteristiche bidimensionale con punti dati di due classi. Indichiamo la classe positiva con +1 e la classe negativa con -1. Supponiamo che il vettore dei pesi e il termine di pregiudizio
.
Per un punto dati , possiamo calcolare la funzione decisionale come segue:
Dal , il segno della funzione decisionale è positivo e, quindi, il punto dati
è classificato come appartenente alla classe positiva (+1).
Per un altro punto dati , calcoliamo la funzione decisionale come:
Ancora, , quindi il segno è positivo, e
è classificato come appartenente alla classe positiva (+1).
Consideriamo ora un punto dati :
In questo caso, , quindi il segno è negativo, e
è classificato come appartenente alla classe negativa (-1).
Formulazione matematica
La formulazione matematica di SVM prevede la risoluzione di un problema di ottimizzazione per trovare l'ottimale che a
che massimizzano il margine classificando correttamente i dati di addestramento. Il problema di ottimizzazione può essere espresso come:
where è l'etichetta della classe del punto dati
e il vincolo garantisce che tutti i punti dati siano classificati correttamente con un margine di almeno 1.
Trucco del nocciolo
In molte applicazioni pratiche, i dati potrebbero non essere separabili linearmente nello spazio delle caratteristiche originali. Per risolvere questo problema, le SVM possono essere estese alla classificazione non lineare utilizzando il trucco del kernel. Una funzione del kernel mappa implicitamente i dati in uno spazio dimensionale superiore dove è possibile una separazione lineare. Le funzioni del kernel comunemente utilizzate includono il kernel polinomiale, il kernel con funzione di base radiale (RBF) e il kernel sigmoideo.
La funzione decisionale nella SVM kernelizzata diventa:
where sono i moltiplicatori di Lagrange ottenuti dalla forma duale del problema di ottimizzazione.
Implementazione Python
In Python, la libreria "scikit-learn" fornisce un'implementazione semplice di SVM attraverso la classe "SVC". Di seguito è riportato un esempio di come utilizzare "SVC" per classificare un set di dati:
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}%')
In questo esempio, la classe "SVC" viene utilizzata per creare un classificatore SVM con un kernel lineare. Il classificatore viene addestrato sul set di addestramento e la precisione viene valutata sul set di test. La classificazione di un set di funzionalità in SVM dipende fondamentalmente dal segno della funzione decisionale . Il segno determina su quale lato dell'iperpiano giace un punto dati, assegnandolo così alla classe corrispondente. La funzione di decisione, il processo di ottimizzazione per trovare l'iperpiano ottimale e il potenziale utilizzo delle funzioni kernel per gestire la separabilità non lineare sono tutti componenti importanti delle SVM. La comprensione di questi aspetti fornisce una visione completa del funzionamento delle SVM e della loro applicazione in varie attività di apprendimento automatico.
Altre domande e risposte recenti riguardanti Apprendimento automatico EITC/AI/MLP con Python:
- Come viene calcolato il parametro b nella regressione lineare (l'intercetta y della linea di adattamento migliore)?
- Che ruolo giocano i vettori di supporto nel definire il confine decisionale di una SVM e come vengono identificati durante il processo di formazione?
- Nel contesto dell'ottimizzazione SVM, qual è il significato del vettore dei pesi "w" e del bias "b" e come vengono determinati?
- Qual è lo scopo del metodo "visualize" in un'implementazione SVM e in che modo aiuta a comprendere le prestazioni del modello?
- In che modo il metodo "predict" in un'implementazione SVM determina la classificazione di un nuovo punto dati?
- Qual è l'obiettivo principale di una Support Vector Machine (SVM) nel contesto dell'apprendimento automatico?
- Come possono essere utilizzate librerie come scikit-learn per implementare la classificazione SVM in Python e quali sono le funzioni chiave coinvolte?
- Spiegare il significato del vincolo (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) nell'ottimizzazione SVM.
- Qual è l'obiettivo del problema di ottimizzazione SVM e come è formulato matematicamente?
- Qual è il ruolo dell'equazione dell'iperpiano (mathbf{x} cdot mathbf{w} + b = 0) nel contesto delle Support Vector Machines (SVM)?
Visualizza altre domande e risposte in EITC/AI/MLP Machine Learning con Python
Altre domande e risposte:
- Settore: Intelligenza Artificiale
- programma: Apprendimento automatico EITC/AI/MLP con Python (vai al programma di certificazione)
- Lezione: Supporta la macchina vettoriale (vai alla lezione correlata)
- Argomento: Supporta l'ottimizzazione della macchina vettoriale (vai all'argomento correlato)
- Revisione d'esame