Rela AIRela AI Docs
Qualità

Rilevamento Anomalie ML

Rilevamento anomalie basato su machine learning con classificazione, gravità e ciclo di feedback.

Questa pagina copre il rilevamento anomalie nel controllo qualità (variabili SPC, processi di manifattura, deviazioni qualitative). Per il rilevamento applicato alla salute degli asset (vibrazione, temperatura, drift dei sensori nel pipeline predittivo), vedi condition-monitoring/anomaly-detection.

Panoramica

Il modulo di rilevamento anomalie utilizza tecniche di machine learning per identificare comportamenti anomali nelle metriche degli asset. Impara dai dati storici e classifica le anomalie per tipo e gravità.

Configurare il rilevamento

Il rilevamento viene configurato per combinazione di sorgente e metrica:

{
  "source_id": "src_compressor_01",
  "metric": "vibration_rms",
  "enabled": true,
  "sensitivity": "medium",
  "methods": ["z_score", "iqr"],
  "training_window_days": 30,
  "min_data_points": 500
}
CampoDescrizione
sensitivityLivello: low, medium, high (influenza le soglie)
methodsMetodi statistici da utilizzare
training_window_daysFinestra dati per l'addestramento
min_data_pointsMinimo di punti dati richiesti per addestrare

Si raccomandano almeno 30 giorni di dati storici e 500 punti dati per un modello affidabile. Con meno dati, il tasso di falsi positivi sarà più alto.

Addestramento

Metodi statistici

Z-Score: Rileva punti che deviano significativamente dalla media.

  • Soglia configurabile (default: 3.0 deviazioni standard)
  • Efficace per distribuzioni normali

IQR (Range Interquartile): Rileva outlier basandosi sui quartili.

  • Soglia: Q1 - 1.5xIQR a Q3 + 1.5xIQR
  • Robusto con distribuzioni non normali

Processo di addestramento

POST /api/v1/quality/anomaly-detection/{config_id}/train

L'addestramento calcola i parametri statistici (media, deviazione standard, quartili) dai dati storici nella finestra configurata.

Estrazione delle feature

Il sistema estrae automaticamente feature aggiuntive dalla serie temporale:

FeatureDescrizione
rolling_meanMedia mobile (finestra di 1 ora)
rolling_stdDeviazione standard mobile
rate_of_changeTasso di variazione tra letture consecutive
hour_of_dayOra del giorno (contesto temporale)
day_of_weekGiorno della settimana (contesto temporale)
time_since_lastTempo dall'ultima lettura

Le feature temporali (hour_of_day, day_of_week) sono cruciali per rilevare anomalie contestuali. Una vibrazione alta alle 3 di notte può essere anomala, ma normale alle 10 durante le ore di produzione.

Classificazione delle anomalie

Ogni anomalia rilevata viene classificata in uno dei tre tipi:

TipoDescrizioneEsempio
point_anomalyValore individuale fuori dal range normalePicco improvviso di temperatura
driftSpostamento graduale della tendenzaAumento lento della vibrazione
contextualAnormale dato il contesto temporaleConsumo alto in orario non produttivo

Calcolo della gravità

La gravità viene calcolata combinando la magnitudine della deviazione con la criticità dell'asset:

severity_score = deviation_score × asset_criticality_boost
Criticità dell'assetBoost
low1.0
medium1.5
high2.0
critical3.0

Range di gravità risultanti:

  • low: score < 2.0
  • medium: 2.0 ≤ score < 4.0
  • high: 4.0 ≤ score < 6.0
  • critical: score ≥ 6.0

Ciclo di feedback

Gli utenti possono fornire feedback su ogni anomalia rilevata per migliorare il modello:

{
  "anomaly_id": "ano_001",
  "feedback": "false_positive",
  "notes": "Valore atteso durante pulizia programmata"
}
FeedbackDescrizione
false_positiveNon era un'anomalia reale
confirmedAnomalia confermata, richiede azione
resolvedAnomalia risolta, causa identificata

Il feedback viene utilizzato per regolare le soglie nel prossimo ciclo di addestramento, riducendo progressivamente i falsi positivi.

In questa pagina