Condividi tramite


One-Class Support Vector Machine

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Crea un modello di tipo macchine del vettore di supporto (SVM, Support Vector Machine) a una classe per il rilevamento di anomalie

Categoria: Rilevamento anomalie

Nota

Si applica a: Machine Learning Studio (versione classica)

Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.

Panoramica del modulo

Questo articolo descrive come usare il modulo One-Class Support Vector Model in Machine Learning Studio (versione classica) per creare un modello di rilevamento anomalie.

Questo modulo è particolarmente utile negli scenari in cui sono presenti molti dati "normali" e non molti casi di anomalie che si sta tentando di rilevare. Ad esempio, se è necessario rilevare transazioni fraudolente, potrebbero non essere disponibili molti esempi di frodi che è possibile usare per eseguire il training di un modello di classificazione tipico, ma potrebbero essere disponibili molti esempi di transazioni di qualità.

Usare il modulo One-Class Support Vector Model per creare il modello e quindi eseguire il training del modello usando il training del modello di rilevamento anomalie. Il set di dati usato per il training può contenere tutti o principalmente casi normali.

È quindi possibile applicare metriche diverse per identificare potenziali anomalie. Ad esempio, è possibile usare un set di dati di grandi dimensioni di transazioni di qualità per identificare i casi che potrebbero rappresentare transazioni fraudolente.

Altre informazioni su SVM di una classe

Le macchine a vettori di supporto sono modelli di apprendimento supervisionati che analizzano i dati e riconoscono modelli e che possono essere usati per attività di classificazione e di regressione.

In genere, all'algoritmo SVM viene assegnato un set di esempi di training etichettati come appartenenti a una delle due classi. Un modello SVM si basa sulla divisione dei punti di campionamento di training in categorie separate per un gap il più ampio possibile, penalizzando al tempo stesso i campioni di training che rientrano sul lato errato del gap. Il modello SVM esegue quindi stime assegnando punti a un lato del gap o all'altro.

A volte il sovracampionamento viene usato per replicare gli esempi esistenti in modo che sia possibile creare un modello a due classi, ma non è possibile prevedere tutti i nuovi modelli di frode o errori di sistema da esempi limitati. Inoltre, la raccolta anche se di esempi limitati può essere costosa.

Pertanto, nella macchina a vettori di supporto a una classe, il training del modello a vettori di supporto viene basato su dati che hanno una sola classe, ovvero la classe "normale". Deduce le proprietà dei case normali e da queste proprietà è possibile stimare quali esempi sono diversi dagli esempi normali. Ciò è utile per il rilevamento delle anomalie perché la scarsità degli esempi di training è ciò che definisce le anomalie, ci sono in genere pochissimi esempi di intrusione di rete, frode o altri comportamenti anomali.

Per altre informazioni, inclusi i collegamenti alla ricerca di base, vedere la sezione Note tecniche.

Nota

Il modulo One-Class Support Vector Model crea un modello SVM kernel, ovvero non molto scalabile. Se il tempo di training è limitato o se sono disponibili troppi dati, è possibile usare altri metodi per rilevare le anomalie, ad esempio il rilevamento anomalie basato su PCA.

Come configurare una One-Class SVM

  1. Aggiungere il modulo One-Class Support Vector Model all'esperimento in Studio (versione classica). È possibile trovare il modulo in Machine Learning - Inizializza, nella categoria Rilevamento anomalie.

  2. Fare doppio clic sul modulo One-Class Support Vector Model per aprire il riquadro Proprietà.

  3. Per Create trainer mode (Crea modalità di training) selezionare un'opzione che indica come eseguire il training del modello:

    • Parametro singolo: usare questa opzione se si conosce la modalità di configurazione del modello e si specifica un set specifico di valori come argomenti.

    • Intervallo di parametri: usare questa opzione se non si è certi dei parametri migliori e si vuole eseguire uno sweep di parametri per trovare la configurazione ottimale.

  4. η: digitare un valore che rappresenta il limite superiore della frazione degli outlier. Questo parametro corrisponde alla proprietà nu descritta in questo documento. La proprietà nu consente di controllare il compromesso tra outlier e casi normali.

  5. ε (epsilon): digitare un valore da usare come tolleranza di arresto. La tolleranza di arresto influisce sul numero di iterazioni usate durante l'ottimizzazione del modello e dipende dal valore del criterio di arresto. Quando il valore viene superato, l'trainer interrompe l'iterazione di una soluzione.

  6. Connessione un set di dati di training e uno dei moduli di training:

    Nota

    Se si passa un intervallo di parametri al modello di rilevamento anomalie di training, viene utilizzato solo il primo valore nell'elenco di intervalli di parametri.

    Se si passa un singolo set di valori di parametro al modulo Tune Model Hyperparameters ,quando si prevede un intervallo di impostazioni per ogni parametro, vengono ignorati i valori e vengono utilizzati i valori predefiniti per lo learner.

    Se si seleziona l'opzione Intervallo di parametri e si immette un singolo valore per qualsiasi parametro, tale singolo valore viene usato durante l'intera transazione, anche se altri parametri cambiano in un intervallo di valori.

  7. Eseguire l'esperimento.

Risultati

Il modulo restituisce un modello di rilevamento anomalie con training. È possibile salvare il modello nell'area di lavoro oppure connettere il modulo Score Model (Punteggio modello) e usare il modello con training per rilevare possibili anomalie.

Se è stato training del modello usando uno sweep di parametri, prendere nota delle impostazioni dei parametri ottimali da usare quando si configura un modello per l'uso nell'ambiente di produzione.

Esempio

Per esempi di come viene usato questo modulo nel rilevamento anomalie, vedere il Azure AI Gallery:

  • Rilevamento anomalie: rischio di credito: questo esempio illustra come trovare gli outlier nei dati usando uno sweep di parametri per trovare il modello ottimale. Applica quindi tale modello ai nuovi dati per identificare le transazioni rischiose che potrebbero rappresentare frodi, confrontando due diversi modelli di rilevamento anomalie.

Note tecniche

Le stime della SVM di una classe sono punteggi noncalibrati che possono essere probabilmente non associati. Come illustrato nell'esempio Cortana Intelligence Gallery, assicurarsi di normalizzare i punteggi se si confrontano modelli basati su algoritmi diversi.

Ricerca

Questa implementazione esegue il wrapping della libreria per le macchine a vettori di supporto denominate libsvm. La teoria generale su cui libsvm si basa e l'approccio verso le macchine a vettori di supporto di una classe sono descritte in questi documenti da B. Schӧlkopf et al.

Parametri del modulo

Nome Tipo Intervallo Facoltativo Descrizione Predefinito
Create trainer mode Create Trainer Mode List:SingleParameter|ParameterRange Necessario Parametro singolo Specificare le opzioni di studente.

Usare l'opzione SingleParameter per specificare manualmente tutti i valori.

Usare l'opzione ParameterRange per organizzare i parametri configurabili.
nu Float >=double.Epsilon mode:SingleParameter 0,1 Questo parametro (rappresentato dalla lettera greco nu) determina il compromesso tra la frazione di outlier e il numero di vettori di supporto.
epsilon Float >=double.Epsilon mode:SingleParameter 0,001 Specifica la tolleranza di arresto.
psnu ParameterRangeSettings [0.001;1.0] mode:ParameterRange 0,001; 0,01; 0,1 Specifica l'intervallo per il compromesso tra la frazione di outlier e il numero di vettori di supporto.
psEpsilon ParameterRangeSettings [1e-6;1.0] mode:ParameterRange 0,001; 0,01; 0,1 Specifica l'intervallo per la tolleranza di arresto.

Output

Nome Tipo Descrizione
Untrained model ILearner interface Modello di rilevamento di anomalie senza training

Vedi anche

Classificazione
Train Anomaly Detection Model (Training modello di rilevamento anomalie)