DỰ BÁO THỜI TIẾT BẰNG RNN
MỞ ĐẦU
1. Đặt vấn đề
- Dự báo thời tiết là một ngành ứng dụng của khoa học và công nghệ để tiên đoán trạng thái và vị trí của bầu khí quyển trong tương lai gần. Loài người đã nỗ lực dự báo thời tiết một cách không chính thức từ nhiều thiên niên kỳ trước, và việc dự báo thời tiết một cách chính thức bắt đầu từ thế kỷ mười chín. Công tác dự báo thời tiết được thực hiện bằng cách thu thập số liệu về trạng thái hiện tại của bầu khí quyển và áp dụng những hiểu biết khoa học về các quá trình của khí quyển để tiên đoán sự tiến triển của khí quyển
- Tuy nhiên thời tiết có tính chất chuỗi thời gian. Với sự phát triển của khoa học và công nghệ ngày nay, chúng ta có thể thiết lập mô hình dự đoán cho các thông số thời tiết trong tương lai bằng những số liệu đã thu thập được. Chính vì vậy trong đề tài này chúng em chọn mạng noron hồi quy để dự đoán cho các thông số thời tiết như nhiệt độ, độ ẩm, hướng gió.. bằng những số liệu đã có sẵn
2. Giới thiệu đề tài:
- Đề tài nghiên cứu và áp dụng mô hình mạng noron RNN cho dữ liệu chuỗi thời gian nhằm mục đích dự đoán
- Thu thập và áp dụng các kỹ thuật để tiền xử lý dữ liệu
- Nghiên cứu và áp dụng thư viện Deep Learning Tensorflow để xây dựng mô hình dự đoán
- Ứng dụng: xây dựng 1 website hiển thị các kết quả vừa dự báo được
-
- I. BÀI TOÁN CHUỖI THỜI GIAN VÀ CƠ SỞ DỮ LIỆU CHUỖI THỜI GIAN
- . Các khái niệm:
- Chuỗi thời gian:là một tập hợp các quan sát X, được ghi nhận tại một thời điểm t, theo một trình tự thời gian nhất định. Công việc dự đoán dựa trên cơ sở dữ liệu chuỗi thời gian được gọi là dự đoán chuỗi thời gian
- liệu tuần tự theo thời gian thường có nhiều trong các lĩnh vực khác nhau nên có nhiều dạng khác nhau. Xét về mặt toán học thì chúng đều như nhau là mỗi chuỗi thời gian biểu diễn các giá trị của một biến thực theo các khoảng thời gian bằng nhau. Do đó khái niệm về chuỗi thời gian tương đối rộng nên có thể áp dụng các kỹ thuật khai phá dữ liệu trên chuỗi thời gian để xây dựng các ứng dụng trong các lĩnh vực khác nhau
- Các thành phần của dữ liệu chuỗi thời gian: Xu hướng, Chu kỳ, Thời vụ, Ngẫu nhiên
- Xu hướng dài hạn thể hiện sự tăng trưởng hoặc giảm sút của một biến số theo thời gian với khoảng thời gian đủ dài. Một số biến số kinh tế có xu hướng tăng giảm dài hạn như
- Tốc độ tăng dân số của Việt Nam có xu hướng giảm, tỷ trọng nông nghiệp trong GDP của Việt Nam có xu hướng giảm.
- Các số liệu kinh tế vĩ mô thường có sự tăng giảm có quy luật theo chu kỳ kinh tế. Sau một thời kỳ suy thoái kinh tế sẽ là thời kỳ phục hồi và bùng nổ kinh tế, kế tiếp tăng trưởng kinh tế sẽ chựng lại và khỏi đầu cho một cuộc suy thoái mới. Tuỳ theo nền kinh tế mà chu kỳ kinh tế có thời hạn là 5 năm, 7 năm hay 10 năm.
- Biến động thời vụ của biến số kinh tế là sự thay đổi lặp đi lặp lại từ năm này sang năm khác theo mùa vụ. Biến động thời vụ xảy ra do khí hậu, ngày lễ, phong tục tập quán…Biến động thời vụ có tính ngắn hạn với chu kỳ lặp lại thường là 1 năm.
- Những dao động không thuộc ba loại trên được xếp vào dao động ngẫu nhiên. Các nguyên nhân gây ra biến động ngẫu nhiên có thể là thời tiết bất thường, chiến tranh, khủng hoảng năng lượng, biến động chính trị…
-
- II. MẠNG NÔRON HỒI QUY RNN
-
- I. PHÁT TRIỂN MÔ HÌNH DỰ ĐOÁN THỜI TIẾT BẰNG MẠNG NORON HỒI QUY RNN:
- . Thu thập và tiền xử lý dữ liệu cho đề tài:
- Thu thập dữ liệu:
- Bộ dữ liệu được tham khảo và lấy về từ website
- Bộ dữ liệu gồm hơn 800 dòng, bao gồm thông tin của 4 trường (khu vực Hà Nội) nhiệt độ, độ ẩm, hướng gió và tốc độ gió. Mỗi dòng là thông tin collect được trong 1 giờ
- Bộ dữ liệu sẽ lấy dự báo của 1 ngày và chia nó thành 24 dòng với 1 giờ tương ứng với 1 dòng.
- Mục tiêu là từ 24 giá trị của các ngày hôm trước dự đoán được giá trị thời tiết của ngày hôm sau
- Tiền xử lý dữ liệu:
- Vì bộ data đã hoàn chỉnh không có giá trị bị thiếu nên quy trình tiền xử lý dữ liệu cho đề tài sẽ gồm các bước: làm sạch, chuyển đổi dữ liệu về dạng chuỗi thời gian và chia nhỏ dữ liệu ra để đưa vào thuật toán
- Làm sạch dữ liệu: loại bỏ những dữ liệu không chính xác, không đầy đủ, không phù hợp về định dạng, bị trùng lắp, không có giá trị, không đủ thông tin, không liên quan,… - những dữ liệu có thể ảnh hưởng đến kết quả phân tích sau cùng.
- Chuyển đổi dữ liệu về dạng chuỗi thời gian: dùng phương thức to_datetime và series cho trường ‘timestamp’ để chuyển đổi
- Đồ thị dạng chuỗi thời gian cho trường nhiệt độ và độ ẩm sau khi chuyển đổi
- Chia dữ liệu thành tập train và test để input vào thuật toán:
- Dữ liệu tập test: 2 ngày cuối cùng tương ứng với 48 dòng cuối
- Dữ liệu tập train: còn lại
- . Xây dựng mô hình RNN để dự đoán các giá trị thời tiết:
- Các thông số của mô hình:
- Một mạng RNN bao gồm 1 lớp đầu vào, 1 lớp đầu ra và 100 lớp ẩn
- Hàm activation: ReLU
- learning_rate = 0.001
- Hàm loss: Hàm MAE
- Hàm optimizer: Adam
- I. KẾT QUẢ THỰC NGHIỆM:
- Kết quả: mô hình cho ra được 48 giá trị của các ngày kế tiếp. Độ chính xác đạt 0.95525
- Công thức tính độ chính xác:
- Bảng so sánh giữa dữ liệu dự đoán được và dữ liệu thực tế:
- Ứng dụng thực tế: xây dựng website hiển thị các thông số dự đoán được
- Website hiển thị các thông tin thời tiết có các thông số như nhiệt độ cao nhất, thấp nhất trong ngày, độ ẩm, tốc độ gió….