Phân tích dữ liệu tiêu thụ nước bằng Machine Learning: Phát hiện bất thường tự động

Áp dụng Isolation Forest và LSTM để phát hiện rò rỉ, gian lận đồng hồ và dùng nước bất thường trong mạng lưới cấp nước – từ dữ liệu thô đến cảnh báo tự động.

AI/ML 16 phút đọc
#machine learning #anomaly detection #water #LSTM #IoT
Trang Chủ / Blog /Phân tích dữ liệu tiêu thụ nước bằng Machine Learning: Phát hiện bất thường tự động
ANSOL 16 phút đọc

Bài toán phát hiện bất thường trong cấp nước

Các công ty cấp nước đang mất trung bình 25–40% lưu lượng do rò rỉ và gian lận. Phần lớn những trường hợp này không thể phát hiện bằng kiểm tra thủ công vì dữ liệu quá lớn.

Dữ liệu đầu vào

Mỗi điểm đo cung cấp:
- Chỉ số tiêu thụ mỗi 15 phút (4 điểm/giờ × 24 giờ = 96 điểm/ngày)
- Áp suất đường ống
- Nhiệt độ môi trường

Isolation Forest cho phát hiện bất thường điểm

from sklearn.ensemble import IsolationForest
import pandas as pd

df = pd.read_sql("""
  SELECT meter_id, recorded_at, value_m3
  FROM meter_readings
  WHERE recorded_at > NOW() - INTERVAL '7 days'
""", conn)

model = IsolationForest(contamination=0.02, random_state=42)
df['anomaly'] = model.fit_predict(df[['value_m3']])
anomalies = df[df['anomaly'] == -1]

LSTM cho phát hiện bất thường chuỗi thời gian

Isolation Forest tốt cho điểm đơn lẻ, nhưng LSTM phát hiện tốt hơn các pattern bất thường kéo dài nhiều giờ – đặc điểm của rò rỉ thực sự:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense, Dropout

model = Sequential([
  LSTM(64, input_shape=(96, 1), return_sequences=True),
  Dropout(0.2),
  LSTM(32),
  Dense(1)
])

Kết quả tại khách hàng thực tế

Sau 6 tháng triển khai:
- Phát hiện 94% các vụ rò rỉ (so với 61% kiểm tra thủ công)
- False positive rate: 3.2%
- Tiết kiệm 18% thất thoát nước

Vận hành hiệu quả bắt đầu từ việc nhìn thấy thực tế rõ ràng.