1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án môn học mô hình dự báo xác suất để dự đoán ô nhiễm không khí

37 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Thông tin cơ bản

Tiêu đề Mô hình dự báo xác suất để dự đoán ô nhiễm không khí
Tác giả Châu Nhật Tôn
Người hướng dẫn TS Hà Minh Tôn
Trường học Đại Học Nguyễn Tất Thành
Chuyên ngành Phân tích dữ liệu chuỗi thời gian và ứng dụng
Thể loại Đồ án môn học
Năm xuất bản 2023
Thành phố Tp.HCM
Định dạng
Số trang 37
Dung lượng 767,82 KB

Cấu trúc

  • 1.2. Lý do chọn đề tài........................---s- << ©csseseExsExtEExEEevkEEEeEkEEEsEkeerseksereerseseesersrrersee 1 (10)
  • 2.2. Mô hình A RIMA.......................... << TH TH TH TH TH TH TH TH 0 0000 5 1.2.,ẽn(€rỉTA€(................ cọ HH TH TH TH 0 TH 919 610904. 0 800 5 (14)
    • 2.2.1.3. Moving average ...Ô (15)
  • 2.3. Machine learning,.................. .s-- cc co c0 9 t9... TT T4 909 0 T3 19 04.03 t0 7 (16)
    • 2.3.1. Machine learning là gỡ ”.......................... .. ôcọ HH họ nọ họ. HH HE TH ph và 7 (16)
    • 2.3.2. Quy trinh Machine learning.............................. -<-- s << se s99. VY n0 n0 g0 cv 8s. 7 2.3.3.Phân loại Machine learning 8 2.3.4.Ứng dung cita machine learning......cscssssssscsssssescssessessssssessessssessssssseesssseecsses 9 010/9) 1019.0400000 .00.ìì) (0)
  • 3.1. Google ola... . c9 TH TY gọn T040 à 4.08 Á 0.08. 80800 9 3.2. Thu thập dữ liệu............................ << SH... THỌ HH HH HH TH HT HH HH T004 154 10 (0)
  • 3.3. import thư viện và đọc tập dữ liệu..............................-- -- 5< Y0 0185 g9 gay 12 (21)
  • 3.4. Missing data 13 kằ€C\ỡẴ 8 00) (22)
  • CHUONG 4: THUC NGHIEM .25 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRRIÊN...........................--5 5 5c5cc<cscse<2 26 5.1.Kết luận 26 5.2. Hướng phát triển 27 IV. \0019909./79083.7600 1... ................... 27 Mã nguồhn..................... 1 ST 1111 1121111 121112121 111 tt 1n H11 Hay 27 (34)

Nội dung

LỜI CẢM ƠN Trong thời gian thực hiện đồ án của môn Phân tích dữ liệu chuỗi thời gian và ứng dụng em đã được sự giúp đỡ nhiệt tình , những lời khuyên bỗ ích và sự đóng góp nhiệt tình của

Mô hình A RIMA << TH TH TH TH TH TH TH TH 0 0000 5 1.2.,ẽn(€rỉTA€( cọ HH TH TH TH 0 TH 919 610904 0 800 5

Moving average Ô

trình thay đổi trung bình dường như là một chuỗi nhiễu trang

Quá trình moving average sẽ tìm mối liên hệ về mặt tuyên tính giữa các phần tử ngẫu nhién (stochastic term) Chuỗi này phải là một chuỗi nhiễu trắng thỏa mãn các tinh chất:

Phương trình (1) có nghĩa rằng kì vọng của chuỗi bằng 0 đề đảm bảo chuỗi dừng không có sự thay đổi về trung bình theo thời gian

Phương trình (2) là phương sai của chuỗi không đôi Do kì vọng và phương sai không đôi nên chúng ta gọi phân phối của nhiễu trắng là phân phối xác định (identical distribution).

Nhiễu trắng là một thành phần ngẫu nhiên thê hiện cho yếu tô không thê dự báo của model và không có tính qui luật Quá trình trung bình trượt được biểu diễn theo nhiễu trắng như sau:

Quá trình này có thể được biểu diễn theo dịch chuyên trễ - backshift operator B như sau:

Nhu vay chung ta da hinh dung ra moving average la gi Vé mat ý tưởng thì đo chính là qua trinh hồi qui tuyén tính của giá trị hiện tại theo các giá trị hiện tại và qua khư của sai số nhiễu trang (white noise error term) đại diện cho các yêu tô shock ngẫu nhiên, những sự thay đổi không lường trước và giải thích bởi mô hình.

Machine learning, s cc co c0 9 t9 TT T4 909 0 T3 19 04.03 t0 7

Machine learning là gỡ ” ôcọ HH họ nọ họ HH HE TH ph và 7

Mục tiêu của machine learning là phát triển các hệ thông thông minh và tự động hóa việc học và cải thiện mô hình trên cơ sở đữ liệu đầu vào.Các ứng dụng cua machine learning bao gồm nhận dạng hình ảnh, xử lý ngôn ngữ tự nhiên, dự đoán và phân tích đữ liệu

2.3.2.Quy trình Machine learning Quy trình của machine learning sé cho ban thấy quy trình đề làm việc với machine learning sẽ như thế nao

Cụ thê từng bươc trong quy trình của machine learning như sau:

1 Data collection ( thu thập dữ liệu ): để máy tính có thê học được bạn cần có một bộ dữ liệu (dataset) , ban có thé ty thu thập chúng hoặc lấy các bộ dữ liệu đã được công bồ trước đó.Lưu ý là bạn phải thu thập từ nguồn chính thống, có như vậy dữ liệu mới chính xác và máy có thể học một cách đúng đắng và đạt hiệu quả cao hơn

2 Preprocessing (tiền xử lý ): bước này dùng để chuân hóa dữ liệu, loại bỏ các thuộc tính không cần thiết, gan nhãn dữ liệu, mã hóa một số đặc trưng, trích xuất đặc trưng, rút gọn dữ liệu nhưng vẫn đảm bảo kết quả Bước này tốn thời gian nhất tỉ lệ thuận với số lượng đữ liệu bạn có Bước L và bước 2 thướng chiếm hơn 70% tổng thời gian thực hiện

3 Training model (huấn luyện mô hình) : bước này là bước bạn huấn luyện cho mô hình hay chính là cho nó học trên dữ liệu bạn đã thu thập và xử lý ở hai bước đầu

4 Evaluating model (đánh giá mô hình) : sau khi đã huấn luyện mô hình xong, chúng ta cần dùng các độ đo đề đánh giá mô hình, tùy vào từng độ đo khác nhau mà mô hình cũng được đánh giá tốt hay không khác nhau.Độ chính xác của mô hình đạt trên 80% được cho là tốt

5 Improve (cải thiện) : sau khi đã đánh giá mô hình, các mô hình đạt độ chính xác không tốt thi can duoc train lại, chúng ta sẽ lặp lại từ bước 3, cho đến khi đạt độ chính xác như kì vọng Tổng thời gian của 3 bước cuối rời vào khoảng 30% tổng thời gian thực hiện

2.3.3.Phân loại Machine learning Có rất nhiều cách phân loại machine learning, thông thường thì machine learning sẽ được phân thành 2 loại chính:

| Supervised learning : hoc cé giam sát (| Unsupervised learning : hoc khéng giảm sat Ngoai ra, machine learning còn có thê phân làm các loại sau:

C1 Semi — supervised learning : hoc ban giám sát CO Deep learning : hoc sau ( về một van dé nào đó ) 0 Reinforce learning : học củng cố / tăng cường Ở đây mình chỉ đề cập đến cách phân biệt phố biến nhất của học có giám sát và học không giám sát

Supervised learning (hoc co giám sát) là việc cho máy tính học trên dữ liệu đã được gan nhan (label) hay nói cách khác với mỗi đầu vào X¡, chúng ta sẽ có nhãn Y; tương ứng

Unsupervised learning (hoc khéng giam sat) la cho may tinh học trên dữ liệu mà không được gán nhãn , các thuật toán machine learning sẽ tìm ra sự tương quan đữ liệu, mô hình hóa dữ liệu hay chính là làm cho máy tính có kiến thức, hiểu về dữ liệu, từ đó chúng có thé phân loại các dữ liệu về sau thành các nhóm, lớp giống nhau mà chúng dã được học hoặc giảm số chiều dữ liệu (dimension reduction)

2.3.4.Ứng dụng của machine learning Machine learning được ứng dụng cực kỳ nhiều trong đời sống hiện nay trong mọi lĩnh vực như :

Tài chính — ngân hàng Nông nghiệp Tìm kiêm , trích xuất thông tin Sinh học

Mạng máy tính Tự động hóa Robotics Xử ly ngôn ngữ tự nhiên Hoa học

OO OO 8 oO LI oO LI Oo Oo Oo

Thi giac may tinh Và còn áp dụng trên rất nhiều lĩnh vực khác

CHƯƠNG 3: XÂY DỰNG MÔ HÌNH

3.1.Google Colab Google Colaboratory, hay còn được gọi là Google Colab, là một nên tảng trực tuyên miễn phí hỗ trợ người dùng phát triển và chạy mã bằng Python Nền tảng này cung cấp

9 một môi trường để phân tích dữ liệu, nghiên cứu AI và Machine learning Không những thê Google Colab được Google lưu trữ và vận hành trên Cloud Nghĩa là người dùng không cần cài đặt hoặc cài đặt cau hinh bat ki phần mềm nào trên máy tính cục bộ và được truy cập công việc của mình từ bất kỳ nơi đâu có internet

Hinh 3 1.Google colab - Google Colab còn tích hợp voi Google Drive, cho phép người dùng dê dàng lưu trữ và chia sẻ công việc của mình với người khác Ứng dụng cung cấp rất nhiều thư viện đề phân tích dữ liệu mà Machine learning, bao gồm : Numpy , Pandas, Matplotlib.pyplot , TensorFlow, Pytorh và Seaborn Với sự đa dạng này bạn có thê sử dụng cho nhiều tác vụ máy học và phân tích dữ liệu

Dữ liệu là một thứ rât quan trọng trong việc xây dựng mô hình dự đoán Do vậy cân có một nơi đề lấy dữ liệu chính rat ví dụ nhu kange, vn.org, machine learning mastery Va dữ liệu của em được lấy trén trang machine learning mastery

Dữ liệu gồm 2 file đó là eighthr.data, onehr.data

Hình 3 3.Onehr.data Hai file đữ liệu với số liệu khá giống nhau và được ghi nhận từ năm 1998-2004

3.3.import thư viện và đọc tập dữ liệu Bước |: import thu viện

Bước 2: Đọc đữ liệu từ fủle eighthr.data

Hình 3 4.Đọc file eighthr.data 3.4.Missing data

Kiêm tra cac gia tn null trong dữ liệu

Hình 3 5.Kiểm tra các giá trị isnull Kiêm tra xem đữ liệu có bao nhiều cột

Hình 3 6.Kiểm tra dữu liệu có bao nhiêu cột Kiêm tra giá trị trùng lập

Hình 3 7.Kiểm tra dữ liệu trùng lập Kiêm tra dữ liệu bi thiêu

Hình 3 8.Kiểm tra dữ liệu bị thiếu

3.5.Xây dựng mô hình Đâu tiên là chúng ta có 2 file dữ liệu , chúng ta cần đọc file và dự đoán sô ngày có ôzôn và không có ôzôn là bao nhiêu phân trăm

Hình đọc file eighthr.data

Cú thể thấy dữ liệu ủle eighthr.data cú khoảng 93% số ngày khụng cú ụzụn va 6% ngày có ôzôn

Hình đọc file onehr.data

Còn file oner.data thì có khoảng 979% là ngày không có ôzôn và khoảng 39% ngày có ôzôn

Tiếp theo đó , chạy mô hình plot xem ôzôn trong 7 năm biến động như thế nào

Hình 3 9.Hình biểu đồ eighthr.data Có thê thây ôzôn trong 7 năm quá biên động rât cao chạm ngưỡng I là giá trị đo cao nhất trong dữ liệu thu thập

import thư viện và đọc tập dữ liệu 5< Y0 0185 g9 gay 12

Bước 2: Đọc đữ liệu từ fủle eighthr.data

Missing data 13 kằ€C\ỡẴ 8 00)

Kiêm tra cac gia tn null trong dữ liệu

Hình 3 5.Kiểm tra các giá trị isnull Kiêm tra xem đữ liệu có bao nhiều cột

Hình 3 6.Kiểm tra dữu liệu có bao nhiêu cột Kiêm tra giá trị trùng lập

Hình 3 7.Kiểm tra dữ liệu trùng lập Kiêm tra dữ liệu bi thiêu

Hình 3 8.Kiểm tra dữ liệu bị thiếu

3.5.Xây dựng mô hình Đâu tiên là chúng ta có 2 file dữ liệu , chúng ta cần đọc file và dự đoán sô ngày có ôzôn và không có ôzôn là bao nhiêu phân trăm

Hình đọc file eighthr.data

Cú thể thấy dữ liệu ủle eighthr.data cú khoảng 93% số ngày khụng cú ụzụn va 6% ngày có ôzôn

Hình đọc file onehr.data

Còn file oner.data thì có khoảng 979% là ngày không có ôzôn và khoảng 39% ngày có ôzôn

Tiếp theo đó , chạy mô hình plot xem ôzôn trong 7 năm biến động như thế nào

Hình 3 9.Hình biểu đồ eighthr.data Có thê thây ôzôn trong 7 năm quá biên động rât cao chạm ngưỡng I là giá trị đo cao nhất trong dữ liệu thu thập

Nhưng có thê đã thấy dữ liệu ở trên bị “?” khá nhiều bởi vậy ta có phương pháp khắc phục đề thay thê các giá trị bị thiểu bằng cách gán giá trị trung bình hoặc là chúng ta sử dụng dữ liệu để chia thành 72% và 28% đề dự đoán

Dùng hàm brier score loss() đê dự đoán sô điểm brler Điểm sô này có thé coi 1a sai so trung bình của xác suât dự đoán so với xác suât dự kiên

Mô hình cây quyết định

# evaluate ensemble tree methods from numpy import loadtxt from numpy import mean from matplotlib import pyplot from sklearn.base import clone from sklearn.metrics import brier_score_loss from sklearn.ensemble import BaggingClassifier from sklearn.ensemble import ExtraTreesClassifier from sklearn.ensemble import GradientBoostingClassifier from sklearn.ensemble import RandomForestClassifier

# evaluate a sklearn model def evaluate _once(bs_ref, template, trainX, trainy, testX, testy):

# fit model model = clone(template) model fit(trainX, trainy)

# predict probabilities for 0 and | probs = model.predict_proba(testX)

# keep the probabilities for class=1 only yhat = probs[:, 1]

# calculate brier score bs = brier_score_loss(testy, yhat)

# calculate brier skill score bss = (bs - bs_ref) / (0 - bs_ref) return bss

# evaluate an sklearn model n times def evaluate(bs_ref, model, trainX, trainy, testX, testy, n): scores = [evaluate _once(bs_ref, model, trainX, trainy, testX, testy) for _ 1m range(n)] print('>%s, bss=%.6f % (type(model), mean(scores))) retumm scores

# load datasets train = loadtxt('train.csv', delimiter=",’) test = loadtxt(test.csv', delimiter=',')

# split into inputs/outputs trainX, trainy, testX, testy = traim[:,:-1],train[:,-1],test[:,:-1],test[:,-1]

# estimate naive probabilistic forecast naive = sum(train[:,-1]) / train.shape[0]

# forecast the test dataset yhat = [naive for _ in range(len(test))]

20 bs_ref = brier_score_loss(testy, yhat)

# evaluate a suite of ensemble tree methods scores, names = list(), list() n_trees0

# bagging model = BaggingClassifier(n_estimators=n_trees) avg_bss = evaluate(bs_ref, model, tramX, trainy, testX, testy) scores.append(avg_bss) names.append(bagging')

# extra model = ExtraTreesClassifier(n_estimators=n_trees) avg_bss = evaluate(bs_ref, model, tramX, trainy, testX, testy) scores.append(avg_bss) names.append(extra')

# gbm model = GradientBoostingClassifier(n_estimators=n_trees) avg_bss = evaluate(bs_ref, model, tramX, trainy, testX, testy) scores.append(avg_bss) names.append(ứbm')

# r model = RandomForestClassifier(n_estimators=n_trees) avg_bss = evaluate(bs_ref, model, tramX, trainy, testX, testy) scores.append(avg_bss) names.append(rf)

# plot results pyplot.boxplot(scores, labels=names) pyplot.show()

Dự đoán bằng hồi quy tuyến tính

21 thiên thị sai số model = linear_model.LinearRegression() model.fit(trainX, trainy) pred_y = model.predict(trainX) x_ax=range(len(trainX)) plt.scatter(x_ax, trainy, lw=1.5, color="red", label="Kết quả thực tế") pltplot(x_ax, pred_y, lw=1.5, color="blue”, label="Kết quả dự đoán")

# Hiển thị sai số mse = mean_squared_error(trainy, pred_y) print(”Mean Squared Error:",mse) rmse = math.sqrt(mse) print(”Root Mean Squared Error:", rmse) print(r2_ score(trainy, pred_y))

Hình 3 11.Mô hình cây quyết định

#import thư viện from sklearn.model_ selection import train_test_split unport math from sklearn.metrics import mean_squared_error from sklearn.metrics import mean_absolute_error from sklearn.metrics import mean_absolute_percentage_error from sklearn.metrics import r2_ score import matplotlib.pyplot as plt from sklearn.metrics import accuracy_ score from sklearn.linear_model import LinearRegression from sklearn.linear_model import LogisticRegression

23 from sklearn import linear_model model_LinearRegression = LinearRegression() model_LinearRegression.fif(trainX, tramy) predicHion_LimearRegression = model_ LinearRegression.predict(testX)

# H6i Quy Logistic model Logistic = LogisticRegression() model Logistic fit(trainX, trainy) prediction_Logistic = model_ Logistic.predict(testX) LinearRegression Acc = accuracy score(testy, prediction Logistic) model = linear_model.LinearRegression() model.fit(trainX, trainy) pred_y = model.predict(trainX) pred_y_test = model.predict(testX) x_ax=range(len(testX)) plt.scatter(x_ax, testy, lw=1.5, color="red", label="Kết quả thực tế") plt.plot(x_ax, pred_y_test, lw=1.5, color="blue", label="Kết quả dự đoán") print(fTừ bộ dữ liệu có ƒlen(data)} dòng ta lấy ra {len(trainX)} dòng cho máy học và d ùng ƒlen(testX)} dòng để kiểm tra) print(fH6i Quy Tuyén Tinh cho ra kết quá: ƒLinearRegression Acc*100}% Độ Chính Xác)

# Hiển thị sai số plt.title("Két qua dy doan") plt.legend() plt.showQ

# Hiển thị sai số mse = mean_squared_error(trainy, pred_y) print(”Mean Squared Error:",mse)

24 rmse = math.sqrt(mse) print(”Root Mean Squared Error:", rmse) print(r2_ score(trainy, pred_y))

THUC NGHIEM 25 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRRIÊN 5 5 5c5cc<cscse<2 26 5.1.Kết luận 26 5.2 Hướng phát triển 27 IV \0019909./79083.7600 1 27 Mã nguồhn 1 ST 1111 1121111 121112121 111 tt 1n H11 Hay 27

Sau khi ap dung ARIMA va thuật toán cây quyết định và mô hình hồi quy tuyến tính cũng cho độ chính xác khá cao cụ thể là điểm bss khác cao tới 0.074428, điểm bss càng cao thì độ chính xác càng cao

Hình 3 12.Mô hình ARIMA Còn mô hình hồi quy tuyên tính thì cho độ chính xác rat cao

Hình 3 13.Mô hình hồi quy tuyến tính

CHUONG 5: KET LUAN VA HUONG PHAT TRIEN

Sau thời gian thực hiện, chúng em đã thực hiện được một sô kết quả:

Tìm hiểu về khai phá đữ liệu Vai tro cua missing data Tim hiéu vé m6 hinh ARIMA va chu6i thoi gian (Time Series) Tim hiéu vé machine learning va 4p dụng mô hình ARIMA vào bài toán dự báo ô nhiễm không khí

Sau khi áp dụng vào thuật toán , chúng em thấy rằng thuật toán này đem lại độ chính xác khá cao, có thê áp dụng vào những bài toán dự báo khác như bài toán dự báo thời tiết chăng hạn, để đưa ra những phán đoán và phân tích chính xác hơn nữa

Tuy chỉ mới tiếp xúc mới thuật toán và mô hình ARIMA nhưng thấy có độ chính xác rất cao Nếu có thời gian nghiên cứu thêm thì em chắc chắn sẽ tạo ra những mô hình với độ chính xác cao đề áp dụng vào môi trường tự nhiên

[1]Machine-learning-databases/ozone: https://archive.ics.uci.edu/ml/machine-learning- databases/ozone/ , access data: April 20, 2023

[2]Luật sư Nguyễn Văn Dương, nguyên nhân ô nhiễm môi trường : https:/Tuatduongg1a.vn/o-nhiem-moI-truong-la-gi-bieu-hien-nguyen-nhan-khac-phuc- o-nhiem-moi-truong/ , access data: April 20, 2023

[3]Ths.Dang Nhu Phu (2023) ,Lecturer in deep learning at the Faculty of Information Technology, Nguyen Tat Thanh University

[4] Ths.Ha Minh Tan (2023) ,Lecturer in deep learning at the Faculty of Information Technology, Nguyen Tat Thanh University

1 Liímk Google Drive chứa tập dữ liệu và mô hình dự đoán ô nhiễm không khí bằng mô hình ARIMA : https://drive.google.com/drive/folders/

IRk_1WZyegMJrVZ1t8QGldaWyOlumyv XA7?usp=sharing C1 QR Code thu muc chia tap dit ligu va m6 hinh dy doan 6 nhiễm không khi bằng mô hình ARIMA:

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

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

TÀI LIỆU LIÊN QUAN

w