Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Ứng dụng học máy trong phát hiện rò rỉ nước
Hướng Dẫn Đồ ÁnLập Trình AI

Ứng dụng học máy trong phát hiện rò rỉ nước

Chia sẻ
Chia sẻ

Học máy ngày càng đóng vai trò quan trọng trong việc giám sát và bảo trì hệ thống hạ tầng thông minh. Trong lĩnh vực quản lý tài nguyên nước, việc phát hiện rò rỉ kịp thời giúp giảm thiểu thất thoát và bảo vệ cơ sở hạ tầng. Với dữ liệu cảm biến IoT, chúng ta có thể xây dựng các mô hình học máy để phát hiện các mẫu bất thường và đưa ra cảnh báo sớm.

Bạn cũng có thể tham khảo thêm các bài viết liên quan để mở rộng kiến thức: Chuyển mô hình học máy sang ứng dụng thực tế bằng FastAPI, Làm sạch dữ liệu lớn trước khi phân tích. Những bài viết này cung cấp kiến thức nền tảng quan trọng để triển khai hệ thống học máy trong thực tế.

Trong bài viết này, chúng ta sẽ xây dựng một mô hình học máy để phát hiện rò rỉ nước từ dữ liệu cảm biến bao gồm áp suất, lưu lượng và nhiệt độ. Bài viết hướng dẫn chi tiết từng bước, từ tải và xử lý dữ liệu đến huấn luyện mô hình và triển khai dự đoán.

Tải và khám phá dữ liệu cảm biến

Bộ dữ liệu được lấy từ Kaggle, gồm các chỉ số quan trọng như áp suất, lưu lượng, nhiệt độ, cùng trạng thái rò rỉ và vỡ ống. Việc khám phá dữ liệu ban đầu giúp hiểu rõ các đặc trưng và phát hiện vấn đề như giá trị thiếu hoặc nhiễu.

📥 Tải dữ liệu: Water Leak Dataset – Kaggle

Trên Google Colab, tải file .zip từ Kaggle API:

!pip install kaggle
from google.colab import files
files.upload()  # Upload kaggle.json API key

!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json

!kaggle datasets download -d ziya07/water-leak-dataset
!unzip water-leak-dataset.zip

Đọc dữ liệu CSV:

import pandas as pd

df = pd.read_csv('water_leakage.csv')
print(df.head())
print(df.info())
print(df.describe())

Trực quan hóa dữ liệu cảm biến

Trực quan hóa là bước quan trọng để quan sát mối quan hệ giữa các biến như áp suất, lưu lượng và trạng thái rò rỉ. Các biểu đồ sẽ giúp nhận diện xu hướng và các điểm bất thường.

Vẽ phân phối áp suất và lưu lượng theo trạng thái rò rỉ:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(12,5))
sns.scatterplot(data=df, x='Pressure (bar)', y='Flow Rate (L/s)', hue='Leak Status')
plt.title('Phân bố áp suất và lưu lượng theo trạng thái rò rỉ')
plt.show()

Vẽ heatmap ma trận tương quan:

plt.figure(figsize=(10,8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.title('Ma trận tương quan giữa các biến cảm biến')
plt.show()

Xử lý dữ liệu trước khi huấn luyện

Các dữ liệu cảm biến thường chứa giá trị thiếu hoặc outlier cần xử lý. Đồng thời, chọn các đặc trưng quan trọng để đưa vào mô hình giúp cải thiện hiệu suất.

Lấy các đặc trưng Pressure (bar), Flow Rate (L/s), Temperature (°C) để dự đoán Leak Status:

# Loại bỏ giá trị thiếu
df = df.dropna()

# Chọn đặc trưng và nhãn
X = df[['Pressure (bar)', 'Flow Rate (L/s)', 'Temperature (°C)']]
y = df['Leak Status']

Xây dựng mô hình phát hiện rò rỉ nước

Chúng ta sẽ sử dụng mô hình Random Forest Classifier – một thuật toán mạnh mẽ và dễ triển khai, phù hợp với dữ liệu cảm biến đa chiều.

Tách dữ liệu train/test và huấn luyện mô hình:

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

Đánh giá mô hình

Đánh giá mô hình giúp xác định khả năng phát hiện rò rỉ trên dữ liệu mới. Sử dụng confusion matrix và classification report để phân tích.

from sklearn.metrics import classification_report, confusion_matrix

y_pred = model.predict(X_test)

print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

Dự đoán dữ liệu mới

Mô hình có thể dự đoán rò rỉ trên dữ liệu cảm biến mới, ví dụ:

# Dữ liệu cảm biến mới
new_data = [[3.2, 25.0, 22.5]]  # Áp suất 3.2 bar, Lưu lượng 25 L/s, Nhiệt độ 22.5°C
prediction = model.predict(new_data)
print("Trạng thái rò rỉ:", "Có rò rỉ" if prediction[0]==1 else "Không rò rỉ")

Cấu trúc thư mục dự án (chạy local)

water-leakage-detection/
├── data/
│   └── water_leakage.csv
├── src/
│   ├── preprocess.py
│   ├── train_model.py
│   ├── predict.py
├── models/
│   └── leakage_model.pkl
├── requirements.txt
├── README.md

Các file preprocess.py, train_model.py, predict.py đặt cùng cấp trong thư mục src/.

Kết luận

Ứng dụng học máy trong phát hiện rò rỉ nước giúp hệ thống cấp nước thông minh hơn và giảm thất thoát đáng kể. Với Random Forest, chúng ta có thể đạt độ chính xác cao khi phân loại rò rỉ từ dữ liệu cảm biến. Trong tương lai, việc kết hợp nhiều mô hình nâng cao và dữ liệu thời gian thực (Realtime) sẽ giúp hệ thống giám sát đạt mức tự động hóa cao hơn.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!