Anomaliedetectie op basis van PCA

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Hiermee maakt u een anomaliedetectiemodel met behulp van Principal Component Analysis

Categorie: Anomaliedetectie

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de pca-module Anomaliedetectie in Machine Learning Studio (klassiek) gebruikt om een anomaliedetectiemodel te maken op basis van PCA (Principal Component Analysis).

Deze module helpt u bij het bouwen van een model in scenario's waarin het eenvoudig is om trainingsgegevens op te halen uit één klasse, zoals geldige transacties, maar moeilijk om voldoende steekproeven van de beoogde afwijkingen te verkrijgen.

Als u bijvoorbeeld frauduleuze transacties wilt detecteren, hebt u vaak niet voldoende voorbeelden van fraude om op te trainen, maar zijn er veel voorbeelden van goede transacties. De pca-module Anomaliedetectie lost het probleem op door beschikbare functies te analyseren om te bepalen wat een 'normale' klasse is, en door metrische afstandsgegevens toe te passen om gevallen te identificeren die afwijkingen vertegenwoordigen. Hiermee kunt u een model trainen met behulp van bestaande onevenwichtige gegevens.

Meer informatie over analyse van principal-onderdelen

Analyse van hoofdcomponenten, die vaak wordt afgekort tot PCA, is een tot stand gebrachte techniek in machine learning. PCA wordt vaak gebruikt in experimentele gegevensanalyse omdat de interne structuur van de gegevens wordt onthullen en de afwijking in de gegevens wordt uitgelegd.

PCA werkt door gegevens te analyseren die meerdere variabelen bevatten. Het zoekt naar correlaties tussen de variabelen en bepaalt de combinatie van waarden die de verschillen in resultaten het beste vast leggen. Deze gecombineerde functiewaarden worden gebruikt om een compactere functieruimte te maken die de belangrijkste onderdelen wordt genoemd.

Voor anomaliedetectie wordt elke nieuwe invoer geanalyseerd en berekent het anomaliedetectiealgoritme de projectie op de eigenvectoren, samen met een genormaliseerde fout. De genormaliseerde fout wordt gebruikt als anomaliescore. Hoe hoger de fout, hoe afwijkender het exemplaar is.

Zie de volgende documenten voor meer informatie over hoe PCA werkt en over de implementatie voor anomaliedetectie:

PcA-anomaliedetectie configureren

  1. Voeg de op PCA gebaseerde module Anomaliedetectie toe aan uw experiment in Studio (klassiek). U vindt deze module onder Machine LearningInitialize Model in de categorie Anomaliedetectie.

  2. Klik in het deelvenster Eigenschappen voor de pca-module Anomaliedetectie op de optie Trainingsmodus en geef aan of u het model wilt trainen met behulp van een specifieke set parameters, of gebruik een parameter-opruiming om de beste parameters te vinden.

    • Enkele parameter: selecteer deze optie als u weet hoe u het model wilt configureren en geef een specifieke set waarden op als argumenten.

    • Parameterbereik: selecteer deze optie als u niet zeker bent van de beste parameters en een parameteropruiming wilt gebruiken met behulp van de module Tune Model Hyperparameters . De oefender doorveert een reeks instellingen die u opgeeft en bepaalt de combinatie van instellingen die de optimale resultaten oplevert.

  3. Aantal onderdelen dat moet worden gebruikt in PCA, Bereik voor het aantal PCA-onderdelen: geef het aantal uitvoerfuncties of -onderdelen op dat u wilt uitvoer.

    De beslissing over het aantal onderdelen dat moet worden gebruikt, is een belangrijk onderdeel van het experimentontwerp met behulp van PCA. Algemene richtlijnen zijn dat u niet hetzelfde aantal PCA-onderdelen moet opnemen als er variabelen zijn. In plaats daarvan moet u beginnen met een kleiner aantal onderdelen en deze verhogen totdat aan bepaalde criteria wordt voldaan.

    Als u niet zeker weet wat de optimale waarde kan zijn, raden we u aan het anomaliedetectiemodel te trainen met behulp van de optie Parameterbereik .

    De beste resultaten worden verkregen wanneer het aantal uitvoeronderdelen kleiner is dan het aantal functiekolommen dat beschikbaar is in de gegevensset.

  4. Geef de hoeveelheid oversampling op die moet worden gebruikt tijdens een gerandomiseerde PCA-training. Bij problemen met anomaliedetectie is het moeilijk om standaard-PCA-technieken toe te passen als er gegevens uit balans zijn. Door een bepaalde hoeveelheid oversampling op te geven, kunt u het aantal doel-exemplaren verhogen.

    Als u 1 opgeeft, wordt er geen oversampling uitgevoerd. Als u een waarde opgeeft die hoger is dan 1, worden er extra voorbeelden gegenereerd om te gebruiken bij het trainen van het model.

    Er zijn twee opties, afhankelijk van of u al dan niet een parameter-opsruiming gebruikt:

    • Oversampling-parameter voor gerandomiseerde PCA: typ één geheel getal dat de verhouding van oversampling van de klasse over de normale klasse vertegenwoordigt. (Beschikbaar wanneer u de trainingsmethode met één parameter gebruikt.)
    • Bereik voor de oversampling-parameter die wordt gebruikt in willekeurige PCA: typ een reeks getallen die u wilt proberen of gebruik De Range Builder om waarden te selecteren met behulp van een schuifregelaar. (Alleen beschikbaar wanneer u de trainingsmethode Parameterbereik gebruikt.)

    Notitie

    U kunt de oversamplede gegevensset niet weergeven. Zie Technische opmerkingen voor meer informatie over hoe oversampling wordt gebruikt met PCA.

  5. Gemiddelde normalisatie van invoerfunctie inschakelen: selecteer deze optie om alle invoerfuncties te normaliseren tot een gemiddelde van nul. Normalisering of schalen naar nul wordt doorgaans aanbevolen voor PCA, omdat het doel van PCA is om de afwijking tussen variabelen te maximaliseren.

    Deze optie is standaard ingeschakeld. Schakel deze optie uit als waarden al zijn genormaliseerd met behulp van een andere methode of schaal.

  6. Verbinding maken een gelabelde trainingsset en een van de trainingsmodules:

    Notitie

    Als u een parameterbereik doorgeeft aan Train Anomaly Detection Model, wordt alleen de eerste waarde in de lijst met parameterbereiken gebruikt.

    Als u één set parameterwaarden doorgeeft aan de module Tune Model Hyperparameters , worden de waarden genegeerd en worden de standaardwaarden voor de learner genegeerd wanneer er een bereik van instellingen voor elke parameter wordt verwacht.

    Als u de optie Parameterbereik selecteert en één waarde voor een parameter ingeeft, wordt die ene waarde gedurende de hele wisseling gebruikt, zelfs als andere parameters binnen een bereik van waarden veranderen.

  7. Voer het experiment uit of selecteer de module en klik op Uitvoeren geselecteerd.

Resultaten

Wanneer de training is voltooid, kunt u het getrainde model opslaan of het koppelen aan de module Score Model om anomaliescores te voorspellen.

Voor het evalueren van de resultaten van anomaliedetectiemodellen zijn enkele extra stappen vereist:

  1. Zorg ervoor dat een scorekolom beschikbaar is in beide gegevenssets

    Als u probeert een anomaliedetectiemodel te evalueren en de fout 'Er is geen scorekolom in de beoordeelde gegevensset om te vergelijken' krijgt, betekent dit dat u een typische evaluatie-gegevensset gebruikt die een labelkolom bevat, maar geen waarschijnlijkheidsscores. U moet een gegevensset kiezen die overeenkomt met de schema-uitvoer voor anomaliedetectiemodellen, die de kolom Scored Labels en Scored Probabilities bevat.

  2. Controleren of labelkolommen zijn gemarkeerd

    Soms worden de metagegevens die zijn gekoppeld aan de labelkolom verwijderd in de experimentgrafiek. Als dit gebeurt, wanneer u de module Evaluate Model gebruikt om de resultaten van twee anomaliedetectiemodellen te vergelijken, krijgt u mogelijk de fout 'Er is geen labelkolom in de beoordeelde gegevensset' of 'Er is geen labelkolom in de beoordeelde gegevensset om te vergelijken'.

    U kunt deze fout voorkomen door de module Edit Metadata toe te voegen vóór de module Evaluate Model . Gebruik de kolom selector om de klassekolom te kiezen en selecteer label in de vervolgkeuzelijst Velden.

  3. Scores van verschillende modeltypen normaliseren

    Voorspellingen van het PCA-anomaliedetectiemodel liggen altijd binnen het bereik [0,1]. De uitvoer van de module One-Class SVM zijn daarentegen niet-gecalibreerde scores die mogelijk niet-gebonden zijn.

    Daarom moet u scores altijd normaliseren als u modellen vergelijkt op basis van verschillende algoritmen. Zie het voorbeeld in de Azure AI Gallery voor een voorbeeld van normalisatie tussen verschillende anomaliedetectiemodellen.

Voorbeelden

Voor voorbeelden van hoe PCA wordt gebruikt bij anomaliedetectie, zie de Azure AI Gallery:

  • Anomaliedetectie: kredietrisico: illustreert hoe u uitbijten in gegevens kunt vinden. In dit voorbeeld wordt een parameter-opruiming gebruikt om het optimale model te vinden. Vervolgens wordt dat model toegepast op nieuwe gegevens om riskante transacties te identificeren die fraude kunnen vertegenwoordigen, waarbij twee verschillende anomaliedetectiemodellen worden vergeleken.

Technische opmerkingen

Dit algoritme gebruikt PCA om een schatting te maken van de subruimte met de normale klasse. De subruimte wordt overspannen door eigenvectoren die zijn gekoppeld aan de bovenste eigenwaarden van de matrix voor gegevenscovariantie. Voor elke nieuwe invoer berekent de anomaliedetector eerst de projectie op de eigenvectoren en berekent vervolgens de genormaliseerde fout in de weer. Deze fout is de anomaliescore. Hoe hoger de fout, hoe afwijkender het exemplaar. Zie Wikipedia: Principal Component Analysis (Analyse van hoofdcomponenten) voor meer informatie over hoe de normale ruimte wordt berekend

Moduleparameters

Naam Type Bereik Optioneel Description Standaard
Trainingsmodus CreateLearnerMode List:Single Parameter| Parameterbereik Vereist Eén parameter Geef opties voor studenten op.

Gebruik de optie SingleParameter om handmatig alle waarden op te geven.

Gebruik de optie ParameterRange om afslbare parameters te doorzoeken.
Aantal onderdelen dat moet worden gebruikt in PCA Geheel getal mode:Enkele parameter 2 Geef het aantal onderdelen op dat moet worden gebruikt in PCA.
Oversampling-parameter voor gerandomiseerde PCA Geheel getal mode:Enkele parameter 2 Geef de nauwkeurigheidsparameter op voor gerandomiseerde PCA-training.
Gemiddelde normalisatie van invoerfunctie inschakelen Logicatype List:True| Valse Vereist Niet waar Geef op of de invoergegevens worden genormaliseerd om nul gemiddelde te hebben.
Bereik voor het aantal PCA-onderdelen ParameterRangeSettings [1;100] modus:Parameterbereik 2; 4; 6; 8; 10 Geef het bereik op voor het aantal onderdelen dat in PCA moet worden gebruikt.
Bereik voor de oversampling-parameter die wordt gebruikt in gerandomiseerde PCA ParameterRangeSettings [1;100] modus:Parameterbereik 2; 4; 6; 8; 10 Geef het bereik op voor de nauwkeurigheidsparameter die wordt gebruikt in gerandomiseerde PCA-training.

Uitvoerwaarden

Naam Type Description
Niet-getraind model ILearner-interface Een ongetraind model voor anomaliedetectie op basis van PCA

Uitzonderingen

Uitzondering Description
Fout 0017 Uitzondering treedt op als voor een of meer opgegeven kolommen type niet wordt ondersteund door de huidige module.
Fout 0062 Uitzondering treedt op wanneer u probeert twee modellen te vergelijken met verschillende typen studenten.
Fout 0047 Uitzondering treedt op als het aantal functiekolommen in sommige gegevenssets die aan de module worden doorgegeven te klein is.

Zie Foutcodes voor een lijst met fouten die specifiek zijn Machine Learning voor Studio-modules (klassiek).

Zie Foutcodes voor een lijst Machine Learning REST API API-uitzonderingen.

Zie ook

One-Class Support Vector Machine