Condividi tramite


PCA-Based componente Rilevamento anomalie

Questo articolo descrive come usare il componente rilevamento anomalie PCA-Based nella finestra di progettazione di Azure Machine Learning per creare un modello di rilevamento anomalie basato sull'analisi dei componenti principale (PCA).

Questo componente consente di creare un modello negli scenari in cui è facile ottenere dati di training da una classe, ad esempio transazioni valide, ma difficile ottenere esempi sufficienti delle anomalie mirate.

Ad esempio, per rilevare transazioni fraudolente, spesso non si hanno esempi sufficienti di frodi da eseguire. Ma potresti avere molti esempi di transazioni valide. Il componente rilevamento anomalie PCA-Based risolve il problema analizzando le funzionalità disponibili per determinare cosa costituisce una classe "normale". Il componente applica quindi le metriche di distanza per identificare i casi che rappresentano anomalie. Questo approccio consente di eseguire il training di un modello usando i dati sbilanciati esistenti.

Altre informazioni sull'analisi dei componenti principali

PCA è una tecnica stabilita in Machine Learning. Viene spesso usato nell'analisi dei dati esplorativa perché rivela la struttura interna dei dati e spiega la varianza nei dati.

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 anomalie, ogni nuovo input viene analizzato. L'algoritmo di rilevamento anomalie calcola la proiezione sui eigenvector, insieme a un errore di ricostruzione normalizzato. L'errore normalizzato viene usato come punteggio anomalie. A un punteggio maggiore corrisponde una maggiore anomalia dell'istanza.

Per altre informazioni sul funzionamento del PCA e sull'implementazione per il rilevamento anomalie, vedere questi documenti:

Come configurare PCA-Based Rilevamento anomalie

  1. Aggiungere il componente Rilevamento anomalie basato su PCA alla pipeline nella finestra di progettazione. È possibile trovare questo componente nella categoria Rilevamento anomalie .

  2. Nel pannello destro del componente selezionare l'opzione Modalità training . Indica 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.

    Se si sa come configurare il modello, selezionare l'opzione Single Parameter (Parametro singolo ) e specificare un set specifico di valori come argomenti.

  3. Per Numero di componenti da usare in PCA, specificare il numero di funzionalità o componenti di output desiderati.

    La decisione del numero di componenti da includere è una parte importante della progettazione dell'esperimento che usa PCA. Linee guida generali è che non è consigliabile includere lo stesso numero di componenti PCA come esistono variabili. È invece consigliabile iniziare con un numero minore di componenti e aumentarli fino a quando non viene soddisfatto un criterio.

    I risultati migliori vengono ottenuti quando il numero di componenti di output è minore del numero di colonne di funzionalità disponibili nel set di dati.

  4. Specificare la quantità di sovracampionamento da eseguire durante il training PCA casuale. Nei problemi di rilevamento anomalie, i dati sbilanciati rendono difficile applicare tecniche PCA standard. Specificando una quantità di oversampling, è possibile aumentare il numero di istanze di destinazione.

    Se si specifica 1, non viene eseguito alcun overampling. Se si specifica un valore superiore a 1, vengono generati esempi aggiuntivi da usare nel training del modello.

    Esistono due opzioni, a seconda che si usi uno sweep di parametri o meno:

    • Parametro oversampling per PCA casuale: digitare un singolo numero intero che rappresenta il rapporto di oversampling della classe di minoranza sulla classe normale. Questa opzione è disponibile quando si usa il metodo di training dei parametri Single .

    Nota

    Non è possibile visualizzare il set di dati oversampled. Per altre informazioni su come viene usato l'oversampling con PCA, vedere Note tecniche.

  5. Selezionare l'opzione Abilita la normalizzazione media della funzionalità di input per normalizzare tutte le funzionalità di input in una media di zero. La normalizzazione o la scalabilità in zero è generalmente consigliata per IL PCA, perché l'obiettivo di PCA è ottimizzare la varianza tra le variabili.

    Questa opzione è selezionata per impostazione predefinita. Deselezionarlo se i valori sono già stati normalizzati tramite un metodo o una scala diversi.

  6. Connettere un set di dati di training con tag e uno dei componenti di training.

    Se si imposta l'opzione Crea modalità di training su Singolo parametro, usare il componente Train Anomaly Detection Model.If you set the Create trainer mode to Single Parameter, use the Train Anomaly Detection Model component.

  7. Inviare la pipeline.

Risultati

Al termine del training, è possibile salvare il modello sottoposto a training. In alternativa, è possibile connetterlo al componente Score Model per stimare i punteggi anomali.

Per valutare i risultati di un modello di rilevamento anomalie:

  1. Assicurarsi che una colonna di punteggio sia disponibile in entrambi i set di dati.

    Se si tenta di valutare un modello di rilevamento anomalie e di ottenere l'errore "Non è presente alcuna colonna di punteggio nel set di dati con punteggio da confrontare", si usa un set di dati di valutazione tipico che contiene una colonna di etichetta ma nessun punteggio di probabilità. Scegliere un set di dati che corrisponde all'output dello schema per i modelli di rilevamento anomalie, che include etichette con punteggio e colonne probabilità segnate .

  2. Assicurarsi che le colonne di etichetta siano contrassegnate.

    A volte i metadati associati alla colonna etichetta vengono rimossi nel grafico della pipeline. In questo caso, quando si usa il componente Valuta modello per confrontare i risultati di due modelli di rilevamento anomalie, è possibile che venga visualizzato l'errore "Non esiste alcuna colonna etichetta nel set di dati con punteggio". In alternativa, è possibile che venga visualizzato l'errore "Non è presente alcuna colonna di etichette nel set di dati con punteggio da confrontare".

    È possibile evitare questi errori aggiungendo il componente Modifica metadati prima del componente Valuta modello . Usare il selettore di colonna per scegliere la colonna di classe e nell'elenco Campi selezionare Etichetta.

  3. Usare il componente Esegui script Python per modificare le categorie di colonne etichetta come 1(positivo, normale) e 0(negativo, anomalo).

    label_column_name = 'XXX'
    anomaly_label_category = YY
    dataframe1[label_column_name] = dataframe1[label_column_name].apply(lambda x: 0 if x == anomaly_label_category else 1)
    

Note tecniche

Questo algoritmo usa PCA per approssimare lo spazio secondario che contiene la classe normale. Lo spazio secondario viene esteso da eigenivector associati ai primi eigenvalue della matrice covarianza dei dati.

Per ogni nuovo input, il rilevatore anomalie calcola prima la proiezione sugli eigenvector e quindi calcola l'errore di ricostruzione normalizzato. Questo errore è il punteggio di anomalie. Maggiore è l'errore, più anomalo dell'istanza. Per informazioni dettagliate su come viene calcolato lo spazio normale, vedere Wikipedia: Analisi dei componenti principale.

Passaggi successivi

Vedere il set di componenti disponibili per Azure Machine Learning.

Vedere Eccezioni e codici di errore per la finestra di progettazione per un elenco di errori specifici dei componenti della finestra di progettazione.