1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO CUỐI KỲ HỌC PHẦN TÍNH QUẢN TRỊ DỮ LIỆU LỚN AIR QUALITY PREDICTION BASED ON MACHINE LEARNING MODEL FOR ANY COORDINATES ON GLOBAL

33 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

Đại học Quốc gia Hà Nội Trường Đại học Khoa học Tự nhiên

-*** -

BÁO CÁO CUỐI KỲ HỌC PHẦN TÍNH QUẢN TRỊ DỮ LIỆU LỚN

AIR QUALITY PREDICTION BASED ON MACHINE LEARNING MODEL FOR

ANY COORDINATES ON GLOBAL

Thành viên nhóm : Nguyễn Thị Ngọc Anh 21000404 Nguyễn Thị Hằng 21002141

Phan Diệu Linh 21002154

Hà Nội - 2023

Trang 2

MỤC LỤC

I Introduction 3

II Related Work 4

1 Phương pháp sử dụng Apache Spark, MongoDB và AWS 4

2 Phương pháp song song 6

3 Phương pháp sử dụng Hadoop Distributed File System (HDFS) và

Trang 3

I Introduction

Cùng với sự phát triển không ngừng về sản xuất và chất lượng đời sống con người ngày càng nâng cao, các vấn đề về môi trường đã dần được người dân quan tâm Một trong số đó, vấn đề về chất lượng không khí đáng được chú ý vì nó ảnh hưởng tới sức khoẻ và môi trường sống của chúng ta Đặc biệt đối với các thành phố lớn, hiểu xu hướng thay đổi không khí, nhận thông tin chất lượng không khí kịp thời, chính xác và toàn diện cũng như đưa ra dự đoán chính xác về chất lượng không khí là cần thiết để giúp chúng ta phát hiện, hiểu rõ hơn về mức độ ô nhiễm không khí tại các vị trí cụ thể và đưa ra các biện pháp cần thiết để cải thiện chất lượng không khí, bảo vệ sức khỏe của bản thân Bài toán này cũng có thể áp dụng trong nhiều lĩnh vực khác nhau như y tế, quản lý môi trường, và quy hoạch đô thị.

Dự án của chúng em tập trung vào việc sử dụng dữ liệu thời tiết được cập nhập hàng giờ để dự đoán mức độ ô nhiễm không khí của từng vị trí cụ thể dựa trên toạ độ bản đồ Để giải quyết bài toán, chúng em đã thu thập dữ liệu về chất lượng không khí bao gồm chỉ số ô nhiễm không khí “AQI” cùng với dữ liệu về thời tiết cung cấp thông tin về các yếu tố như “nhiệt độ”, “độ ẩm”, “tốc độ gió” và “áp suất không khí”, Tiếp theo, chúng em tiến hành xử lý dữ liệu bằng cách loại bỏ nhiễu, điền giá trị thiếu và chuẩn hóa dữ liệu để có thể sử dụng cho việc dự đoán Sau đó, phát triển các mô hình dự đoán chất lượng không khí dựa trên dữ liệu đã thu thập được Với mỗi toạ độ, sẽ có các bộ dữ liệu tương ứng khác nhau dùng để huấn luyện mô hình Kết quả dự đoán được hiển thị trực quan trên bản đồ để người dùng dễ dàng nhìn thấy và hiểu với 2 thông tin: chỉ số ô nhiễm không khí “AQI” và các mức độ ô nhiễm bao gồm “Good”, “Moderate”, “Unhealthy for SG”, “Unhealthy”, “Very unhealthy”, “Hazardous” Để kiểm chứng độ chính xác của mô hình mà chúng em đã lựa chọn, chúng em sử dụng dữ liệu tại điểm Na Pha, Bách Sắc, Quảng Tây, Trung Quốc với tọa độ: 23.0245 độ kinh tuyến và 105.8412 độ vĩ tuyến Kết quả cho thấy mô hình có độ chính xác là 0.37 nếu so sánh về chỉ số AQI và độ chính xác là 0.7 nếu so sánh về mức độ ô nhiễm

Trang 4

II Related Work

Chúng em đã tìm hiểu một vài phương pháp quản lý dữ liệu của các tác giả khác khi ứng dụng vào bài toán:

1 Phương pháp sử dụng Apache Spark, MongoDB và AWS

https://github.com/liyinging/AQI-prediction-spark-ml

Bài báo này là nghiên cứu về việc dự đoán chất lượng không khí ở California, tuy nhiên, tác giả không tập trung vào kết quả dự đoán chất lượng không khí, mà chỉ tập trung vào so sánh hiệu suất Tác giả đã sử dụng các công nghệ sau:

- Hai mô hình học máy gồm: hồi quy logistic và phân lớp random forest

- Hệ thống tính toán phân tán gồm:

+ Apache Spark để tính toán và xử lý dữ liệu + MongoDB để lưu trữ dữ liệu

+ Triển khai hệ thống trên AWS hay Amazon Web Service, một nền tảng điện toán đám mây cung cấp giải pháp cho tính toán, lưu trữ và mạng

Lý do được tác giả đưa ra là do Apache spark có tốc độ xử lý nhanh, dễ sử dụng, có nhiều tiện ích (như spark SQL hay MLlib) và có thể chạy ở bất cứ đâu MongoDB cho phép lưu trữ dữ liệu dưới bất kỳ cấu trúc nào, dễ mở rộng, phù hợp với dữ liệu lớn và có hiệu suất tốt Và AWS có tính khả dụng và tính mở rộng cao, phù hợp với xử lý dữ liệu lớn

Dữ liệu được tác giả sử dụng gồm khoảng 600 nghìn bản ghi, được lấy trong khoảng thời gian từ năm 2008 đến năm 2017 tại California, với kích thước khoảng 1GB.

Ta có thể mô tả hệ thống của tác giả như sau: đầu tiên, dữ liệu được lấy từ các API rồi xử lý sao cho không còn thuộc tính thừa hay bị lỗi Dữ liệu này

Trang 5

sau đó được lưu trữ trong MongoDB Khi thực thi chương trình, dữ liệu được lấy ra bằng cách sử dụng Spark SQL, được gộp lại và tạo ra dataframe tương ứng Tiếp đến, sử dụng Spark ML để huấn luyện các mô hình học máy, rồi cuối cùng áp dụng mô hình này để dự đoán kết quả Tất cả quá trình này đều được thực hiện trên nền tảng AWS, sử dụng các tiện ích như AWS Simple Storage Service (S3), AWS Elastic Compute Cloud (EC2) và AWS Elastic MapReduce (EMR)

Có thể thấy, lượng dữ liệu được tác giả sử dụng là rất lớn, và cần được truy xuất mỗi lần thực hiện tính toán, do vậy việc sử dụng Apache Spark và MongoDB là sự lựa chọn tuyệt vời Và nền tảng AWS cũng giải quyết được vấn đề tài nguyên khi mà mọi tính toán và lưu trữ đều được xử lý trên đám mây, không tốn đến tài nguyên của máy local Hình dưới đây là minh chứng của tác giả về việc hiệu suất của hệ thống này tốt đến nhường nào:

Trang 6

Tuy nhiên, AWS không phải sự lựa chọn tốt cho sinh viên khi đòi hỏi một khoản phí nhất định cho các dịch vụ mà chúng em cần sử dụng, mặc dù điều này là hoàn toàn hợp lý với một nền tảng toàn diện như vậy

2 Phương pháp song song

https://ijeecs.iaescore.com/index.php/IJEECS/article/view/6575/6603?fbc lid=IwAR2plUr08mNSBp6fo6Ib9IAgFpCV1-If8aeied9AVVnS4FanjYC-Rxf0P5g

Trong bài báo này tác giả đã xây dựng một hệ thống theo dõi và dự báo thời tiết trong lĩnh vực nông nghiệp

- Tập dữ liệu: dữ liệu thời tiết từ tháng 1 đến tháng 3 năm 2017 tại khu vực Bogor

- Với các dữ liệu được lấy là: thời gian (time of observation), ngày (date), hướng gió (wind direction), tốc độ gió (wind speed), lượng mưa (rain volume), nhiệt độ (temperature), độ ẩm (humidity), áp suất không khí (air pressure)

Công nghệ được sử dụng trong bài báo này bao gồm:

- Thu thập dữ liệu bằng bộ cảm biến WSN (Wireless sensor networks) - Xử lý song song và phân tích hiệu suất tính toán bằng mô hình

ARIMA

Hệ thống theo dõi và dự báo thời tiết bao gồm các bước sau: - Bước 1: Thu thập dữ liệu cần thiết cho hệ thống

- Bước 2: Xử lý dữ liệu bằng phương pháp tính toán song song

Bước 1: Thu thập dữ liệu cần thiết cho hệ thống

Đầu tiên tác giả đã sử dụng bộ cảm biến WSN (Wireless sensor networks) để thu thập các dữ liệu cần thiết Bộ cảm biến WSN này hoạt động như sau:

Trang 7

Các dữ liệu cần thiết sẽ được các sensors thu thập và lưu dưới dạng file (CSV) với các thuộc tính là: thời gian (time of observation), ngày (date), hướng gió (wind direction), tốc độ gió (wind speed), lượng mưa (rain volume), nhiệt độ (temperature), độ ẩm (humidity), áp suất không khí (air pressure)

File CSV này sẽ được gửi đến WSN node tại đây dữ liệu sẽ được kiểm tra và làm sạch Bằng cách dựa trên chuỗi thời gian thì những dữ liệu trùng lặp sẽ được loại bỏ

Tiếp đến dữ liệu này được đến Data Services để lưu trữ vào cơ sở dữ liệu phục vụ cho quá trình tính toán sau này Dưới đây là các thông số về kích thước bộ nhớ để lưu trữ WSN node theo giây, phút, giờ, ngày và tháng:

Như vậy, thuật toán trong bước này được mô tả như sau:

Trang 8

Bước 2: Xử lý dữ liệu bằng quá trình tính toán song song

Trong phần quá trình xử lý song song thì khối lượng công việc sẽ được chia thành nhiều bộ xử lý bằng mô hình ARIMA như hình dưới đây:

Quá trình xử lý song song này sẽ được thực hiện trên máy tính với 8 bộ xử lý và 5500 bản ghi dữ liệu Sau đó tác giả thực hiện phân vùng các dữ liệu này dựa trên loại dữ liệu: nhiệt độ tối thiểu (minimum temperature), nhiệt độ tối đa (maximum temperature), áp suất không khí (air pressure), độ ẩm (humidity), lượng mưa (daily rainfall) và năng lượng mặt trời (solar)

Tiếp đến hệ thống sẽ phân phối dữ liệu vào các process thích hợp để thực hiện tính toán như vậy tốc độ xử lý dữ liệu sẽ nhanh hơn Kết quả cho thấy khi áp dụng quá trình tính toán song song trong việc xử lý dữ liệu thời tiết thì tốc độ nhanh hơn gấp 2-3 lần so với bình thường

Trang 9

3 Phương pháp sử dụng Hadoop Distributed File System (HDFS) và Spark

Bài báo này giải quyết vấn đề dự đoán chất lượng không khí sử dụng một tập dữ liệu không thời gian lớn và bất cân bằng Hệ thống của họ dựa trên 3 công nghệ chính: tính toán song song trên hệ thống Hadoop và Spark phân tán, phương pháp phân vùng kép và thuật toán Random Forest Chúng em quan tâm nhiều hơn về cách họ sử dụng Hadoop và Spark, nên sẽ không đề cập đến phương pháp phân vùng kép và thuật toán Random Forest ở phần này

- Hadoop: sử dụng hai công nghệ chính là Hadoop Distributed File System (HDFS) và Yet Another Resource Negotiator (YARN) HDFS được sử dụng để lưu trữ và truy vấn dữ liệu từ nhiều máy tính (node), sử dụng các node gồm master node và slave node Master node cài đặt HDFS được gọi là name node, có nhiệm vụ chia dữ liệu thành các phần vào các slave node, điều khiển các node này và đồng thời lưu trữ các thông tin cần thiết cho việc truy vấn dữ liệu Slave node cài đặt HDFS được gọi là data node, có nhiệm vụ lưu trữ một phần dữ liệu và đọc, ghi dữ liệu dưới sự chỉ đạo của name node YARN gồm hai node gọi là quản lý tài nguyên và quản lý nhân sự (các node), có nhiệm vụ điều chỉnh tài nguyên hiện có như bộ nhớ, CPU, trên các máy tính, lên lịch cho những công việc cần làm, làm khi nào, ở đâu, giao tiếp giữa các node và giao việc cho các node

Trang 10

- Spark Core được tác giả sử dụng để thực hiện những công việc đọc, ghi dữ liệu và tính toán trong bộ nhớ, sử dụng Resilient Distributed Dataset (RDD) để tăng tốc độ tính toán Tuy nhiên RDD không hỗ trợ làm việc với kiểu dữ liệu không gian, nên tác giả đã sử dụng thư viện GeoSpark để hỗ trợ làm việc với kiểu dữ liệu này

Trang 11

Có thể mô tả lại cấu trúc hệ thống mà tác giả đã xây dựng như sau

III Method

1 Mô tả dataset

Dữ liệu được sử dụng trong dự án này lấy từ https://open-meteo.com/, là dữ liệu được phép sử dụng cho các hoạt động phi thương mại

Tập dữ liệu được sử dụng bao gồm 2 phần chính: tập dữ liệu dùng để huấn luyện mô hình học máy và tập dữ liệu dùng để dự đoán Trong đó, tập dữ liệu huấn luyện gồm dữ liệu về thời tiết và dữ liệu về chất lượng không khí, còn tập dữ liệu dự đoán thì chỉ có dữ liệu về thời tiết mà chưa có dữ liệu về chất lượng không khí Chúng em sẽ sử dụng dữ liệu thời tiết được dự báo trước này để dự đoán chất lượng không khí vào những ngày đó

Trang 12

Địa điểm sẽ được lựa chọn trên bản đồ, vậy nên không có thông tin về vị trí trong các tập dữ liệu Mỗi địa điểm mới được chọn sẽ lấy ra một tập dữ liệu khác nhau Dữ liệu được lấy trực tiếp từ API, chuyển đổi thành dataframe và xử lý, không cần thông qua công cụ lưu trữ nào

a Tập dữ liệu huấn luyện: gồm 5016 bản ghi, mỗi bản ghi ứng với 1 giờ, được lấy trong khoảng thời gian từ 210 ngày trước đến 2 ngày trước so với hiện tại (khoảng 7 tháng) Lý do nhóm em không lấy dữ liệu đến sát ngày hiện tại là do trên trang web chỉ cập nhật đến 2 ngày trước hiện tại

Nhóm em lựa chọn 5016 bản ghi là do con số này đủ để xây dựng một mô hình đủ chính xác cho bài toán dự đoán chất lượng không khí Không nên lấy khoảng thời gian quá xa do đặc thù chất lượng không khí bị ảnh hưởng bởi nhiều yếu tố, trong đó có những yếu tố chỉ xuất hiện trong một khoảng thời gian, ít khi lặp lại Ví dụ như đại dịch COVID-19, nếu chúng ta đưa cả khoảng thời gian xảy ra đại dịch vào trong tập dữ liệu này để dự đoán cho khoảng thời gian không có dịch thì kết quả sẽ không còn đúng nữa

Tập dữ liệu này được ghép từ 2 phần: thời tiết và chất lượng không khí

Trang 13

Dữ liệu về thời tiết có dạng như sau:

Dữ liệu về chất lượng không khí có dạng như sau:

Sau khi xử lý gộp hai dữ liệu này lại, tập dữ liệu sẽ có các thuộc tính như sau:

Trang 14

+ date: ngày và giờ ghi số liệu

+ temperature_2m: nhiệt độ tại khoảng cách 2m so với mặt đất + relative_humidity_2m: độ ẩm tại khoảng cách 2m so với mặt đất + dew_point_2m: sương mù tại khoảng cách 2m so với mặt đất + apparent_temperature: nhiệt độ biểu kiến

+ precipitation: tổng lượng mưa của giờ trước + snow_depth: độ dày tuyết trên mặt đất + cloud_cover: tổng độ che phủ mây

+ cloud_cover_low: độ che phủ mây ở tầng thấp (2km) + surface_pressure: áp suất không khí trên bề mặt + et0_fao_evapotranspiration: lượng thoát hơi nước

+ wind_speed_10m: tốc độ gió tại khoảng cách 10m so với mặt đất + wind_direction_10m: hướng gió tại khoảng cách 10m so với mặt

đất

+ wind_gusts_10m: gió giật tại khoảng cách 10m so với mặt đất + us_aqi: chỉ số chất lượng không khí (air quality index), là đặc trưng

cho chất lượng không khí, được tính theo chuẩn Hoa Kỳ

Giá trị AQI theo chuẩn Hoa Kỳ được phân thành các mức như sau:

Trang 15

b Tập dữ liệu dự đoán: gồm 168 bản ghi, mỗi bản ghi ứng với 1 giờ, dự báo thời tiết trong vòng 7 ngày tới Tập dữ liệu này chỉ bao gồm dữ liệu về thời tiết, tức là có các thuộc tính giống hệt như mô tả ở trên ngoại trừ thuộc tính “us_aqi”

Các thuộc tính được chúng em lựa chọn kỹ lưỡng từ hàng chục các thuộc tính thời tiết sao cho chúng có ý nghĩa nhất với mô hình

+ Ngày và giờ là thuộc tính quan trọng, dùng để kết nối các tập dữ liệu với nhau và lựa chọn số ngày mong muốn sử dụng

+ Các thuộc tính nhiệt độ, độ ẩm, sương mù, lượng mưa, tuyết, độ che phủ mây, áp suất không khí đều có ảnh hưởng lớn đến chất lượng không khí ở thời điểm hiện tại

+ Các thuộc tính như lượng thoát hơi nước, tốc độ gió, hướng gió và gió giật không chỉ ảnh hưởng đến chất lượng không khí của hiện tại mà còn liên quan đến chất lượng không khí của khoảng thời gian sau đó

Trang 16

2 Mô tả về công nghệ quản lý dữ liệu được sử dụng trong dự án

2.1 : Pandas

❖ Khác với các công nghệ như Apache Spark, Hadoop hay Kafka rất thích hợp để xử lý dữ liệu lớn với quy mô phân tán Pandas thường được sử dụng để xử lý dữ liệu trung bình đến lớn trên một máy đơn (single machine) Nó là một thư viện xử lý dữ liệu rất mạnh trên Python, cung cấp các cấu trúc dữ liệu nhanh, mạnh mẽ, linh hoạt Pandas được thiết kế để làm việc dễ dàng và trực quan với dữ liệu có cấu trúc (dạng bảng, đa chiều, không đồng nhất) và dữ liệu chuỗi thời gian.

dạng JSON được trả về từ OpenMeteo API thành một cấu trúc dữ liệu là DataFrame để dễ quản lý và xử lý Sau đây là mô tả chi tiết về vai trò của Pandas trong từng hàm cụ thể:

Trang 17

+ Hàm “getAirHistory (lat, lon)”:

● Sử dụng Pandas để tạo DataFrame “hourly_dataframe” từ dữ liệu thời tiết cập nhập hàng giờ được trả về từ OpenMeteo Air Quality API

● Dữ liệu bao gồm thời gian “date” và chỉ số chất lượng không khí “us_aqi”

● Pandas giúp xử lý thông tin thời gian, chuyển đổi đơn vị thời gian và tạo một chuỗi thời gian có tần suất giữa các giờ + Hàm “getWeatherHistory” và “getWeatherForecast ”:

Trang 18

● Sử dụng Pandas để tạo DataFrame “hourly_dataframe” từ dữ liệu thời tiết hàng giờ được trả về từ OpenMeteo Weather Archive API

● Dữ liệu bao gồm thời gian “date” và các biến thời tiết như “nhiệt độ”, “độ ẩm”, “điểm sương”, “áp suất không khí”, v.v ● Pandas giúp xử lý thông tin thời gian và tạo một cấu trúc dữ

liệu dễ quản lý cho việc phân tích dữ liệu thời tiết

- Tiếp đó, Pandas được sử dụng trong quá trình chuẩn bị và xử lý dữ liệu trước khi đưa vào mô hình học máy trong Apache Spark Cụ thể với hàm “runModel”:

● Sử dụng Pandas để thực hiện việc kết hợp (merge) dữ liệu từ “air_history_pd” và “weather_history_pd” dựa trên cột “date” Kết

Ngày đăng: 04/05/2024, 09:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w