Heim > Backend-Entwicklung > PHP-Tutorial > PHP und maschinelles Lernen: So erkennen Sie Anomalien anhand von Zeitreihendaten

PHP und maschinelles Lernen: So erkennen Sie Anomalien anhand von Zeitreihendaten

PHPz
Freigeben: 2023-07-29 10:14:01
Original
1154 Leute haben es durchsucht

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],
    // 其他日期的销售量数据...
];
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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.";
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage