Delen via


One-Class Support Vector Machine

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 Support Vector Machine-model van één klasse voor anomaliedetectie

Categorie: Anomaliedetectie

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

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

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module One-Class Support Vector Model in Machine Learning Studio (klassiek) gebruikt om een anomaliedetectiemodel te maken.

Deze module is met name handig in scenario's waarin u veel 'normale' gegevens hebt en niet veel gevallen van de anomalieën die u probeert te detecteren. Als u bijvoorbeeld frauduleuze transacties wilt detecteren, hebt u mogelijk niet veel voorbeelden van fraude die u kunt gebruiken om een typisch classificatiemodel te trainen, maar mogelijk hebt u veel voorbeelden van goede transacties.

U gebruikt de module One-Class Support Vector Model om het model te maken en traint het model vervolgens met behulp van train Anomaly Detection Model. De gegevensset die u gebruikt voor training kan alle of meestal normale gevallen bevatten.

Vervolgens kunt u verschillende metrische gegevens toepassen om mogelijke afwijkingen te identificeren. U kunt bijvoorbeeld een grote gegevensset met goede transacties gebruiken om gevallen te identificeren die mogelijk frauduleuze transacties vertegenwoordigen.

Meer informatie over SVM met één klasse

Support Vector Machines (SVM's) zijn leermodellen onder supervisie waarmee gegevens worden geanalyseerd en patronen worden herkend, en die kunnen worden gebruikt voor zowel classificatie- als regressietaken.

Normaal gesproken krijgt het SVM-algoritme een set trainingsvoorbeelden die zijn gelabeld als behorend bij een van de twee klassen. Een SVM-model is gebaseerd op het opsplitsen van de trainingsvoorbeeldpunten in afzonderlijke categorieën door een zo groot mogelijk hiaat te dichten, terwijl trainingsvoorbeelden die aan de verkeerde kant van de hiaat vallen, worden opgenomen. Het SVM-model doet vervolgens voorspellingen door punten toe te wijzen aan de ene of de andere kant van de hiaat.

Soms wordt oversampling gebruikt om de bestaande voorbeelden te repliceren, zodat u een model met twee klassen kunt maken, maar het is niet mogelijk om alle nieuwe patronen van fraude of systeemfouten te voorspellen vanuit beperkte voorbeelden. Bovendien kan het verzamelen van zelfs beperkte voorbeelden kostbaar zijn.

Daarom wordt het support vector model in een SVM met één klasse getraind op gegevens die slechts één klasse hebben, wat de 'normale' klasse is. Er worden de eigenschappen van normale cases af afleiden en op deze eigenschappen kan worden voorspeld welke voorbeelden in tegenstelling tot de normale voorbeelden zijn. Dit is handig voor anomaliedetectie, omdat het gebrek aan trainingsvoorbeelden definieert wat afwijkingen definieert: dat wil zeggen dat er meestal maar weinig voorbeelden zijn van binnendringing in het netwerk, fraude of ander afwijkende gedrag.

Zie de sectie Technische notities voor meer informatie, inclusief koppelingen naar basisonderzoek.

Notitie

De module One-Class Support Vector Model maakt een kernel-SVM-model, wat betekent dat het niet erg schaalbaar is. Als de training tijd beperkt is of als u te veel gegevens hebt, kunt u andere methoden gebruiken voor anomaliedetecties, zoals op PCA gebaseerde anomaliedetectie.

Een SVM One-Class configureren

  1. Voeg de module One-Class Support Vector Model toe aan uw experiment in Studio (klassiek). U vindt de module onder Machine Learning : Initialiseren, in de categorie Anomaliedetectie.

  2. Dubbelklik op de module One-Class Support Vector Model om het deelvenster Eigenschappen te openen.

  3. Selecteer in de modus Trainer maken een optie die aangeeft hoe het model moet worden getraind:

    • Eén parameter: gebruik deze optie als u weet hoe u het model wilt configureren en een specifieke set waarden als argumenten wilt opgeven.

    • Parameterbereik: gebruik deze optie als u niet zeker bent van de beste parameters en een parameteropruiming wilt uitvoeren om de optimale configuratie te vinden.

  4. η: typ een waarde die de bovengrens voor de fractie van uitbijten vertegenwoordigt. Deze parameter komt overeen met de nu-eigenschap die in dit artikel wordt beschreven. Met de nu-eigenschap kunt u het verschil tussen uitbijten en normale gevallen bepalen.

  5. ε (epsilon): typ een waarde die moet worden gebruikt als de stoptolerantie. De stoptolerantie is van invloed op het aantal iteraties dat wordt gebruikt bij het optimaliseren van het model en is afhankelijk van de waarde van het stopcriterium. Wanneer de waarde wordt overschreden, stopt de oefender met het itereren van een oplossing.

  6. Verbinding maken een 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 gebruikt 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 overal in het bereik gebruikt, zelfs als andere parameters worden gewijzigd binnen een bereik van waarden.

  7. Voer het experiment uit.

Resultaten

De module retourneert een getraind anomaliedetectiemodel. U kunt het model opslaan in uw werkruimte of u kunt de module Score Model verbinden en het getrainde model gebruiken om mogelijke afwijkingen te detecteren.

Als u het model hebt getraind met behulp van een parameteropruiming, noteert u de optimale parameterinstellingen die u kunt gebruiken bij het configureren van een model voor gebruik in productie.

Voorbeelden

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

  • Anomaliedetectie: Kredietrisico: In dit voorbeeld ziet u hoe u uitbijten in gegevens kunt vinden met behulp van een parameter-opsporing om het optimale model te vinden. Vervolgens wordt dat model toegepast op nieuwe gegevens om riskante transacties te identificeren die mogelijk fraude vertegenwoordigen, waarbij twee verschillende anomaliedetectiemodellen worden vergeleken.

Technische opmerkingen

Voorspellingen van de SVM met één klasse zijn niet-gecalibreerde scores die mogelijk niet-gebonden zijn. Zoals het voorbeeld in Cortana Intelligence Gallery laat zien, moet u scores normaliseren als u modellen vergelijkt op basis van verschillende algoritmen.

Onderzoek

Deze implementatie verpakt de bibliotheek voor support vector machines met de naam libsvm. De algemene theorie waarop is libsvm gebaseerd en de benadering van support vector machines met één klasse wordt beschreven in deze documenten door B. Schӧlkopf et al.

Moduleparameters

Naam Type Bereik Optioneel Description Standaard
De modus voor het maken van een docent Oefenmodus maken List:Single Parameter| Parameterbereik Vereist Eén parameter Geef opties voor lerenden op.

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

Gebruik de optie ParameterRange om afslbare parameters te vegen.
nu Float >= dubbel. Epsilon mode:Enkele parameter 0,1 Deze parameter (vertegenwoordigd door de Grieks letter nu) bepaalt de balans tussen de fractie van uitbijers en het aantal support vectoren.
Epsilon Float >= dubbel. Epsilon mode:Enkele parameter 0,001 Hiermee geeft u de stoptolerantie.
psnu ParameterRangeSettings [0.001;1.0] mode:Parameterbereik 0.001; 0.01; 0.1 Hiermee geeft u het bereik op voor het verschil tussen de fractie van uitbijten en het aantal support vectoren.
psEpsilon ParameterRangeSettings [1e-6;1.0] mode:Parameterbereik 0.001; 0.01; 0.1 Hiermee geeft u het bereik voor het stoppen van tolerantie.

Uitvoerwaarden

Naam Type Description
Niet-getraind model ILearner-interface Een ongetraind anomaliedetectiemodel

Zie ook

Classificatie
Anomaliedetectiemodel trainen