Gumball2k5 commited on
Commit
09682f4
·
verified ·
1 Parent(s): 2544a00

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +81 -4
README.md CHANGED
@@ -13,9 +13,86 @@ short_description: Predict the weather of Saigon
13
  license: unknown
14
  ---
15
 
16
- # Welcome to Streamlit!
 
17
 
18
- Edit `/src/streamlit_app.py` to customize this app to your heart's desire. :heart:
19
 
20
- If you have any questions, checkout our [documentation](https://docs.streamlit.io) and [community
21
- forums](https://discuss.streamlit.io).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  license: unknown
14
  ---
15
 
16
+ 🌦️ Saigon Temperature Forecasting Application
17
+ Một ứng dụng web tương tác được xây dựng bằng Streamlit để dự báo thời tiết tại TP. Hồ Chí Minh (Sài Gòn). Ứng dụng này cung cấp cả dự báo 5 ngày (hàng ngày) sử dụng mô hình Stacking và dự báo 24 giờ (hàng giờ) sử dụng 24 mô hình LightGBM chuyên biệt.
18
 
19
+ (Gợi ý: Bạn nên chụp ảnh màn hình ứng dụng của mình, tải lên một dịch vụ như Imgur và dán URL vào đây để thay thế dòng trên.)
20
 
21
+ Các tính năng chính
22
+ Ứng dụng được tổ chức thành bốn tab chính:
23
+
24
+ 📑 Project Overview & Methodology
25
+ Tổng quan Dự án: Giải thích mục tiêu và nguồn dữ liệu (10 năm từ Visual Crossing).
26
+
27
+ Chiến lược "Two-Stream": Mô tả lý do sử dụng 2 mô hình khác nhau:
28
+
29
+ Mô hình Stacking (Hàng ngày): Cho dự báo 5 ngày, kết hợp sức mạnh của nhiều mô hình.
30
+
31
+ Mô hình Direct (Hàng giờ): 24 mô hình LGBM riêng biệt cho dự báo 24 giờ.
32
+
33
+ Bảng xếp hạng (Leaderboard): Hiển thị 10 mô hình hàng đầu trong quá trình thử nghiệm, chứng minh lý do chọn mô hình "Champion".
34
+
35
+ 🌦️ Live 5-Day Forecast (Dự báo 5 ngày)
36
+ Chọn ngày: Cho phép người dùng chọn một ngày bất kỳ trong tập dữ liệu kiểm tra (test set).
37
+
38
+ Dự báo 5 ngày: Hiển thị nhiệt độ dự đoán và nhiệt độ thực tế (nếu có) cho 5 ngày tiếp theo.
39
+
40
+ Forecast Insights (Why?): Tự động tạo ra các nhận định (insight) dựa trên dữ liệu đầu vào (ví dụ: "Hôm qua trời rất nóng...").
41
+
42
+ Feature Inspector: Một khu vực có thể thu gọn để kiểm tra các giá trị (features) quan trọng mà mô hình đã "nhìn thấy" khi đưa ra dự đoán.
43
+
44
+ Biểu đồ Trực quan:
45
+
46
+ Training Set Overview: Biểu đồ toàn bộ dữ liệu huấn luyện với thanh trượt (slider).
47
+
48
+ Historical Context: So sánh 14 ngày lịch sử (thực tế) với 5 ngày dự báo (dự đoán).
49
+
50
+ Forecast vs. Actual: Tự động so sánh dự báo (màu đỏ) với thực tế (màu xanh) nếu có đủ dữ liệu.
51
+
52
+ 📊 Model Performance & Diagnostics (Hiệu suất Mô hình)
53
+ Performance Degradation: Biểu đồ đường cho thấy lỗi (RMSE) và độ chính xác (R²) của mô hình thay đổi như thế nào từ Ngày 1 đến Ngày 5.
54
+
55
+ Interactive Slider: Một thanh trượt cho phép người dùng chọn ngày dự báo (1-5) và xem biểu đồ phân tán (scatter plot) so sánh Dự báo vs. Thực tế cho riêng ngày đó.
56
+
57
+ Champion Model Diagnostics: Phân tích sâu về lỗi (residuals) của mô hình để chứng minh tính ổn định.
58
+
59
+ ⏱️ Hourly Prediction (Dự báo 24 giờ)
60
+ Chọn Thời gian: Cho phép người dùng chọn Ngày và Giờ để bắt đầu dự báo.
61
+
62
+ Metrics 24 giờ: Hiển thị các dự đoán điểm (T+2h, T+3h, T+24h) và các giá trị tổng hợp (Trung bình, Cao nhất) cùng với giá trị thực tế (nếu có).
63
+
64
+ Biểu đồ Lịch sử & Dự báo (Hàng giờ): Hiển thị 24 giờ lịch sử (thực tế) và 24 giờ dự báo (dự đoán).
65
+
66
+ Biểu đồ So sánh (Hàng giờ): Tự động so sánh 24 giờ dự báo (màu đỏ) với 24 giờ thực tế (màu xanh).
67
+
68
+ Model Reliability: Biểu đồ đường RMSE cho thấy lỗi của mô hình hàng giờ tăng lên như thế nào từ T+1h đến T+24h.
69
+
70
+ 🛠️ Công nghệ sử dụng (Tech Stack)
71
+ Frontend: Streamlit, Plotly
72
+
73
+ Xử lý Dữ liệu: Pandas, NumPy
74
+
75
+ Mô hình ML: Scikit-learn (cho Stacking), LightGBM (cho mô hình hàng giờ)
76
+
77
+ Tải mô hình: Joblib
78
+
79
+ 📂 Cấu trúc Dự án
80
+ /
81
+ ├── app.py # Script Streamlit chính
82
+ ├── requirements.txt # Các thư viện Python cần thiết
83
+ ├── README.md # File bạn đang đọc
84
+
85
+ ├── data/
86
+ │ ├── final_dataset_tree.csv # Dữ liệu features/targets hàng ngày
87
+ │ ├── final_hourly_feature_dataset.csv # Dữ liệu features/targets hàng giờ
88
+ │ ├── final_5_day_results_df.csv # Dữ liệu hiệu suất (RMSE/R2) hàng ngày
89
+ │ ├── hourly_120h_evaluation_results.csv # Dữ liệu hiệu suất (RMSE) hàng giờ
90
+ │ └── results_df_all_tuned.csv # Dữ liệu leaderboard
91
+
92
+ ├── models/
93
+ │ ├── champion_stacking_day1.pkl # ... (5 mô hình hàng ngày)
94
+ │ └── lgbm_model_target_temp_next_1h.pkl # ... (24 mô hình hàng giờ)
95
+
96
+ └── src/
97
+ ├── benchmark_utils.py # Hàm tải leaderboard
98
+ └── diagnostic_plots.py # Hàm vẽ biểu đồ hiệu suất