PCA-basierte Anomalieerkennung
Wichtig
Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.
Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.
- Siehe Migrieren zu Azure Machine Learning
- Weitere Informationen zu Azure Machine Learning.
Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.
Erstellt ein Modell zur Erkennung von Anomalien mithilfe der Hauptkomponentenanalyse.
Kategorie: Anomalieerkennung
Hinweis
Gilt für: Machine Learning Studio (klassisch)
Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.
Modulübersicht
In diesem Artikel wird beschrieben, wie Sie das Modul PCA-basierte Anomalieerkennung in Machine Learning Studio (klassisch) verwenden, um ein Anomalieerkennungsmodell basierend auf der Prinzipalkomponentenanalyse (Principal Component Analysis, PCA) zu erstellen.
Dieses Modul unterstützt Sie beim Erstellen eines Modells in Szenarien, in denen es einfach ist, Trainingsdaten aus einer Klasse zu erhalten, z. B. gültige Transaktionen, aber schwierig ist, ausreichende Stichproben der zielorientierten Anomalien zu erhalten.
Um beispielsweise betrügerische Transaktionen zu erkennen, verfügen Sie häufig nicht über genügend Beispiele für Betrug, um sich weiter zu trainieren, sondern viele Beispiele für gute Transaktionen. Das Modul PCA-basierte Anomalieerkennung löst das Problem, indem verfügbare Features analysiert werden, um zu bestimmen, was eine "normale" Klasse darstellt, und Entfernungsmetriken anwenden, um Fälle zu identifizieren, die Anomalien darstellen. Dadurch können Sie ein Modell mit vorhandenen unausgeglichenen Daten trainieren.
Weitere Informationen zur Hauptkomponentenanalyse
Die Prinzipalkomponentenanalyse, die häufig als PCA abgekürzt wird, ist ein bewährtes Verfahren beim maschinellen Lernen. PCA wird häufig bei der explorativen Datenanalyse verwendet, da diese Technik die innere Struktur der Daten aufzeigt und die Varianz in den Daten erklärt.
Die PCA analysiert Daten, die mehrere Variablen enthalten. Sie sucht nach Korrelationen zwischen den Variablen und bestimmt die Kombination von Werten, die die Unterschiede in den Ergebnissen am besten erfasst. Diese kombinierten Merkmalswerte werden verwendet, um einen kompakteren Merkmalsraum zu schaffen, der als Hauptkomponenten bezeichnet wird.
Für die Anomalieerkennung wird jede neue Eingabe analysiert, und der Anomalieerkennungsalgorithmus berechnet seine Projektion auf den Eigenvektoren zusammen mit einem normalisierten Fehler bei der Erkennung. Dieser normalisierte Fehler wird als Anomalieergebnis verwendet. Je höher der Fehler, desto anomaler ist die Instanz.
Weitere Informationen zur Funktionsweise der PCA und zur Implementierung für die Anomalieerkennung finden Sie in den folgenden Whitepapers:
Ein zufälliger Algorithmus für die Prinzipalkomponentenanalyse. Rokhlin, Szlan und Tygert
Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions (Finding Structure with Randomness: Probabilistic Algorithms for Constructing Approximate Matrix Decompositions (PDF-Download)). Halko, Martinsson und Tropp.
Konfigurieren der PCA-Anomalieerkennung
Fügen Sie Ihrem Experiment in Studio (klassisch) das Modul PCA-basierte Anomalieerkennung hinzu. Sie finden dieses Modul unter Machine Learning Initialize Model (Modell initialisieren) in der Kategorie Anomalieerkennung.
Klicken Sie im Bereich Eigenschaften für das Modul PCA-basierte Anomalieerkennung auf die Option Trainingsmodus, und geben Sie an, ob Sie das Modell mit einem bestimmten Parametersatz trainieren oder einen Parameter-Sweep verwenden möchten, um die besten Parameter zu finden.
Single Parameter (Einzelner Parameter): Wählen Sie diese Option, wenn Sie wissen, wie Sie das Modell konfigurieren möchten, und geben Sie einen bestimmten Satz von Werten als Argumente an.
Parameterbereich: Wählen Sie diese Option aus, wenn Sie sich mit den besten Parametern nicht sicher sind und mithilfe des Moduls Tune Model Hyperparameters einen Parameter-Sweep verwenden möchten. Der Trainer durch iteriert einen Bereich von Einstellungen, die Sie angeben, und bestimmt die Kombination der Einstellungen, die die optimalen Ergebnisse liefern.
Anzahl der komponenten, die in der PCA verwendet werden, Bereich für die Anzahl der PCA-Komponenten: Geben Sie die Anzahl der Ausgabefeatures oder Komponenten an, die Ausgegeben werden soll.
Die Entscheidung, wie viele Komponenten enthalten sein müssen, ist ein wichtiger Teil des Experimententwurfs mit PCA. Als allgemeine Richtlinie gilt, dass Sie nicht die gleiche Anzahl von PCA-Komponenten einbeziehen sollten, wie es Variablen gibt. Stattdessen sollten Sie mit einer kleineren Anzahl von Komponenten beginnen und diese erhöhen, bis einige Kriterien erfüllt sind.
Wenn Sie sich nicht sicher sind, was der optimale Wert sein könnte, wird empfohlen, das Anomalieerkennungsmodell mithilfe der Option Parameterbereich zu trainieren.
Die besten Ergebnisse werden erzielt, wenn die Anzahl der Ausgabekomponenten weniger als die Anzahl der im Dataset verfügbaren Merkmalsspalten beträgt.
Geben Sie den Betrag der Überquotierung an, die während des PCA-Trainings in Zufallsreihenfolge durchgeführt werden soll. Bei Problemen mit der Erkennung von Anomalien erschweren unausgeglichene Daten die Anwendung von standardmäßigen PCA-Techniken. Durch die Angabe eines gewissen Betrags an Überquotierung können Sie die Anzahl der Zielinstanzen erhöhen.
Wenn Sie 1 angeben, wird keine Überquotierung durchgeführt. Wenn Sie einen höheren Wert als 1 angeben, werden zusätzliche Beispiele generiert, die beim Training des Modells verwendet werden.
Es gibt zwei Optionen, je nachdem, ob Sie einen Parameter-Sweep verwenden oder nicht:
- Oversampling parameter for randomized PCA (Parameter für Überquotierung für PCA in Zufallsreihenfolge) : Geben Sie eine einzelne ganze Zahl ein, die das Verhältnis der Überquotierung der Minderheitsklasse zur normalen Klasse darstellt. (Verfügbar bei Verwendung der Trainingsmethode für einzelne Parameter.)
- Bereich für den Oversamplingparameter, der in zufälliger PCA verwendet wird: Geben Sie eine Reihe von zu testenden Zahlen ein, oder verwenden Sie den Bereichs-Generator, um Werte mithilfe eines Schiebereglers auszuwählen. (Nur verfügbar, wenn die Trainingsmethode Parameterbereich verwendet wird.)
Hinweis
Sie können das übersampelte DataSet nicht anzeigen. Weitere Informationen zur Verwendung von Oversampling mit PCA finden Sie unter Technische Hinweise.
Enable input feature mean normalization (Eingabefunktion für mittlere Normalisierung aktivieren): Wählen Sie diese Option aus, um alle Eingabefeatures auf einen Mittelwert von 0 (null) zu normalisieren. Eine Normalisierung oder Skalierung auf Null wird im Allgemeinen für die PCA empfohlen, da das Ziel der PCA darin besteht, die Varianz zwischen den Variablen zu maximieren.
Diese Option ist standardmäßig aktiviert. Deaktivieren Sie diese Option, wenn Werte bereits mit einer anderen Methode oder Skalierung normalisiert wurden.
Verbinden ein markiertes Trainings-Dataset und eines der Trainingsmodule:
- Wenn Sie die Option Create trainer mode (Trainermodus erstellen) auf Single Parameter (Einzelner Parameter) festlegen, müssen Sie das Modul Train Anomaly Detection Model (Modell für die Anomalieerkennung trainieren) verwenden.
- Wenn Sie die Option Create trainer mode (Trainermodus erstellen) auf Parameter Range (Parameterbereich) festlegen, verwenden Sie das Modul Tune Model Hyperparameters (Optimieren von Modell hyperparameters ).
Hinweis
Wenn Sie einen Parameterbereich an Train Anomaly Detection Model übergeben, wird nur der erste Wert in der Parameterbereichsliste verwendet.
Wenn Sie einen einzelnen Satz von Parameterwerten an das Modul Tune Model Hyperparameters übergeben, ignoriert es die Werte und verwendet die Standardwerte für den Learner, wenn es einen Bereich von Einstellungen für jeden Parameter erwartet.
Wenn Sie die Option Parameterbereich auswählen und einen einzelnen Wert für einen parameter eingeben, wird dieser einzelne Wert während des Sweeps verwendet, auch wenn sich andere Parameter über einen Wertebereich hinweg ändern.
Führen Sie das Experiment aus, oder wählen Sie das Modul aus, und klicken Sie auf Ausgewählte ausführen.
Ergebnisse
Nach Abschluss des Trainings können Sie entweder das trainierte Modell speichern oder es mit dem Modul Score Model verbinden, um Anomalieergebnisse vorherzusagen.
Zum Auswerten der Ergebnisse eines Anomalieerkennungsmodells sind einige zusätzliche Schritte erforderlich:
Sicherstellen, dass eine Bewertungsspalte in beiden Datasets verfügbar ist
Wenn Sie versuchen, ein Anomalieerkennungsmodell zu bewerten und den Fehler "Es ist keine Bewertungsspalte im bewerteten Dataset zu vergleichen" zu erhalten, bedeutet dies, dass Sie ein typisches Auswertungs-Dataset verwenden, das eine Bezeichnungsspalte, aber keine Wahrscheinlichkeitsbewertungen enthält. Sie müssen ein Dataset auswählen, das der Schemaausgabe für Anomalieerkennungsmodelle entspricht, das eine Spalte Scored Labels und Scored Probabilities enthält .
Sicherstellen, dass Bezeichnungsspalten markiert sind
Manchmal werden die der Bezeichnungsspalte zugeordneten Metadaten im Experimentdiagramm entfernt. Wenn Sie in diesem Fall das Modul Evaluate Model verwenden, um die Ergebnisse von zwei Anomalieerkennungsmodellen zu vergleichen, erhalten Sie möglicherweise den Fehler "Es gibt keine Bezeichnungsspalte im bewerteten Dataset" oder "Es gibt keine Bezeichnungsspalte im bewerteten Dataset, das verglichen werden soll".
Sie können diesen Fehler vermeiden, indem Sie das Modul Edit Metadata vor dem Modul Evaluate Model hinzufügen. Verwenden Sie die Spaltenauswahl, um die Klassenspalte auszuwählen, und wählen Sie in der Dropdownliste Felder die Option Bezeichnung aus.
Normalisieren von Bewertungen aus verschiedenen Modelltypen
Vorhersagen aus dem PCA-Anomalieerkennungsmodell liegen immer im Bereich [0,1]. Im Gegensatz dazu handelt es sich bei der Ausgabe des SVM-Moduls mit einer Klasse um nicht gewertete Bewertungen, die möglicherweise ungebunden sind.
Daher müssen Sie beim Vergleichen von Modellen, die auf verschiedenen Algorithmen basieren, die Bewertungen immer normalisieren. Ein Beispiel für die Normalisierung Azure KI-Katalog verschiedenen Anomalieerkennungsmodellen finden Sie im Beispiel in der Azure KI-Katalog-
Beispiele
Beispiele für die Verwendung der PCA bei der Anomalieerkennung finden Sie im Azure KI-Katalog:
- Anomalieerkennung: Kreditrisiko: Veranschaulicht das Aufspüren von Ausreißern in Daten. In diesem Beispiel wird ein Parameter-Sweep verwendet, um das optimale Modell zu finden. Anschließend wird dieses Modell auf neue Daten angewendet, um riskante Transaktionen zu identifizieren, die betrugsgefährdende Transaktionen darstellen können. Dabei werden zwei verschiedene Anomalieerkennungsmodelle verglichen.
Technische Hinweise
Dieser Algorithmus verwendet PCA, um den Teilbereich mit der normalen Klasse zu ungefähren. Der Teilbereich wird von Eigenvektoren umfasst, die mit den oberen Eigenwerten der Datenkovarianzmatrix verknüpft sind. Für jede neue Eingabe berechnet die Anomalieerkennung zuerst die Projektion auf die Eigenvektoren und dann den normalisierten Rekonstruktionsfehler. Dieser Fehler ist das Anomalieergebnis. Je höher der Fehler, desto anomaler ist die Instanz. Ausführliche Informationen zur Berechnung des normalen Speicherplatzes finden Sie unter Wikipedia: Principal Component Analysis (Wikipedia: Prinzipalkomponentenanalyse).
Modulparameter
Name | Typ | Range | Optional | BESCHREIBUNG | Standard |
---|---|---|---|---|---|
Training mode | CreateLearnerMode | List:Single Parameter|Parameter Range | Erforderlich | Einzelner Parameter | Geben Sie Optionen für das Lernmodul an. Verwenden Sie die Option SingleParameter, um alle Werte manuell anzugeben. Mit der Option ParameterRange können Sie verschiedene einstellbare Parameter ausprobieren (Sweeping). |
Number of components to use in PCA | Integer | mode:Single Parameter | 2 | Geben Sie die Anzahl der Komponenten zur Verwendung in der PCA an. | |
Oversampling parameter for randomized PCA | Integer | mode:Single Parameter | 2 | Geben Sie den Genauigkeitsparameter für randomisiertes PCA-Training an. | |
Enable input feature mean normalization | Logic Type | List:True|False | Erforderlich | False | Geben Sie an, ob die Eingabedaten so normalisiert werden sollen, dass sie den Mittelwert null (0) aufweisen. |
Range for number of PCA components | ParameterRangeSettings | [1;100] | mode:Parameter Range | 2; 4; 6; 8; 10 | Geben Sie den Bereich für die Anzahl von Komponenten zur Verwendung in PCA an. |
Range for the oversampling parameter used in randomized PCA | ParameterRangeSettings | [1;100] | mode:Parameter Range | 2; 4; 6; 8; 10 | Geben Sie den Bereich für den Genauigkeitsparameter an, der im randomisierten PCA-Training verwendet wird. |
Ausgaben
Name | Type | BESCHREIBUNG |
---|---|---|
Untrainiertes Modell | ILearner-Schnittstelle | Ein untrainiertes PCA-basiertes Modell zur Erkennung von Anomalien |
Ausnahmen
Ausnahme | Beschreibung |
---|---|
Fehler 0017 | Die Ausnahme tritt auf, wenn eine oder mehrere angegebene Spalten einen Typ aufweisen, der im aktuellen Modul nicht unterstützt wird. |
Fehler 0062 | Eine Ausnahme tritt bei dem Versuch auf, zwei Modelle mit unterschiedlichen Learnertypen zu vergleichen. |
Fehler 0047 | Eine Ausnahme tritt auf, wenn die Anzahl der Featurespalten in einigen der an das Modul übergebenen Datasets zu klein ist. |
Eine Liste der Fehler, die für Studio-Module (klassisch) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.
Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.