Datensätze und Evaluation
Datensätze
Die Daten bestehen aus Datensätzen von drei Windparks und enthalten 10-minütige Zeitreihen von Sensormesswerten und Status-IDs. Die Daten sind in Trainings- und Auswertungsdatensätze unterteilt. Zusätzlich zu den Betriebsdaten stellen wir Ereignisinformationen für die Trainingsdaten zur Verfügung, d.h. ob der Vorhersagezeitraum Anomalien enthält, die zu einem Ausfall oder einer Wartungsmaßnahme führen, oder ob er nur normales Verhalten enthält.
Für jeden Windpark gibt es mehrere Datensätze, die kontinuierliche multivariate Zeitreihen einer Windkraftanlage enthalten. Diese Datensätze enthalten sowohl Trainingsdaten (ein Jahr vor dem Testzeitraum) als auch die Vorhersagedaten (angegeben durch die Spalte train_test). Die Sensormessungen sind 10-Minuten-Mittelwerte, Minima, Maxima und Standardabweichungen von SCADA-Variablen. Die Status-ID gibt an, ob die Windkraftanlage im Normalbetrieb, im Leerlauf usw. war:
Statustyp ID | Statustyp | Beschreibung | als normal erachtet |
0 | Normal operation | Normalbetrieb ohne Einschränkungen | True |
1 | Derated operation | Abgeregelte Leistungsgenerierung mit einer Einschränkung der Leistung | False |
2 | Idling | Anlage im Leerlauf und wartet auf Inbetriebnahme | True |
3 | Service | Anlage im Wartungsmodus / Wartungsteam vor Ort | False |
4 | Downtime | Anlage ist außer Betrieb wegen Fehlers oder anderer Gründe | False |
5 | Other | Andere Betriebszustände | False |
Beachten Sie, dass die Statuswerte inkonsistent sein können; oft wird der Status nur gesendet, wenn er sich ändert, was bei einem kurzen Kommunikationsfehler fehlschlagen kann. Es ist daher ratsam, zusätzlich zu den Statuswerten die Werte für Leistung und Windgeschwindigkeit zu überprüfen, um festzustellen, ob die Turbine tatsächlich normal funktioniert hat.
Da wir wollen, dass die Modelle Anomalien mit möglichst wenigen Fehlalarmen erkennen, enthalten die Datensätze sowohl anormale als auch „normale“ Ereignisse, was bedeutet, dass der Vorhersagezeitraum nur normales Verhalten enthalten kann.
Aufgabe
Die Aufgabe besteht darin vorherzusagen, ob in den Vorhersagedaten der Auswertungsdateien Anomalien vorhanden sind, die auf einen Ausfall hindeuten, und zwar so früh wie möglich und mit so wenig Fehlalarmen wie möglich.
Um Ihr(e) Modell(e) zu validieren, sind Ereignisinformationen für die Trainingsdaten verfügbar. Dazu gehören die folgenden Informationen:
- event_id: ID des Ereignisses
- event_label: gibt an, ob dieses Ereignis Anomalien enthält, die zu einem Fehler führen
- event_start: Start-Zeitstempel des Ereignisses
- event_end: Ende des Ereignisses
- event_start_id: ID des Start-Zeitstempels des Ereignisses
- event_end_id: ID des End-Zeitstempels des Ereignisses
- description: kurze Beschreibung des Fehlers, falls vorhanden
Dateien
Alle Daten sind im Verzeichnis „data“ enthalten. Für jeden der drei Windparks Windpark A, Windpark B und Windpark C gibt es eine unterschiedliche Anzahl an Datensätzen.
Jeder Windpark hat sein eigenes Verzeichnis, in dem die Dateistruktur wie folgt aussieht:
- Wind Farm A:
- evaluation
- <event_id>.csv
- …
- <event_id>.csv
- Train
- <event_id>.csv
- …
- <event_id>.csv
- event_info.csv
- feature_description.csv
- evaluation
Zusätzlich stellen wir ein Quick-Start-Jupyter-Notebook zur Verfügung, das Beispiele für das Laden von Daten, die Datenexploration, das Trainieren von Modellen und eine auf den Trainingsdaten basierende Auswertung zeigt.
Datasets
Die Verzeichnisse (evaluation) und (train) enthalten jeweils Daten für verschiedene Ereignisse, welche vorhergesagt werden sollen. Jede csv-Datei mit Ereignisdaten enthält Zeitreihen einer Windkraftanlage, die sowohl Trainings- als auch Vorhersagedaten enthalten (gekennzeichnet durch die Spalte „train_test“). Die Datensätze sind alle hochdimensional mit 80, 250 oder 950 Merkmalen (je nach Anlagentyp). Die Vorhersagedaten enthalten das zu prognostizierende Ereignis. Zusätzlich zu den Merkmalen, die in 10-Minuten-Minuten, Max-Minuten, Durchschnittswerten und Standardwerten der Sensormessungen angegeben sind, gibt es Spalten für die Status-ID (status_type_id), die Anlagen-ID (asset ID), den Zeitstempel (time_stamp) und eine Zeilen-ID (id). Die Sensordaten und Zeitstempel sind anonymisiert.
Event information
Für jeden Windpark gibt es eine csv-Datei mit Ereignisinformationen (‚event_info.csv‘). Diese Datei enthält zusätzliche Informationen zu allen Ereignissen im Verzeichnis „train“. Sie enthält die Spalten „event_id“ (Dateiname des Datensatzes, der das Ereignis enthält), „event_label“ (entweder normal oder anomal), „event_start“, „event_end“, „event_start_id“, „event_end_id“ und „event_description“.
Feature description
Die Merkmale in den <event id>.csv-Dateien werden in der ‚feature-description.csv‘-datei beschrieben. Diese enthält eine kurze Beschreibung für jedes Merkmal.
Auswertung
Für die Auswertung des Ringversuchs werden die Dateien im ‚Evaluation‘-Ordner verwendet. Alle Vorhersagen aus den Auswertungsdatensätzen sollten in einer Ergebnisdatei gesammelt werden.
Um die Ergebnisse auszuwerten, wird die Grundwahrheit (ground truth) für jedes Ereignis wie folgt definiert:
- Nur Zeitstempel mit normalem Betriebsmodus (d. h. Status-Type-ID gleich 0 oder 2) werden berücksichtigt.
- Zeitstempel werden für anormale Ereignisse zwischen Start des Ereignisses (event_start) und dem Ende des Ereignisses (event_end) mit True gekennzeichnet.
- Alle anderen Zeitstempel werden anhand der Status-Type-ID gekennzeichnet (s. Spalte ‚als normal erachtet‘ ).
Der finale Score basiert auf unserer Vorstellung von der perfekten Anomalieerkennung: Ein perfektes Anomalieerkennungssystem, erkennt alle Anomalien so früh wie möglich und mit so wenig Fehlalarmen wie möglich.
Darum errechnet sich der finale Score aus dem Durchschnitt der folgenden 4 Teil-Scores:
- F-Beta-Score (FBeta)
Berechnet den F-beta-Score nach sklearn.metrics.fbeta_score für eine gegebene Vorhersage und Grundwahrheit zu jedem Anomalieereignis, mit beta=0.5. Der F-Beta-Score misst die Klassifikationsleistung des Modells auf den Datensätzen, welche eine Anomalie enthalten. - Genauigkeit (Acc)
Berechnet die Klassifikationsgenauigkeit nach sklearn.metrics.accuracy_score für eine gegebene Vorhersage und Grundwahrheit zu jedem normalen Ereignis. Die Genauigkeit misst die Fähigkeit des Modells Normalverhalten auch als solches zu erkennen und möglichst wenig Fehlalarme auszugeben. - Eventwise F-Score (EFS)
Um die Leistung des Models im Kontext eines echten Operativsystems zu messen, wird basierend auf einem maximalen Kritikalitätswert entschieden, ob die Vorhersage des Modells als Anomalie oder als Normales Verhalten eingestuft werden soll. Die Kritikalität ist ein Wert, der für jeden Zeitstempel berechnet wird und bei 0 startet. Für jede erkannte Anomalie während eines normalen Status’ wird die Kritikalität um 1 erhöht und falls keine Anomalie bei normalem Status erkannt wird, sinkt sie um 1. Falls der Status nicht normal ist, bleibt die Kritikalität konstant. Wenn der maximale Wert der Kritikalität auf einem Datensatz größer oder gleich 72 ist (das entspricht 12 Stunden an aufeinanderfolgenden Anomalien), dann wir diese Vorhersage als Anomalie gewertet. Falls die maximale Kritikalität unter 72 liegt, gilt die Vorhersage als normal. Der Eventwise F-Score ist der F-Beta-Score nach sklearn.metrics.fbeta_score bezüglich der Vorhersagen von anormalen und normalen Ereignissen unter Verwendung der vordefinierten (dem Teilnehmer unbekannten) Ereignis-Labels (event labels) als Grundwahrheit. - Weighted Score (WS)
Der gewichtete Score (weighted score) weist Anomalien, welche in der ersten Hälfte eines anormalen Ereignisses entdeckt werden, ein höheres Gewicht zu, als Anomalien, die gegen Ende des Ereignisses entdeckt werden. Der WS ist die normalisierte gewichtete Summe aller korrekt erkannten Anomalie-Zeitstempel, geteilt durch die Gesamtzahl der Anomalie-Zeitstempel basierend auf der Grundwahrheit des Ereignisses. Dieser Wert wird nur für anormale Ereignisse berechnet und misst die Fähigkeit des Modells Anomalien möglichst früh zu erkennen.
Der finale Score ist die normierte Summe aus der durchschnittlichen Acc für alle normalen Ereignisse (Accaverage), den durchschnittlichen FBeta und WS für alle anormalen Ereignisse (Fbetaaverage und WSaverage), sowie dem EFS über alle Ereignisse:
Final Score = 1/5(Fbetaaverage + 2*Accaverage + EFS + WSaverage)
Die Genauigkeit wird hierbei doppelt gewichtet, um den Einfluss der normalen Ereignisse auf den final Score mit dem der Anomalieereignissen gleichzusetzen.