Stavo usando una classe SVM , implementata in scikit-learn, per il mio lavoro di ricerca. Ma non ho una buona comprensione di questo.
Qualcuno può dare una spiegazione semplice e buona di una classe SVM ?
Stavo usando una classe SVM , implementata in scikit-learn, per il mio lavoro di ricerca. Ma non ho una buona comprensione di questo.
Qualcuno può dare una spiegazione semplice e buona di una classe SVM ?
Risposte:
Il problema affrontato da One Class SVM, come dice la documentazione, è il rilevamento di novità . Il documento originale che descrive come utilizzare SVM per questa attività è " Support Vector Method for Novelty Detection ".
L'idea del rilevamento di novità è quella di rilevare eventi rari, cioè eventi che accadono raramente e, quindi, di cui hai pochissimi campioni. Il problema è quindi che il solito modo di addestrare un classificatore non funzionerà.
Quindi come decidi cos'è un nuovo modello? Molti approcci si basano sulla stima della densità di probabilità per i dati. La novità corrisponde a quei campioni in cui la densità di probabilità è "molto bassa". Quanto in basso dipende dall'applicazione.
Ora, le SVM sono metodi con margine massimo, cioè non modellano una distribuzione di probabilità. Qui l'idea è quella di trovare una funzione positiva per le regioni con alta densità di punti e negativa per le piccole densità.
I dettagli grintosi sono riportati nel documento. ;) Se hai davvero intenzione di leggere il documento, assicurati di aver prima compreso le impostazioni dell'algoritmo SVM di base per la classificazione. Renderà molto più facile comprendere i limiti e la motivazione dell'algoritmo.
È possibile utilizzare SVM One Class per alcune pipeline per l'apprendimento attivo in modo semi-supervisionato.
Esempio: poiché SVM si occupa di un metodo del margine massimo come descritto in precedenza, è possibile considerare tali aree di margine come limiti per una classe specifica ed eseguire la rietichettatura.