PHP und maschinelles Lernen: So führen Sie eine Anomalieerkennung für Zeitreihendaten durch.
Einführung:
Im heutigen datengesteuerten Zeitalter müssen immer mehr Organisationen und Unternehmen Zeitreihendaten verarbeiten und analysieren. Zeitreihendaten sind in zeitlicher Reihenfolge angeordnete Daten, die eine Reihe von Beobachtungen oder Messungen enthalten. Die Erkennung von Anomalien in Zeitreihendaten ist eine wichtige Aufgabe, die Organisationen und Unternehmen dabei helfen kann, abnormales Verhalten in Daten zu erkennen und rechtzeitig Maßnahmen zu ergreifen. In diesem Artikel wird die Verwendung von PHP und maschineller Lerntechnologie zur Anomalieerkennung von Zeitreihendaten vorgestellt.
1. Daten vorbereiten
Bevor wir mit der Anomalieerkennung beginnen, müssen wir zunächst Zeitreihendaten vorbereiten. Angenommen, wir haben einen Datensatz, der tägliche Verkäufe aufzeichnet, können wir Verkäufe als Zeitreihendaten zur Anomalieerkennung verwenden. Das Folgende ist ein Beispieldatensatz:
$dateSales = [ ['2019-01-01', 100], ['2019-01-02', 120], ['2019-01-03', 80], ['2019-01-04', 90], ['2019-01-05', 110], // 其他日期的销售量数据... ];
2. Datenvorverarbeitung
Bevor wir mit der Anomalieerkennung beginnen, müssen wir die Daten vorverarbeiten. Zunächst wandeln wir das Datum in einen Zeitstempel zur Verarbeitung mithilfe von Algorithmen für maschinelles Lernen um. Als Nächstes normalisieren wir die Verkaufsdaten und skalieren sie auf einen kleineren Bereich, um die Auswirkungen von Unterschieden zwischen Merkmalswerten auf die Anomalieerkennung zu vermeiden. Das Folgende ist ein Codebeispiel für die Datenvorverarbeitung:
// 将日期转换为时间戳 foreach ($dateSales as &$data) { $data[0] = strtotime($data[0]); } // 对销售量数据进行归一化处理 $sales = array_column($dateSales, 1); $scaledSales = []; $minSales = min($sales); $maxSales = max($sales); foreach ($sales as $sale) { $scaledSales[] = ($sale - $minSales) / ($maxSales - $minSales); }
3. Auswahl des Anomalieerkennungsalgorithmus
Bevor wir die Anomalieerkennung für Zeitreihendaten durchführen, müssen wir einen geeigneten Algorithmus für maschinelles Lernen auswählen. Zu den häufig verwendeten Algorithmen zur Erkennung von Zeitreihenanomalien gehören statistikbasierte Methoden, Clustering-basierte Methoden und Deep-Learning-basierte Methoden. In diesem Artikel verwenden wir den ARIMA-Algorithmus (Autoregressive Moving Average Model) zur Anomalieerkennung.
4. Verwenden Sie den ARIMA-Algorithmus zur Anomalieerkennung.
Der ARIMA-Algorithmus ist ein Algorithmus, der häufig in der Zeitreihendatenanalyse verwendet wird. In PHP können wir die Funktion arima in der Statistikbibliothek verwenden, um den ARIMA-Algorithmus zu implementieren. Das Folgende ist ein Codebeispiel für die Anomalieerkennung mithilfe des ARIMA-Algorithmus:
$data = new StatsTimeSeries($scaledSales); // Fit the model $arima = StatsARIMA::fit($data); // Predict the next data point $prediction = $arima->predict(); // Calculate the residual error $residual = $data->last() - $prediction; // Set a threshold for anomaly detection $errorThreshold = 0.05; if (abs($residual) > $errorThreshold) { echo "Anomaly detected!"; } else { echo "No anomaly detected."; }
Im obigen Codebeispiel verwenden wir zunächst die TimeSeries-Klasse und die ARIMA-Klasse aus der Statistikbibliothek, um das Modell zu initialisieren und anzupassen. Anschließend sagen wir den nächsten Datenpunkt voraus und berechnen den Restfehler. Schließlich legen wir einen Schwellenwert für die Anomalieerkennung fest. Wenn der Restfehler den Schwellenwert überschreitet, liegt eine Anomalie vor.
Fazit:
In diesem Artikel wird die Verwendung von PHP und maschineller Lerntechnologie zur Anomalieerkennung von Zeitreihendaten vorgestellt. Wir haben zunächst die Zeitreihendaten vorbereitet und diese dann vorverarbeitet. Als nächstes haben wir den ARIMA-Algorithmus ausgewählt und die Anomalieerkennung mithilfe der Arima-Funktion in der Statistikbibliothek implementiert. Durch die Schwellenwertberechnung des Vorhersagefehlers können wir feststellen, ob eine Anomalie vorliegt. Ich hoffe, dass dieser Artikel den Lesern helfen kann, Anomalieerkennungsmethoden für Zeitreihendaten zu verstehen und anzuwenden.
Das Codebeispiel stammt aus der PHP-Zeitreihen-Datenanalysebibliothek stats. Bitte installieren Sie die Bibliothek selbst, um die Code-Implementierung abzuschließen.
Das obige ist der detaillierte Inhalt vonPHP und maschinelles Lernen: So erkennen Sie Anomalien anhand von Zeitreihendaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!