Ich arbeite an einem Projekt zur Erkennung von Kraftstoffdiebstahl und Tankvorgängen anhand verrauschter Sensordaten mithilfe von ML.NET. Die Sensordaten umfassen zeitgestempelte Kraftstoffstand- und Geschwindigkeitswerte, enthalten jedoch häufig Rauschen, was den Erkennungsprozess zu einer Herausforderung macht.
Ich implementieren einen Spitzenerkennungsalgorithmus mithilfe der von ML.NET bereitgestellten DetectSpikeBySsa-Methode . Unten ist eine vereinfachte Version meines Codes:
public static void DetectSpikeBySsa(IReadOnlyList data
, double confidence
, int pvalueHistoryLength
, int trainingWindowSize
, int seasonalityWindowSize)
{
var context = new MLContext();
var dataView = context.Data.LoadFromEnumerable(data);
var pipeline = context.Transforms.DetectSpikeBySsa(
outputColumnName: nameof(AnomalyPrediction.Prediction)
, inputColumnName: nameof(SensorData.Value)
, confidence: confidence // 99.0
, pvalueHistoryLength: pvalueHistoryLength // data.Count / 2
, trainingWindowSize: trainingWindowSize // data.Count
, seasonalityWindowSize: seasonalityWindowSize // data.Count / 4);
var model = pipeline.Fit(dataView);
var transformedData = model.Transform(dataView);
List results = [];
var predictions = context.Data.CreateEnumerable(transformedData, reuseRowObject: false).ToList();
for (int i = 0; i < predictions.Count; i++)
{
var sensorData = data[i];
var prediction = predictions[i];
var isAnomaly = prediction.Prediction[0] is 1;
Console.WriteLine($"{prediction.Prediction[0]}\t {prediction.Prediction[1]:f2} \t {prediction.Prediction[2]:f2}");
results.Add(new AnomalyDetectionResult
{
IsAnomaly = isAnomaly,
Value = sensorData.Value,
Speed = sensorData.Speed,
Timestamp = sensorData.Timestamp
});
if (!isAnomaly)
{
// Todo
}
}
}
Das Ziel besteht darin:
Kraftstoffdiebstahl als plötzlichen Abfall des Kraftstoffstands zu erkennen .
Erkennen Sie die Kraftstofffüllung als plötzlichen Anstieg des Kraftstoffstands.
Behandeln Sie Rauschen in Sensordaten effektiv, um Fehlalarme zu reduzieren.
Hier sind einige Herausforderungen, denen ich gegenüberstehe:
Feinabstimmung der Parameter „Konfidenz“, „pvalueHistoryLength“, „trainingWindowSize“ und „SeasonalityWindowSize“ für verrauschte Daten (möglicherweise hohe oder niedrige Werte).
Rauschen herausfiltern Dabei wird sichergestellt, dass echte Spitzen (Diebstahl/Betankungsereignisse) erkannt werden.
Unterscheidung zwischen gültigen Anomalien (Kraftstoffdiebstahl oder Betankung) und lärmbedingten Spitzen.
Frage:
Wie kann ich die Parameter von DetectSpikeBySsa optimieren, damit sie funktionieren? effektiv mit verrauschten Sensordaten?
Gibt es Vorverarbeitungsschritte oder alternative Ansätze, um Rauschen besser zu verarbeiten, bevor die Spitzenerkennung angewendet wird?
Gibt es einen geeigneteren Ansatz des maschinellen Lernens zur Erkennung dieser spezifischen Arten von Anomalien im Kraftstoffstand Daten?
Ich überprüfe den Kraftstoffstand alle 10 Minuten und stelle sicher, dass die Datensatzgröße bei jeder Erkennung immer größer oder gleich 40 Datensätzen ist laufen. Allerdings enthalten die Daten häufig Rauschen, was den Erkennungsprozess zu einer Herausforderung macht.
Für Vorschläge, Erkenntnisse oder Beispiele wären wir sehr dankbar!
Ich arbeite an einem Projekt zur Erkennung von Kraftstoffdiebstahl und Tankvorgängen anhand verrauschter Sensordaten mithilfe von ML.NET. Die Sensordaten umfassen zeitgestempelte Kraftstoffstand- und Geschwindigkeitswerte, enthalten jedoch häufig Rauschen, was den Erkennungsprozess zu einer Herausforderung macht. Ich implementieren einen Spitzenerkennungsalgorithmus mithilfe der von ML.NET bereitgestellten DetectSpikeBySsa-Methode . Unten ist eine vereinfachte Version meines Codes: [code]public static void DetectSpikeBySsa(IReadOnlyList data , double confidence , int pvalueHistoryLength , int trainingWindowSize , int seasonalityWindowSize) { var context = new MLContext(); var dataView = context.Data.LoadFromEnumerable(data); var pipeline = context.Transforms.DetectSpikeBySsa( outputColumnName: nameof(AnomalyPrediction.Prediction) , inputColumnName: nameof(SensorData.Value) , confidence: confidence // 99.0 , pvalueHistoryLength: pvalueHistoryLength // data.Count / 2 , trainingWindowSize: trainingWindowSize // data.Count , seasonalityWindowSize: seasonalityWindowSize // data.Count / 4);
var model = pipeline.Fit(dataView); var transformedData = model.Transform(dataView);
List results = []; var predictions = context.Data.CreateEnumerable(transformedData, reuseRowObject: false).ToList(); for (int i = 0; i < predictions.Count; i++) { var sensorData = data[i]; var prediction = predictions[i]; var isAnomaly = prediction.Prediction[0] is 1; Console.WriteLine($"{prediction.Prediction[0]}\t {prediction.Prediction[1]:f2} \t {prediction.Prediction[2]:f2}"); results.Add(new AnomalyDetectionResult { IsAnomaly = isAnomaly, Value = sensorData.Value, Speed = sensorData.Speed, Timestamp = sensorData.Timestamp });
if (!isAnomaly) { // Todo } } } [/code] [b]Das Ziel besteht darin:[/b] [list] [*]Kraftstoffdiebstahl als plötzlichen Abfall des Kraftstoffstands zu erkennen . [*]Erkennen Sie die Kraftstofffüllung als plötzlichen Anstieg des Kraftstoffstands. [*]Behandeln Sie Rauschen in Sensordaten effektiv, um Fehlalarme zu reduzieren. [/list] [b]Hier sind einige Herausforderungen, denen ich gegenüberstehe:[/b] [list] [*]Feinabstimmung der Parameter „Konfidenz“, „pvalueHistoryLength“, „trainingWindowSize“ und „SeasonalityWindowSize“ für verrauschte Daten (möglicherweise hohe oder niedrige Werte). [*]Rauschen herausfiltern Dabei wird sichergestellt, dass echte Spitzen (Diebstahl/Betankungsereignisse) erkannt werden. [*]Unterscheidung zwischen gültigen Anomalien (Kraftstoffdiebstahl oder Betankung) und lärmbedingten Spitzen. [/list] [b]Frage:[/b] [list] [*]Wie kann ich die Parameter von DetectSpikeBySsa optimieren, damit sie funktionieren? effektiv mit verrauschten Sensordaten? [*]Gibt es Vorverarbeitungsschritte oder alternative Ansätze, um Rauschen besser zu verarbeiten, bevor die Spitzenerkennung angewendet wird? [*]Gibt es einen geeigneteren Ansatz des maschinellen Lernens zur Erkennung dieser spezifischen Arten von Anomalien im Kraftstoffstand Daten? [/list] [b]Ich überprüfe den Kraftstoffstand alle 10 Minuten und stelle sicher, dass die Datensatzgröße bei jeder Erkennung immer größer oder gleich 40 Datensätzen ist laufen. Allerdings enthalten die Daten häufig Rauschen, was den Erkennungsprozess zu einer Herausforderung macht.[/b] Für Vorschläge, Erkenntnisse oder Beispiele wären wir sehr dankbar!
Wir entwickeln ein Echtzeit-Herbst-Erkennungssystem mit einem tragbaren Sensor (Beschleunigungsmesser und Gyroskop), der kontinuierliche Daten an Firebase sendet. Unser maschinelles Lernmodell wurde...
Problemzusammenfassung
Wir setzen ein geschultes ML-Modell für die Herbsterkennung mit Echtzeitdaten aus einem tragbaren Gerät (Beschleunigungsmesser + Gyroskop) ein. Das Modell wurde in...
Ich habe die Seiten-HTML-Extraktion für PDF-Dateien mithilfe von Docling und PYPDF2 erfolgreich implementiert. Hier ist, was mein aktueller Code für PDFs tut:
Ich erwarte eine sehr niedrige CPU -Verwendung beim Hochladen von Daten über SFTP oder Web -Benutzeroberfläche in Minio. Aber CPU -Spike tritt beim Hochladen von Daten über SFTP oder Web UI auf....
Ich verwende das Aruco-Modul von OpenCV in Python, um mein AprilTag-Kalibrierungsboard zu erkennen. Das Problem besteht darin, dass trotz eines recht guten Eingabebildes nur sehr wenige Markierungen...