PHP et apprentissage automatique : Comment effectuer la détection des anomalies et le traitement des valeurs aberrantes
Présentation :
Dans le traitement réel des données, des valeurs aberrantes sont souvent rencontrées dans l'ensemble de données. Des valeurs aberrantes peuvent survenir pour diverses raisons, notamment une erreur de mesure, des événements imprévisibles ou des problèmes liés à la source de données. Ces valeurs aberrantes peuvent avoir un impact négatif sur des tâches telles que l'analyse des données, la formation de modèles et la prédiction. Dans cet article, nous présenterons comment utiliser PHP et les techniques d'apprentissage automatique pour la détection des anomalies et la gestion des valeurs aberrantes.
1.1 Méthode Z-Score :
La méthode Z-Score est une méthode de détection d'anomalies basée sur des statistiques, qui détermine en calculant la valeur d'écart de chaque point de données par rapport à la valeur moyenne du ensemble de données Est-ce une valeur aberrante. Les étapes spécifiques sont les suivantes :
L'exemple de code est le suivant :
function zscore($data, $threshold){ $mean = array_sum($data) / count($data); $std = sqrt(array_sum(array_map(function($x) use ($mean) { return pow($x - $mean, 2); }, $data)) / count($data)); $result = []; foreach ($data as $value) { $deviation = ($value - $mean) / $std; if (abs($deviation) > $threshold) { $result[] = $value; } } return $result; } $data = [1, 2, 3, 4, 5, 100]; $threshold = 3; $result = zscore($data, $threshold); echo "异常值检测结果:" . implode(", ", $result);
1.2 Forêt d'isolement :
Isolation Forest est une méthode de détection d'anomalies basée sur des arbres définis, qui détermine l'anomalie des points de données en construisant un arbre binaire divisé de manière aléatoire. Les étapes spécifiques sont les suivantes :
L'exemple de code est le suivant :
require_once('anomaly_detection.php'); $data = [1, 2, 3, 4, 5, 100]; $contamination = 0.1; $forest = new IsolationForest($contamination); $forest->fit($data); $result = $forest->predict($data); echo "异常值检测结果:" . implode(", ", $result);
2.1 Supprimer les valeurs aberrantes :
Une méthode de traitement simple consiste à supprimer directement les valeurs aberrantes. Nous pouvons supprimer les points de données qui dépassent le seuil de l'ensemble de données en fonction des résultats de la détection des anomalies.
L'exemple de code est le suivant :
function removeOutliers($data, $threshold){ $result = []; foreach ($data as $value) { if (abs($value) <= $threshold) { $result[] = $value; } } return $result; } $data = [1, 2, 3, 4, 5, 100]; $threshold = 3; $result = removeOutliers($data, $threshold); echo "异常值处理结果:" . implode(", ", $result);
2.2 Remplacer les valeurs aberrantes :
Une autre approche consiste à remplacer les valeurs aberrantes par des valeurs raisonnables telles que la moyenne ou la médiane. De cette manière, les caractéristiques globales de distribution de l’ensemble de données peuvent être préservées.
L'exemple de code est le suivant :
function replaceOutliers($data, $threshold, $replacement){ $result = []; foreach ($data as $value) { if (abs($value) > $threshold) { $result[] = $replacement; } else { $result[] = $value; } } return $result; } $data = [1, 2, 3, 4, 5, 100]; $threshold = 3; $replacement = 0; $result = replaceOutliers($data, $threshold, $replacement); echo "异常值处理结果:" . implode(", ", $result);
Conclusion :
Dans cet article, nous avons présenté des méthodes de détection des anomalies et de gestion des valeurs aberrantes à l'aide de PHP et de techniques d'apprentissage automatique. Grâce à la méthode Z-Score et à l'algorithme de forêt d'isolation, nous pouvons détecter les valeurs aberrantes et les supprimer ou les remplacer si nécessaire. Ces méthodes peuvent nous aider à nettoyer les données, à améliorer la précision des modèles et à effectuer des analyses et des prédictions de données plus fiables.
L'implémentation complète de l'exemple de code est disponible sur GitHub. J'espère que cet article sera utile à votre étude et à votre pratique.
Référence :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!