Rilevamento anomalie basato su PCA
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).
- Vedere leinformazioni sullo spostamento di progetti di Machine Learning da ML Studio (versione classica) ad Azure Machine Learning.
- Altre informazioni sulle Azure Machine Learning.
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 rilevamento di anomalie usando l'analisi in componenti principali
Categoria: Rilevamento anomalie
Nota
Si applica a: Machine Learning Studio (versione classica)
Moduli di trascinamento della selezione simili sono disponibili nella finestra Azure Machine Learning progettazione.
Panoramica del modulo
Questo articolo descrive come usare il modulo Rilevamento anomalie basato su PCA in Machine Learning Studio (versione classica) per creare un modello di rilevamento anomalie basato su Principal Component Analysis (PCA).
Questo modulo consente di compilare un modello in scenari in cui è facile ottenere dati di training da una classe, ad esempio transazioni valide, ma è difficile ottenere campioni sufficienti delle anomalie di destinazione.
Ad esempio, per rilevare le transazioni fraudolente, molto spesso non si hanno esempi sufficienti di frodi su cui eseguire il training, ma si hanno molti esempi di transazioni buone. Il modulo Rilevamento anomalie basato su PCA risolve il problema analizzando le funzionalità disponibili per determinare cosa costituisce una classe "normale" e applicando metriche di distanza per identificare i casi che rappresentano anomalie. In questo modo è possibile il training di un modello usando dati sbilanciati esistenti.
Ulteriori informazioni su PCA
L'analisi dei componenti principale, spesso abbreviata in PCA, è una tecnica consolidata in Machine Learning. La tecnica PCA viene spesso usata nell'analisi esplorativa dei dati perché rivela la struttura interna e illustra la varianza all'interno dei dati stessi.
Questa tecnica consiste nell'eseguire l'analisi di dati che contengono più variabili. Cerca le correlazioni tra le variabili e determina la combinazione di valori che meglio rappresenta le differenze nei risultati. Questi valori di funzionalità combinati vengono usati per creare uno spazio di funzionalità più compatto denominato componenti principali.
Per il rilevamento delle anomalie, ogni nuovo input viene analizzato e l'algoritmo di rilevamento anomalie calcola la proiezione sugli eigenvector, insieme a un errore di ricostruzione normalizzato. L'errore normalizzato viene usato come punteggio di anomalie. A un punteggio maggiore corrisponde una maggiore anomalia dell'istanza.
Per altre informazioni sul funzionamento di PCA e sull'implementazione per il rilevamento delle anomalie, vedere questi documenti:
Algoritmo casuale per l'analisi dei componenti principali. Rokhlin, Szlan e Tygert
Ricerca della struttura con casualità: algoritmi probabilistici per la costruzione di scomposizione approssimativa della matrice (download PDF). Halko, Martinsson e Tropp.
Come configurare il rilevamento anomalie PCA
Aggiungere il modulo Rilevamento anomalie basato su PCA all'esperimento in Studio (versione classica). È possibile trovare questo modulo in Machine Learning, Inizializza modello, nella categoria Rilevamento anomalie.
Nel riquadro Proprietà per il modulo Rilevamento anomalie basate su PCA fare clic sull'opzione Modalità di training e indicare se si vuole eseguire il training del modello usando un set specifico di parametri o usare uno sweep di parametri per trovare i parametri migliori.
Singolo parametro: selezionare questa opzione se si sa come si vuole configurare il modello e specificare un set specifico di valori come argomenti.
Intervallo parametri: selezionare questa opzione se non si è certi dei parametri migliori e si vuole usare uno sweep di parametri usando il modulo Tune Model Hyperparameters (Ottimizza iperparamezzi modello ). Il trainer scorre un intervallo di impostazioni specificato e determina la combinazione di impostazioni che produce i risultati ottimali.
Numero di componenti da usare in PCA, Intervallo per il numero di componenti PCA: specificare il numero di funzionalità di output, o componenti, che si desidera eseguire l'output.
La decisione del numero di componenti da includere è una parte importante della progettazione dell'esperimento tramite PCA. Le indicazioni generali sono che non è necessario includere lo stesso numero di componenti PCA delle variabili. È invece consigliabile iniziare con un numero inferiore di componenti e aumentarli fino a quando non vengono soddisfatti alcuni criteri.
Se non si è certi del valore ottimale, è consigliabile eseguire il training del modello di rilevamento anomalie usando l'opzione Intervallo parametri .
I risultati migliori si ottengono quando il numero di componenti di output è inferiore al numero di colonne di funzionalità disponibili nel set di dati.
Specificare la quantità di oversampling da eseguire durante il training pcA casuale. Nei problemi di rilevamento anomalie, i dati sbilanciati rendono difficile applicare tecniche PCA standard. Specificando una certa quantità di oversampling, è possibile aumentare il numero di istanze di destinazione.
Se si specifica 1, non viene eseguito alcun oversampling. Se si specifica un valore maggiore di 1, vengono generati esempi aggiuntivi da usare nel training del modello.
Sono disponibili due opzioni, a seconda che si utilizzi o meno uno sweep di parametri:
- Parametro di oversampling per PCA casuale: digitare un singolo numero intero che rappresenta il rapporto di sovracampionamento della classe di minoranza rispetto alla classe normale. Disponibile quando si usa il metodo di training a parametro singolo.
- Intervallo per il parametro di oversampling usato in PCA casuale: digitare una serie di numeri da provare oppure usare Generatore di intervalli per selezionare i valori usando un dispositivo di scorrimento. Disponibile solo quando si usa il metodo di training Intervallo di parametri.
Nota
Non è possibile visualizzare il set di dati sovracampionato. Per altri dettagli sull'uso dell'oversampling con PCA, vedere Note tecniche.
Abilita normalizzazione media funzionalità di input: selezionare questa opzione per normalizzare tutte le funzionalità di input con una media pari a zero. La normalizzazione o il ridimensionamento a zero è in genere consigliato per PCA, perché l'obiettivo di PCA è ottimizzare la varianza tra le variabili.
Questa opzione è selezionata per impostazione predefinita. Deselezionare questa opzione se i valori sono già stati normalizzati usando un metodo o una scala diversa.
Connessione un set di dati di training con tag e uno dei moduli di training:
- Se si imposta l'opzione Crea modalità di training su Parametro singolo, usare il modulo Train Anomaly Detection Model (Eseguire il training del modello di rilevamento anomalie).
- Se si imposta l'opzione Create trainer mode (Crea modalità trainer) su Parameter Range (Intervallo parametri), usare il modulo Tune Model Hyperparameters (Ottimizza iperparamezionari modello ).
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 strumento di apprendimento.
Se si seleziona l'opzione Intervallo parametri e si immette un singolo valore per qualsiasi parametro, tale singolo valore viene usato in tutta la sweep, anche se altri parametri cambiano in un intervallo di valori.
Eseguire l'esperimento oppure selezionare il modulo e fare clic su Esegui selezionato.
Risultati
Al termine del training, è possibile salvare il modello con training o connetterlo al modulo Score Model (Punteggio modello) per stimare i punteggi delle anomalie.
Per valutare i risultati di un modello di rilevamento anomalie sono necessari alcuni passaggi aggiuntivi:
Assicurarsi che una colonna punteggio sia disponibile in entrambi i set di dati
Se si prova a valutare un modello di rilevamento anomalie e si ottiene l'errore "Non è presente alcuna colonna di punteggio nel set di dati con punteggio da confrontare", significa che si usa un set di dati di valutazione tipico che contiene una colonna etichetta ma nessun punteggio di probabilità. È necessario scegliere un set di dati che corrisponda all'output dello schema per i modelli di rilevamento anomalie, che include una colonna Etichette con punteggio e Probabilità con punteggio.
Assicurarsi che le colonne etichetta siano contrassegnate
A volte i metadati associati alla colonna etichetta vengono rimossi nel grafico dell'esperimento. In questo caso, quando si usa il modulo Evaluate Model (Valuta modello) per confrontare i risultati di due modelli di rilevamento anomalie, è possibile che venga visualizzato l'errore "There is no label column in scored dataset" o "There is no label column in scored dataset to compare".
È possibile evitare questo errore aggiungendo il modulo Edit Metadata (Modifica metadati) prima del modulo Evaluate Model (Valuta modello). Usare il selettore di colonna per scegliere la colonna della classe e nell'elenco a discesa Campi selezionare Etichetta.
Normalizzare i punteggi da tipi di modello diversi
Le stime del modello di rilevamento anomalie PCA sono sempre nell'intervallo [0,1]. Al contrario, l'output del modulo SVM one-class è uncalibrated scores che è possibile non associato.
Pertanto, se si confrontano modelli basati su algoritmi diversi, è necessario normalizzare sempre i punteggi. Vedere l'esempio nel Azure AI Gallery per un esempio di normalizzazione tra i diversi modelli di rilevamento delle anomalie.
Esempio
Per esempi dell'uso di PCA nel rilevamento anomalie, vedere l'Azure AI Gallery:
- Rilevamento anomalie: rischio di credito: illustra come trovare outlier nei dati. In questo esempio viene utilizzato 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
Questo algoritmo usa PCA per approssimare lo spazio secondario contenente la classe normale. Il sottospazio è ampliato da eigenvector associati ai primi valori eigen della matrice di covarianza dei dati. Per ogni nuovo input, il rilevatore di anomalie calcola prima la proiezione sugli eigenvector e quindi calcola l'errore di ricostruzione normalizzato. Questo errore è il punteggio di anomalia. Più alto è l'errore, maggiore è l'anomalia dell'istanza. Per informazioni dettagliate sul calcolo dello spazio normale, vedere Wikipedia: Principal Component Analysis
Parametri del modulo
Nome | Tipo | Intervallo | Facoltativo | Descrizione | Predefinito |
---|---|---|---|---|---|
Training mode | CreateLearnerMode | 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. |
Number of components to use in PCA | Integer | mode:SingleParameter | 2 | Specificare il numero di componenti da usare in PCA. | |
Oversampling parameter for randomized PCA | Integer | mode:SingleParameter | 2 | Specificare il parametro di accuratezza per il training PCA casuale. | |
Enable input feature mean normalization | Logic type | List:True|False | Necessario | Falso | Specificare se i dati di input sono normalizzati per avere una media zero. |
Range for number of PCA components | ParameterRangeSettings | [1;100] | mode:ParameterRange | 2; 4; 6; 8; 10 | Specificare l'intervallo per il numero di componenti da usare in PCA. |
Range for the oversampling parameter used in randomized PCA | ParameterRangeSettings | [1;100] | mode:ParameterRange | 2; 4; 6; 8; 10 | Specificare l'intervallo per il parametro relativo all'accuratezza usato per il training PCA casuale. |
Output
Nome | Tipo | Descrizione |
---|---|---|
Untrained model | ILearner interface | Modello di rilevamento delle anomalie basato su PCA senza training |
Eccezioni
Eccezione | Descrizione |
---|---|
Errore 0017 | Si verifica un'eccezione se il tipo di una o più colonne specificate non è supportato dal modulo attuale. |
Errore 0062 | L'eccezione si verifica quando si tenta di confrontare due modelli con tipi di apprendimento diversi. |
Errore 0047 | L'eccezione si verifica se il numero di colonne funzionalità in alcuni set di dati passati al modulo è troppo piccolo. |
Per un elenco degli errori specifici dei moduli di Studio (versione classica), vedere Machine Learning codici di errore.
Per un elenco delle eccezioni API, vedere Machine Learning di errore dell'API REST.