4.1 Xử Lý Giá Trị Thiếu Missing Values Giá trị thiếu trong dữ liệu có thể gây ra nhiều vấn đề cho các mô hình phân tích và dự đoán.. - Xem Các Giá Trị Duy Nhất:+ Để kiểm tra các giá trị
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO CUỐI KỲ HỌC PHẦN
PHÂN TÍCH DỮ LIỆU
ĐỀ TÀI: PHÂN TÍCH DỮ LIỆU THỜI TIẾT Ở AUSTRALIA
Nhóm : 1 Lê Văn Hiếu 21AD021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO CUỐI KỲ HỌC PHẦN
Trang 3LỜI CẢM ƠN
Trong suốt thời gian thực hiện báo cáo cuối kỳ học phần Phân tích dữ liệu,chúng em đã nhận được sự hỗ trợ và giúp đỡ quý báu từ các thầy cô Với tấm lòngchân thành, chúng em xin bày tỏ lòng biết ơn sâu sắc đến tất cả các thầy cô đã tạo điềukiện và giúp đỡ chúng em trong quá trình học tập và nghiên cứu đề tài này
Đặc biệt, chúng em xin gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo TS.Nguyễn Thanh đã trực tiếp hướng dẫn và hỗ trợ chúng em hoàn thành tốt đồ án này
Sự tận tình dạy dỗ và chỉ bảo chu đáo của thầy là nguồn động lực lớn lao giúp chúng
em vượt qua mọi khó khăn để đạt được kết quả như ngày hôm nay
Chúng em cũng nhận thức rằng, do điều kiện thời gian và kinh nghiệm còn hạnchế, đồ án này không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được
sự chỉ bảo và góp ý từ các thầy cô để có thể hoàn thiện hơn, nâng cao kiến thức và kỹnăng, phục vụ tốt hơn cho công việc sau này
Chúng em xin trân trọng cảm ơn.
Sinh viên
Lê Văn Hiếu Trần Thị Thành Nguyễn Thành Đức Phan Nguyễn Thành An
Trang 4MỤC LỤC
Phần 1 TỔNG QUAN VỀ CÁC KIỂU DỮ LIỆU 1
1.1 Dữ liệu định tính (Qualitative Data) 1
1.2 Dữ liệu định lượng (Quantitative Data) 1
1.3 Dữ liệu dạng văn bản (Text Data) 1
1.4 Dữ liệu dạng thời gian (Time Series Data) 1
1.5 Dữ liệu dạng không gian (Spatial Data) 2
1.6 Dữ liệu hình ảnh (Image Data) 2
1.7 Dữ liệu âm thanh (Audio Data) 2
1.8 Dữ liệu video (Video Data) 2
Phần 2 GIỚI THIỆU VỀ DATASET 3
2.1 Tổng quan về dataset 3
2.2 Các cột dữ liệu chính trong dataset 3
2.3 Mục đích sử dụng của dataset 4
Phần 3 GIẢI THÍCH CÁC BIẾN TRONG DATASET 5
Phần 4 TRÌNH BÀY CÁC BƯỚC TIỀN XỬ LÝ DỮ LIỆU 8
4.1 Xử Lý Giá Trị Thiếu (Missing Values) 8
4.1 Xử Lý Giá Trị Ngoại Lai (Outlier Values) 16
Phần 5 CHUẨN HÓA DỮ LIỆU 19
5.1 Định nghĩa và Mục đích 19
5.2 Các phương pháp chuẩn hoá phổ biến 19
5.3 Ứng dụng chuẩn hóa dữ liệu trong dataset weatherAUS.csv 20
Phần 6 TẠO CÁC BIẾN MỚI CÓ Ý NGHĨA DỰA VÀO CÁC BIẾN ĐÃ CÓ 22
Trang 56.1 Mục tiêu 22
6.2 Tạo biến mới từ biến Date 22
6.2 Tạo biến mới từ biến RainToday 24
6.3 Kết luận 26
Phần 7 NÊU CÁC CÂU HỎI NGHIÊN CỨU VÀ PHÂN TÍCH, THỐNG KÊ, TRỰC QUAN VÀ GIẢI THÍCH Ý NGHĨA CHO TỪNG BIỂU ĐỒ 27
7.1 Câu hỏi nghiên cứu 1 27
7.2 Câu hỏi nghiên cứu 2 29
7.3 Câu hỏi nghiên cứu 3 31
7.4 Câu hỏi nghiên cứu 4 33
7.5 Câu hỏi nghiên cứu 5 35
7.6 Câu hỏi nghiên cứu 6 37
7.7 Câu hỏi nghiên cứu 7 39
7.8 Câu hỏi nghiên cứu 8 40
7.9 Câu hỏi nghiên cứu 9 42
7.10 Câu hỏi nghiên cứu 10 44
Phần 8 XÂY DỰNG CÁC MÔ HÌNH VÀ ĐÁNH GIÁ ĐỘ CHÍNH XÁC, GIẢI THÍCH Ý NGHĨA CỦA MÔ HÌNH, DỰ BÁO 46
8.1 Mô hình Logistic Regression 46
8.2 Mô hình Random Forest 51
8.3 Mô hình KNN (K-Nearest Neighbors) 55
8.4 Mô hình ANN 62
8.5 Mô hình LSTM 66
8.6 Giải thích ý nghĩa của mô hình 70
8.7 Ứng dụng (Dự báo với dữ liệu mới) 73
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
Từ viết tắt/ Ký
hiệu
Tiếng Việt Tiếng Anh
DDBS Hệ cơ sở dữ liệu phân tán Distributed database systemMAONT Mô hình nâng cao của giao dịch
lồng nhau
Model advanced of opennested transaction
Trang 7DANH MỤC BẢNG
Bảng 1 : Giải thích các biến trong bộ dữ liệu 5Bảng 2 : Ma trận nhầm lẫn của mô hình KNN 57
Trang 8DANH MỤC HÌNH ẢNH
Hình 1 : Bộ dữ liệu 3
Hình 2 : Khám phá biến mục tiêu - RainTomorrow 8
Hình 3 : Xem số lượng giá trị duy nhất 1 - RainTomorrow 8
Hình 4 : Xem số lượng giá trị duy nhất 2 - RainTomorrow 9
Hình 5 : Biểu đồ số lượng record trong RainTomorrow .10
Hình 6 : Khám phá các biến phân loại 10
Hình 7 : Khám phá các vấn đề trong biến phân loại 11
Hình 8 : Xử lý các giá trị bị thiếu trong biến phân loại - 1 12
Hình 9 : Xử lý các giá trị bị thiếu trong biến phân loại - 2 12
Hình 10 : Xem tần suất của các biến phân loại 13
Hình 11 : Kiểm tra số lượng trong các biến phân loại 13
Hình 12 : Khám phá biến số 13
Hình 13 : Kiểm tra giá trị còn thiếu trong các biến số 14
Hình 14 : Xử lý ngoại lệ cho các biến số - 1 15
Hình 15 : Xử lý ngoại lệ cho các biến số - 2 15
Hình 16 : Danh sách các biến số sau khi xử lý ngoại lệ 15
Hình 17 : Trước khi xử lý ngoại lai 16
Hình 18 : Sau khi xử lý ngoại lai 18
Hình 19 : Min-Max Scaling 19
Hình 20 : Standardization 19
Hình 21 : Robust Scaling 20
Hình 22 : Tiền xử lý dữ liệu - Loại bỏ na 20
Hình 23 : Tiền xử lý dữ liệu - Xem mô tả tập dữ liệu 21
Trang 9Hình 24 : Chuẩn hoá dữ liệu với Min-Max Scaling 21
Hình 25 : Kết quả chuẩn hoá dữ liệu với Min-Max Scaling 21
Hình 26 : Chuyển đổi biến Date sang định dạng datetime 22
Hình 27 : Trích xuất năm từ biến Date 22
Hình 28 : Trích xuất tháng từ biến Date 23
Hình 29 : Trích xuất ngày từ biến Date 23
Hình 30 : Xoá biến Date ban đầu 23
Hình 31 : Info của tập dataset 24
Hình 32 : Tạo ra biến phân loại mới RainToday_0 và RainToday_1 25
Hình 33 : Câu hỏi nghiên cứu 1 27
Hình 34 : Vẽ biểu đồ trực quan - Câu hỏi nghiên cứu 1 28
Hình 35 : Câu hỏi nghiên cứu 2 29
Hình 36 : Trực quan biểu đồ - Câu hỏi nghiên cứu 2 30
Hình 37 : Câu hỏi nghiên cứu 3 32
Hình 38 : Biều đồ trực quan - Câu hỏi nghiên cứu 3 32
Hình 39 : Câu hỏi nghiên cứu 4 33
Hình 40 : Trực quan biểu đồ - Câu hỏi nghiên cứu 4 34
Hình 41 : Câu hỏi nghiên cứu 5 35
Hình 42 : Biểu đồ trực quan - Câu hỏi nghiên cứu 5 36
Hình 43 : Câu hỏi nghiên cứu 6 37
Hình 44 : Câu hỏi nghiên cứu 7 39
Hình 45 : Câu hỏi nghiên cứu 8 40
Hình 46 : Trực quan biểu đồ - Câu hỏi nghiên cứu 8 41
Hình 47 : Câu hỏi nghiên cứu 9 42
Trang 10Hình 48 : Biểu đồ trực quan - Câu hỏi nghiên cứu 9 43
Hình 49 : Câu hỏi nghiên cứu 10 44
Hình 50 : Mô hình Logistic Regression 46
Hình 51 : Khởi tạo mô hình Logistic Regression 46
Hình 52 : Huấn luyện mô hình Logistic Regression 46
Hình 53 : Lưu và tải mô hình Logistic Regression 47
Hình 54 : Cross-validated ROC AUC Logistic Regression 47
Hình 55 : Báo cáo phân loại mô hình Logistic Regression 47
Hình 56 : Thời gian training mô hình Logistic Regression 48
Hình 57 : Ma trận nhầm lẫn mô hình Logistic Regression 49
Hình 58 : ROC Curve mô hình Logistic Regression 50
Hình 59 : Đánh giá hiệu suất mô hình Logistic Regression 51
Hình 60 : Mô hình Random Forest 51
Hình 61 : Ma trận nhầm lẫn mô hình Random Forest 53
Hình 62 : Đánh giá hiệu suất mô hình Random Forest 54
Hình 63 : ROC Curve mô hình Random Forest 55
Hình 64 : Mô hình KNN 56
Hình 65 : Ma trận nhầm lẫn mô hình KNN 58
Hình 66 : Các chỉ số hiệu suất mô hình KNN 59
Hình 67 : ROC Curve mô hình KNN 60
Hình 68 : Precision-Recall Curve mô hình KNN 61
Hình 69 : Mô hình ANN - 1 62
Hình 70 : Mô hình ANN - 2 62
Hình 71 : Learning curves loss mô hình KNN 63
Trang 11Hình 72 : Learning curves accuracy mô hình KNN 64
Hình 73 : Các chỉ số hiệu suất mô hình KNN - 1 65
Hình 74 : Các chỉ số hiệu suất mô hình KNN - 2 66
Hình 75 : Mô hình LSTM 67
Hình 76 : Khởi tạo tham số LSTM 69
Hình 77 : Định nghĩa mô hình LSTM 69
Hình 78 : Các chỉ số đánh giá mô hình LSTM 70
Hình 79 : Ứng dụng dự báo 73
Trang 12Phần 1 TỔNG QUAN VỀ CÁC KIỂU DỮ LIỆU
Trong môn phân tích dữ liệu, kiểu dữ liệu đóng vai trò rất quan trọng trong việcthu thập, xử lý, và phân tích thông tin Dưới đây là tổng quan về các kiểu dữ liệuthường gặp:
1.1 Dữ liệu định tính (Qualitative Data)
Dữ liệu định tính mô tả các đặc điểm hoặc thuộc tính mà không thể biểu diễnbằng số Nó bao gồm:
+ Dữ liệu danh nghĩa (Nominal Data): Là dữ liệu được sử dụng để gán tên hoặcnhãn cho các danh mục mà không có thứ tự cụ thể Ví dụ: giới tính (nam, nữ), loại xe(xe hơi, xe máy, xe đạp)
+ Dữ liệu thứ tự (Ordinal Data): Là dữ liệu danh nghĩa nhưng có thứ tự hoặcmức độ Ví dụ: mức độ hài lòng (rất không hài lòng, không hài lòng, bình thường, hàilòng, rất hài lòng), cấp bậc học vấn (tiểu học, trung học, đại học)
1.2 Dữ liệu định lượng (Quantitative Data)
Dữ liệu định lượng là dữ liệu có thể được đo lường và biểu diễn bằng số Nóbao gồm:
+ Dữ liệu khoảng (Interval Data): Là dữ liệu có khoảng cách đều nhau giữa cácgiá trị nhưng không có điểm gốc (zero) tuyệt đối Ví dụ: nhiệt độ (°C, °F), năm (1990,2000)
+ Dữ liệu tỉ lệ (Ratio Data): Là dữ liệu có cả khoảng cách đều nhau và điểm gốctuyệt đối, cho phép thực hiện các phép toán nhân và chia Ví dụ: chiều cao, cân nặng,tuổi tác, thu nhập
1.3 Dữ liệu dạng văn bản (Text Data)
Dữ liệu văn bản là dữ liệu dạng chuỗi ký tự, thường được sử dụng để biểu diễnthông tin không có cấu trúc rõ ràng Ví dụ: bài viết, bình luận, email
1.4 Dữ liệu dạng thời gian (Time Series Data)
Dữ liệu thời gian là dữ liệu được thu thập theo thời gian, thường là liên tục hoặc
Trang 13theo khoảng thời gian đều đặn Ví dụ: giá cổ phiếu theo ngày, nhiệt độ theo giờ, doanh
số bán hàng theo tháng
1.5 Dữ liệu dạng không gian (Spatial Data)
Dữ liệu không gian mô tả các thông tin liên quan đến vị trí địa lý hoặc khônggian Ví dụ: tọa độ GPS, bản đồ, dữ liệu địa lý
1.6 Dữ liệu hình ảnh (Image Data)
Dữ liệu hình ảnh là dữ liệu đồ họa, có thể là ảnh kỹ thuật số, ảnh y khoa, hoặccác dạng hình ảnh khác Ví dụ: ảnh chụp, biểu đồ
1.7 Dữ liệu âm thanh (Audio Data)
Dữ liệu âm thanh là dữ liệu dạng sóng âm thanh, thường được biểu diễn dướidạng tín hiệu số Ví dụ: bản ghi âm, podcast, nhạc
1.8 Dữ liệu video (Video Data)
Dữ liệu video là tập hợp các khung hình hình ảnh kết hợp với âm thanh, tạothành một chuỗi video Ví dụ: video clip, phim, ghi hình
Kết luận: Việc nhận diện và hiểu rõ các kiểu dữ liệu là bước đầu quan trọngtrong quá trình phân tích dữ liệu Mỗi loại dữ liệu có cách xử lý và phân tích riêng, do
đó việc lựa chọn phương pháp phù hợp sẽ giúp cho quá trình phân tích trở nên hiệuquả và chính xác hơn
Trang 14Phần 2 GIỚI THIỆU VỀ DATASET
2.1 Tổng quan về dataset
Bộ dữ liệu này chứa dữ liệu quan sát thời tiết hàng ngày trong khoảng 10 năm
từ nhiều trạm thời tiết của Úc Bộ dữ liệu bao gồm 145460 hàng và 23 cột khác nhau.Dataset weatherAUS.csv là một tập dữ liệu về thời tiết tại các địa điểm khácnhau ở Úc Nó chứa thông tin về các yếu tố thời tiết như nhiệt độ, độ ẩm, lượng mưa,
và các chỉ số khác qua nhiều năm Dưới đây là một cái nhìn tổng quan về các thànhphần và ý nghĩa của các cột trong dataset này
RainTomorrow là biến mục tiêu để dự đoán Nó có nghĩa là trời có mưa vàongày hôm sau không, Yes or No ( Có hoặc Không?)
Cột này là Yes (Có) nếu lượng mưa trong ngày hôm đó là 1mm trở lên
Hình 1 : Bộ dữ liệu
2.2 Các cột dữ liệu chính trong dataset
- Date: Ngày ghi nhận dữ liệu (định dạng YYYY-MM-DD)
- Location: Địa điểm ghi nhận dữ liệu (tên các thành phố hoặc thị trấn ở Úc)
- MinTemp: Nhiệt độ thấp nhất trong ngày (°C)
- MaxTemp: Nhiệt độ cao nhất trong ngày (°C)
- Rainfall: Lượng mưa trong ngày (mm)
- Evaporation: Lượng nước bốc hơi trong ngày (mm)
- Sunshine: Thời gian có nắng trong ngày (giờ)
- WindGustDir: Hướng gió giật mạnh nhất trong ngày
- WindGustSpeed: Tốc độ gió giật mạnh nhất trong ngày (km/h)
- WindDir9am: Hướng gió lúc 9 giờ sáng
Trang 15- WindDir3pm: Hướng gió lúc 3 giờ chiều.
- WindSpeed9am: Tốc độ gió lúc 9 giờ sáng (km/h)
- WindSpeed3pm: Tốc độ gió lúc 3 giờ chiều (km/h)
- Humidity9am: Độ ẩm lúc 9 giờ sáng (%)
- Humidity3pm: Độ ẩm lúc 3 giờ chiều (%)
- Pressure9am: Áp suất khí quyển lúc 9 giờ sáng (hPa)
- Pressure3pm: Áp suất khí quyển lúc 3 giờ chiều (hPa)
- Cloud9am: Mức độ mây che phủ lúc 9 giờ sáng (okta)
- Cloud3pm: Mức độ mây che phủ lúc 3 giờ chiều (okta)
- Temp9am: Nhiệt độ lúc 9 giờ sáng (°C)
- Temp3pm: Nhiệt độ lúc 3 giờ chiều (°C)
- RainToday: Có mưa trong ngày (Yes hoặc No)
- RainTomorrow: Có mưa vào ngày hôm sau (Yes hoặc No)
2.3 Mục đích sử dụng của dataset
Dự báo thời tiết: Một trong những ứng dụng phổ biến nhất của dataset này là dựbáo thời tiết Các mô hình máy học có thể được đào tạo để dự đoán các yếu tố thời tiếttrong tương lai, chẳng hạn như nhiệt độ, lượng mưa, hay hướng gió
Phân tích xu hướng thời tiết: Phân tích dữ liệu lịch sử để tìm hiểu các xu hướngthời tiết theo thời gian Điều này có thể giúp hiểu rõ hơn về sự biến đổi khí hậu và ảnhhưởng của nó đến các khu vực khác nhau
Quyết định nông nghiệp: Thông tin về thời tiết là rất quan trọng đối với nôngnghiệp Dữ liệu này có thể giúp nông dân đưa ra các quyết định về thời gian trồng trọt
và thu hoạch, cũng như các biện pháp bảo vệ cây trồng khỏi thời tiết khắc nghiệt.Kết luận: Dataset weatherAUS.csv cung cấp một nguồn dữ liệu phong phú vàhữu ích cho nhiều mục đích phân tích và dự báo thời tiết Hiểu rõ cấu trúc và ý nghĩacủa từng cột dữ liệu là bước đầu tiên quan trọng trong việc tận dụng tối đa giá trị củanó
Phần 3 GIẢI THÍCH CÁC BIẾN TRONG DATASET
Trang 16Dataset weatherAUS.csv bao gồm nhiều biến số, mỗi biến số đại diện cho mộtyếu tố hoặc chỉ số thời tiết Dưới đây là bảng giải thích chi tiết về từng biến số trongdataset này:
Bảng 1 : Giải thích các biến trong bộ dữ liệu
STT Tên biến Loại dữliệu Định dạng Đơn vị Mô tả
1 Date (Nominal)Định tính
MM-DD(năm-tháng-ngày)
YYYY-Ngày ghinhận dữ liệu
2 Location (Nominal)Định tính
Tên cácthành phốhoặc thịtrấn ở Úc
Địa điểm ghinhận dữ liệu
Địnhlượng(Ratio)
Số thực °C (độ C)
Nhiệt độ thấpnhất trongngày
mm(milimét)
Lượng mưatrong ngày
Hướng giógiật mạnhnhất trongngày (ví dụ:
N, S, E, W)
9 WindGustSpeed Định Số nguyên km/h Tốc độ gió
Trang 17(kilômét/giờ)
giật mạnhnhất trongngày
10 WindDir9am (Nominal)Định tính
Chuỗi ký
tự (ký hiệuhướng gió)
Hướng giólúc 9 giờsáng
11 WindDir3pm (Nominal)Định tính tự (ký hiệuChuỗi ký
hướng gió)
Hướng giólúc 3 giờchiều
12 WindSpeed9am
Địnhlượng(Ratio) Số nguyên.
km/h(kilômét/giờ)
Tốc độ giólúc 9 giờsáng
13 WindSpeed3pm
Địnhlượng(Ratio)
Số nguyên
km/h(kilômét/giờ)
Tốc độ giólúc 3 giờchiều
Độ ẩm lúc 3giờ chiều
16 Pressure9am
Địnhlượng(Ratio)
Số thực
hPa(hectopascal)
Áp suất khíquyển lúc 9giờ sáng
18 Cloud9am
Địnhlượng(Interval)
Số nguyên(0-8)
okta (đơn vị
đo lượngmây)
Mức độ mâyche phủ lúc 9giờ sáng
19 Cloud3pm lượngĐịnh
(Interval)
Số nguyên(0-8)
okta (đơn vị
đo lượngmây)
Mức độ mâyche phủ lúc 3giờ chiều(okta)
Địnhlượng(Ratio)
Số thực °C (độ C) Nhiệt độ lúc9 giờ sáng
Trang 1821 Temp3pm
Địnhlượng(Ratio) Số thực °C (độ C)
Nhiệt độ lúc
3 giờ chiều(°C)
22 RainToday (Nominal)Định tính Chuỗi kýtự
Có mưatrong ngàykhông (Yeshoặc No)
23 RainTomorrow (Nominal)Định tính Chuỗi kýtự
Có mưa vàongày hômsau không(Yes hoặcNo)
Phần 4 TRÌNH BÀY CÁC BƯỚC TIỀN XỬ LÝ DỮ
Trang 194.1 Xử Lý Giá Trị Thiếu (Missing Values)
Giá trị thiếu trong dữ liệu có thể gây ra nhiều vấn đề cho các mô hình phân tích
và dự đoán Dưới đây là các bước xử lý giá trị thiếu trong bộ dữ liệu thời tiết ởAustralia
- Khám phá biến mục tiêu RainTomorrow:
+ Để kiểm tra số lượng giá trị thiếu trong biến mục tiêu RainTomorrow
Hình 2 : Khám phá biến mục tiêu - RainTomorrow
+ Giải thích: Số lượng giá trị thiếu trong biến RainTomorrow là 3267 Điều nàycho thấy có một lượng đáng kể các giá trị thiếu cần được xử lý trước khi tiến hành cácbước phân tích tiếp theo
- Xem Số Lượng Giá Trị Duy Nhất:
+ Để kiểm tra số lượng giá trị duy nhất trong biến RainTomorrow
Hình 3 : Xem số lượng giá trị duy nhất 1 - RainTomorrow
+ Giải thích: Biến RainTomorrow có 2 giá trị duy nhất Điều này cho thấy biếnnày là một biến phân loại nhị phân, với hai trạng thái có thể là "Yes" (có mưa vào ngàymai) và "No" (không có mưa vào ngày mai)
Trang 20- Xem Các Giá Trị Duy Nhất:
+ Để kiểm tra các giá trị duy nhất trong biến RainTomorrow:
Hình 4 : Xem số lượng giá trị duy nhất 2 - RainTomorrow
+ Giải thích: Biến RainTomorrow có ba giá trị: 'No', 'Yes', và nan (giá trị thiếu).Điều này cho thấy rằng dữ liệu của chúng ta có một số bản ghi thiếu giá trị trong biếnnày
- Xử Lý Giá Trị Thiếu: Sau khi loại bỏ các bản ghi thiếu giá trị trong biếnRainTomorrow, không còn bản ghi nào bị thiếu giá trị trong biến này nữa
- Trực quan hóa phân bố tần số của biến RainTomorrow: Biểu đồ cột và biểu đồngang dưới biểu diễn tần suất (số lượng) của hai loại giá trị trong biến RainTomorrow:+ No (Không mưa): Cột màu đỏ cho thấy số lượng trường hợp dự đoán không
có mưa ngày mai là cao hơn hẳn so với trường hợp có mưa Số lượng này vượt quá100.000
+ Yes (Có mưa): Cột màu xanh biểu thị số lượng trường hợp dự đoán có mưangày mai, thấp hơn đáng kể, chỉ khoảng 30.000
Trang 21Hình 5 : Biểu đồ số lượng record trong RainTomorrow
Các loại biến: Trong phần này, tách tập dữ liệu thành các biến phân loại và số
Có sự kết hợp của các biến phân loại và số trong tập dữ liệu Các biến phân loại có đốitượng kiểu dữ liệu Các biến số có kiểu dữ liệu float64 Trước hết, sẽ tìm các biếnphân loại
- Khám phá các biến phân loại: Bước khám phá dưới đã xác định được 7 biến
phân loại trong dữ liệu Các biến này chứa thông tin hữu ích về thời gian, địa điểm,hướng gió, và tình trạng mưa, rất quan trọng trong việc dự báo thời tiết ngày mai Việc
xử lý và chuyển đổi đúng cách sẽ giúp cải thiện chất lượng của mô hình dự đoán
Hình 6 : Khám phá các biến phân loạiTrong quá trình phân tích tập dữ liệu, 6 biến phân loại được xác định bao gồm:Location, WindGustDir, WindDir9am, WindDir3pm, RainToday, và RainTomorrow
Trang 22Các biến này chứa thông tin quan trọng về thời gian, địa điểm, hướng gió, và tìnhtrạng mưa, rất cần thiết cho việc dự báo thời tiết ngày mai Tuy nhiên, một số biến cógiá trị còn thiếu (missing values), cụ thể như sau:
+ WindGustDir: 9,330 giá trị còn thiếu
+ WindDir9am: 10,013 giá trị còn thiếu
+ WindDir3pm: 3,778 giá trị còn thiếu
+ RainToday: 1,406 giá trị còn thiếu
+ Location và RainTomorrow không có giá trị thiếu
Để xử lý vấn đề này, các chiến lược phù hợp sẽ được áp dụng nhằm đảm bảotính toàn vẹn của dữ liệu Đối với các biến hướng gió (WindGustDir, WindDir9am,WindDir3pm), giá trị thiếu có thể được điền bằng giá trị phổ biến nhất (mode), hoặcđược nhóm theo Location để thay thế dựa trên đặc thù khu vực Biến RainToday cóthể được xử lý dựa vào mode hoặc dựa vào lượng mưa (Rainfall): nếu lượng mưa vượtmột ngưỡng xác định (ví dụ: >1mm), giá trị sẽ được điền là Yes, ngược lại là No Haibiến Location và RainTomorrow không có giá trị thiếu nên giữ nguyên
Hình 7 : Khám phá các vấn đề trong biến phân loại
- Xử lý các giá trị bị thiếu trong các biến phân loại
+ Trong quá trình phân tích, chúng tôi nhận thấy các biến phân loại có dữ liệu
Trang 23bị thiếu Cụ thể, tỷ lệ dữ liệu thiếu của các biến như sau: WindGustDir: 6.56%WindDir9am: 7.04% WindDir3pm: 2.66% RainToday: 0.99%
Hình 8 : Xử lý các giá trị bị thiếu trong biến phân loại - 1
+ Để xử lý dữ liệu thiếu, chúng tôi sử dụng giá trị mode (giá trị xuất hiện nhiềunhất) của từng biến để điền vào các ô trống Sau khi thực hiện, không còn dữ liệu thiếutrong các biến phân loại Kết quả là sau khi điền giá trị thiếu, kiểm tra lại dữ liệu chothấy không còn biến nào có giá trị thiếu
Hình 9 : Xử lý các giá trị bị thiếu trong biến phân loại - 2
- Để hiểu rõ hơn về dữ liệu, chúng tôi kiểm tra tần suất xuất hiện của từng giátrị trong các biến phân loại Tần suất các biến phân loại:
+ Date: Có 3436 giá trị khác nhau, mỗi giá trị tương ứng với một ngày cụ thể.+ Location: Có 49 địa điểm khác nhau
+ WindGustDir: Có 16 hướng gió khác nhau, với hướng W chiếm tỷ lệ cao nhất(13.44%)
+ WindDir9am: Có 16 hướng gió khác nhau, với hướng N chiếm tỷ lệ cao nhất(15.05%)
+ WindDir3pm: Có 16 hướng gió khác nhau, với hướng SE chiếm tỷ lệ caonhất (10.16%)
Trang 24RainToday: Có hai giá trị: "No" (77.88%) và "Yes" (22.12%).
RainTomorrow: Có hai giá trị: "No" (77.58%) và "Yes" (22.42%)
Hình 10 : Xem tần suất của các biến phân loại
Hình 11 : Kiểm tra số lượng trong các biến phân loại
- Khám phá các biến số : Trong tập dữ liệu của chúng ta, có tổng cộng 19 biến số
học (numerical variables) cần được xem xét kỹ lưỡng
Hình 12 : Khám phá biến số
- Giá trị thiếu trong các biến số:
Trang 25+ MinTemp và MaxTemp: Có ít giá trị thiếu so với tổng số lượng dữ liệu.(MinTemp: 637 giá trị thiếu, MaxTemp: 322 giá trị thiếu.)
+ Rainfall: Lượng mưa thiếu nhiều hơn, với 1406 giá trị thiếu
+ Evaporation và Sunshine: Có lượng giá trị thiếu rất lớn (Evaporation: 60843giá trị thiếu, Sunshine: 67816 giá trị thiếu.)
+ WindGustSpeed, WindSpeed9am, WindSpeed3pm: Các giá trị liên quan đếntốc độ gió cũng thiếu đáng kể (WindGustSpeed: 9270 giá trị thiếu WindSpeed9am:
1348 giá trị thiếu WindSpeed3pm: 2630 giá trị thiếu.)
+ Humidity9am và Humidity3pm: Độ ẩm thiếu ở mức vừa phải.(Humidity9am:
1774 giá trị thiếu Humidity3pm: 3610 giá trị thiếu.)
+ Pressure9am và Pressure3pm: Áp suất có nhiều giá trị thiếu.(Pressure9am:
14014 giá trị thiếu Pressure3pm: 13981 giá trị thiếu.)
+ Cloud9am và Cloud3pm: Độ che phủ mây thiếu nhiều nhất.(Cloud9am:
53657 giá trị thiếu Cloud3pm: 57094 giá trị thiếu.)
+ Temp9am và Temp3pm: Nhiệt độ thiếu ở mức trung bình.(Temp9am: 904 giátrị thiếu Temp3pm: 2726 giá trị thiếu.)
+ Year, Month, Day: Không có giá trị thiếu cho các biến này
Hình 13 : Kiểm tra giá trị còn thiếu trong các biến số
- Chúng ta đã xử lý các giá trị thiếu trong các biến số bằng cách thay thế chúngbằng giá trị trung vị của cột tương ứng Dưới đây là các bước chi tiết và kết quả kiểmtra sau khi xử lý:
Trang 26+ Chúng ta tính tỷ lệ giá trị thiếu cho từng biến số và hiển thị chúng:
Hình 14 : Xử lý ngoại lệ cho các biến số - 1+ Thay thế giá trị thiếu bằng giá trị trung vị
Hình 15 : Xử lý ngoại lệ cho các biến số - 2+ Kiểm tra lại giá trị thiếu sau khi thay thế
Hình 16 : Danh sách các biến số sau khi xử lý ngoại lệ
4.1 Xử Lý Giá Trị Ngoại Lai (Outlier Values)
Trang 27Giá trị ngoại lai là những giá trị khác biệt rõ rệt so với phần còn lại của dữ liệu
và có thể ảnh hưởng tiêu cực đến kết quả phân tích Dưới đây là các bước xử lý giá trịngoại lai
Khám phá và xử lý giá trị ngoại lệ với các biến số - Rainfall, Evaporation,WindSpeed9am, WindSpeed3pm
Khi kiểm tra các biến số trong dữ liệu, các cột Rainfall (Lượng mưa),Evaporation (Bốc hơi), WindSpeed9am, và WindSpeed3pm được xác định có thể chứagiá trị ngoại lệ Để hiểu rõ hơn về vấn đề, biểu đồ hộp (boxplot) đã được vẽ nhằm trựcquan hóa sự phân phối của các giá trị và phát hiện các ngoại lệ
Hình 17 : Trước khi xử lý ngoại lai
1 Rainfall (Lượng mưa):
Quan sát biểu đồ cho thấy có một số giá trị vượt ra ngoài khoảng giới hạn trên(upper whisker), được xem là ngoại lệ Những giá trị này xuất hiện trong khoảng từ0.6 đến 1.0 mm
Nhận xét đây có thể là do các cơn mưa lớn bất thường Các ngoại lệ này cầnđược kiểm tra thêm để xem xét tính hợp lệ và ảnh hưởng đến phân tích
2 Evaporation (Bốc hơi):
Trang 28Quan sát biểu đồ thể hiện rất nhiều giá trị ngoại lệ ở phía trên Sự phân bố nàycho thấy phần lớn các giá trị tập trung dưới mức 8 mm, nhưng có một số điểm caovượt ngưỡng 12-14 mm.
Nhận xét điều này có thể xảy ra trong những ngày thời tiết khắc nghiệt hoặc cóthể là lỗi đo lường Các giá trị này cần được xử lý cẩn thận để giảm tác động đến cáckết quả phân tích
3 WindSpeed9am:
Quan sát phân phối của tốc độ gió lúc 9 giờ sáng khá đồng đều, với rất ít hoặckhông có ngoại lệ rõ ràng Phạm vi giá trị nằm trong khoảng từ 0 đến khoảng 35 km/h.Nhận xét dữ liệu này dường như không có vấn đề lớn về ngoại lệ Có thể sửdụng trực tiếp mà không cần xử lý bổ sung
4 WindSpeed3pm:
Quan sát tương tự như WindSpeed9am, biểu đồ không cho thấy ngoại lệ đáng
kể Phân bố giá trị nằm trong khoảng từ 0 đến khoảng 40 km/h
Nhận xét tốc độ gió lúc 3 giờ chiều có sự phân bố ổn định và không cần cácbiện pháp xử lý ngoại lệ phức tạp
- Xử lý ngoại lệ sử dụng phương pháp Interquartile Range (IQR)
Trong phân tích dữ liệu, việc xử lý các giá trị ngoại lệ là một bước quan trọngnhằm loại bỏ các yếu tố gây méo mó kết quả và ảnh hưởng tiêu cực đến hiệu suất của
mô hình Sử dụng phương pháp Interquartile Range (IQR) để xác định và thay thế cácgiá trị ngoại lệ Phương pháp này dựa trên khoảng cách giữa phần tư thứ ba (Q3) vàphần tư thứ nhất (Q1) để tính ngưỡng dưới và ngưỡng trên, qua đó phát hiện các giá trịnằm ngoài phạm vi hợp lý
Đối với biến Rainfall, các giá trị ngoại lệ được xác định là nhỏ hơn -3.0 hoặclớn hơn 3.2 Dựa trên phân tích, các giá trị này đã được thay thế bằng giá trị trung bìnhcủa cột Rainfall để giảm thiểu sự sai lệch Điều này giúp làm sạch dữ liệu mà vẫn giữđược đặc điểm chung của biến số
Đối với biến Evaporation, áp dụng phương pháp tương tự để tính toán cácngưỡng ngoại lệ Các giá trị nhỏ hơn -3.0 hoặc lớn hơn 3.225 đã được thay thế bằnggiá trị trung bình của cột Kết quả là biến Evaporation không còn chứa các giá trị bấtthường, đảm bảo tính toàn vẹn của dữ liệu
Trang 29Biến WindSpeed9am cũng được xử lý theo cách tương tự Các giá trị ngoại lệđược xác định là nhỏ hơn 2.5 hoặc lớn hơn 23.5, và thay thế những giá trị này bằngtrung bình của cột WindSpeed9am Đối với biến WindSpeed3pm, các giá trị ngoàikhoảng 8.35 và 28.5 đã được thay thế để đảm bảo tính chính xác của dữ liệu.Sau khi xử lý ngoại lệ, vẽ lại biểu đồ boxplot để kiểm tra kết quả Biểu đồ chothấy rằng các giá trị cực đoan đã được loại bỏ hoặc thay thế hợp lý, đồng thời khôngảnh hưởng đến cấu trúc dữ liệu tổng thể Điều này đảm bảo rằng các biến số Rainfall,Evaporation, WindSpeed9am và WindSpeed3pm sẵn sàng cho các phân tích sâu hơnhoặc xây dựng mô hình dự báo.
Hình 18 : Sau khi xử lý ngoại lai
Phần 5 CHUẨN HÓA DỮ LIỆU5.1 Định nghĩa và Mục đích
Trang 30Chuẩn hóa dữ liệu là quá trình điều chỉnh các giá trị trong một tập dữ liệu đểđưa chúng về một khoảng giá trị chung hoặc để loại bỏ sự ảnh hưởng của các đơn vị
đo lường khác nhau
- Mục đích chính của chuẩn hóa dữ liệu là:
+ Tăng tốc độ và hiệu quả của các thuật toán học máy: Nhiều thuật toán họcmáy hoạt động tốt hơn hoặc nhanh hơn khi các đặc trưng có cùng khoảng giá trị.+ Giảm sự thiên lệch: Giúp các thuật toán không bị ảnh hưởng bởi các đặctrưng có giá trị lớn hơn
+ Cải thiện độ chính xác: Giúp các mô hình học máy đạt độ chính xác cao hơn
do các đặc trưng được đưa về cùng một khoảng giá trị
5.2 Các phương pháp chuẩn hoá phổ biến
- Min-Max Scaling: Phương pháp Min-Max Scaling (Tỉ lệ hóa cực tiểu - cựcđại) đưa các giá trị về khoảng giá trị [0, 1] hoặc một khoảng giá trị xác định nào đó.Công thức chuyển đổi:
Hình 19 : Min-Max Scaling+ Ưu điểm: Giữ nguyên mối quan hệ tỷ lệ giữa các giá trị gốc
+ Nhược điểm: Nhạy cảm với các giá trị ngoại lai (outliers)
- Standardization (score Normalization): Standardization (Chuẩn hóa score) đưa các giá trị về dạng phân phối chuẩn với trung bình là 0 và độ lệch chuẩn là
Z-1 Công thức chuyển đổi:
Hình 20 : Standardization
Trong đó:
+ μ là giá trị trung bình của tập dữ liệu
Trang 31+ σ là độ lệch chuẩn của tập dữ liệu.
+ Ưu điểm: Ít nhạy cảm hơn với các giá trị ngoại lai so với Min-Max Scaling.+ Nhược điểm: Không giữ nguyên tỷ lệ giữa các giá trị gốc
- Robust Scaling: Robust Scaling sử dụng các giá trị trung vị và khoảng tứ phân
vị để chuẩn hóa dữ liệu, giúp giảm ảnh hưởng của các giá trị ngoại lai Công thứcchuyển đổi:
Hình 21 : Robust ScalingTrong đó:
+ median là giá trị trung vị của tập dữ liệu
+ IQR là khoảng tứ phân vị (Interquartile Range)
+ Ưu điểm: Giảm ảnh hưởng của các giá trị ngoại lai
+ Nhược điểm: Có thể làm mất một số thông tin của tập dữ liệu gốc
5.3 Ứng dụng chuẩn hóa dữ liệu trong dataset weatherAUS.csv
Tiền xử lý dữ liệu: Trước khi chuẩn hóa, cần loại bỏ các giá trị bị thiếu vàchuẩn bị dữ liệu:
Hình 22 : Tiền xử lý dữ liệu - Loại bỏ na
Trang 32Hình 23 : Tiền xử lý dữ liệu - Xem mô tả tập dữ liệu
- Chuẩn hoá dữ liệu với Min-Max Scaling:
Hình 24 : Chuẩn hoá dữ liệu với Min-Max Scaling
- Kết quả sau khi chuẩn hoá:
Hình 25 : Kết quả chuẩn hoá dữ liệu với Min-Max Scaling
Trang 33Phần 6 TẠO CÁC BIẾN MỚI CÓ Ý NGHĨA DỰA
VÀO CÁC BIẾN ĐÃ CÓ
6.1 Mục tiêu
Trong phần này, chúng ta sẽ tạo ra các biến mới từ biến Date hiện có để hỗ trợtốt hơn cho việc phân tích dữ liệu và xây dựng mô hình
6.2 Tạo biến mới từ biến Date
- Bước 1: Chuyển đổi biến Date sang định dạng datetime: Đầu tiên, chúng tachuyển đổi cột Date, hiện đang ở dạng chuỗi (object), sang định dạng ngày giờ(datetime) Điều này giúp chúng ta dễ dàng trích xuất các thành phần như năm, tháng,
và ngày từ biến Date
Hình 26 : Chuyển đổi biến Date sang định dạng datetime
- Bước 2: Trích xuất các thành phần từ biến Date và Kiểm tra dữ liệu sau khitrích xuất: Sau khi chuyển đổi Date sang định dạng datetime, chúng ta tiến hành tríchxuất các thành phần năm, tháng, và ngày từ biến này và lưu chúng vào các cột mới.Trích xuất năm:
Hình 27 : Trích xuất năm từ biến Date
Trang 34Trích xuất tháng:
Hình 28 : Trích xuất tháng từ biến DateTrích xuất ngày:
Hình 29 : Trích xuất ngày từ biến Date
- Sau khi trích xuất các thành phần năm, tháng, và ngày, chúng ta kiểm tra lạicác giá trị của những cột mới tạo
- Bước 3: Loại bỏ biến Date ban đầu: Sau khi tạo các cột mới từ biến Date,chúng ta có thể loại bỏ biến Date ban đầu để tránh dư thừa dữ liệu
Hình 30 : Xoá biến Date ban đầu
Trang 35- Kiểm tra lại cấu trúc của tập dữ liệu: Cuối cùng, chúng ta kiểm tra lại cấu trúccủa tập dữ liệu để đảm bảo rằng các biến mới đã được tạo và biến Date đã được loạibỏ.
Hình 31 : Info của tập dataset
6.2 Tạo biến mới từ biến RainToday
- Mô tả biến RainToday: Biến RainToday là một biến phân loại với hai giá trị:+ "Yes": Có mưa trong ngày
+ "No": Không có mưa trong ngày
Cách tiếp cận và phương pháp mã hoá: Để chuyển đổi giá trị phân loại của biếnRainToday thành dạng số có thể sử dụng trong các mô hình học máy, tôi đã sử dụngBinary Encoding
Binary Encoding là một phương pháp mã hoá cho các biến phân loại với hai giátrị ("Yes"/"No"), biến đổi chúng thành các cột nhị phân Trong trường hợp này, chúng
ta có thể tạo ra hai cột mới: RainToday_0 và RainToday_1, với các giá trị nhị phântương ứng
Trang 36- Quy trình thực hiện:
1 Chọn biến RainToday trong bộ dữ liệu
2 Áp dụng phương pháp BinaryEncoder từ thư viện Category Encoders.Phương pháp này chuyển đổi biến RainToday thành hai cột nhị phân:
+ RainToday_0: Đại diện cho "No" (không có mưa)
+ RainToday_1: Đại diện cho "Yes" (có mưa)
- Cụ thể:
+ Nếu RainToday có giá trị "No", thì RainToday_0 = 1 và RainToday_1 = 0.+ Nếu RainToday có giá trị "Yes", thì RainToday_0 = 0 và RainToday_1 = 1.Kết quả: Sau khi thực hiện mã hoá, chúng ta có hai cột mới RainToday_0 vàRainToday_1 trong bộ dữ liệu Điều này giúp chúng ta có thể sử dụng các mô hình họcmáy yêu cầu đầu vào là các giá trị số
+ Sự thay đổi trong bộ dữ liệu:
+ Ban đầu, biến RainToday có giá trị "Yes" và "No"
+ Sau khi mã hoá, biến này được chuyển thành hai cột mới với các giá trị nhịphân 0 và 1
Ví dụ:
+ Nếu RainToday = "No", thì RainToday_0 = 1 và RainToday_1 = 0
+ Nếu RainToday = "Yes", thì RainToday_0 = 0 và RainToday_1 = 1.Kiểm tra dữ liệu: Sau khi mã hoá, chúng ta kiểm tra xem dữ liệu có bị thiếu giátrị nào không Kết quả cho thấy rằng tất cả các giá trị thiếu trong bộ dữ liệu đã được
xử lý hoàn toàn, và không có giá trị thiếu trong các cột RainToday_0 và RainToday_1
Trang 37Hình 32 : Tạo ra biến phân loại mới RainToday_0 và RainToday_1
Trang 38Phần 7 NÊU CÁC CÂU HỎI NGHIÊN CỨU VÀ
PHÂN TÍCH, THỐNG KÊ, TRỰC QUAN VÀ GIẢI THÍCH Ý NGHĨA CHO TỪNG BIỂU ĐỒ
7.1 Câu hỏi nghiên cứu 1
- Thời gian có nắng trong ngày có ảnh hưởng đến khả năng mưa vào ngày hômsau không?
- Phân tích, thống kê:
Trang 39Hình 33 : Câu hỏi nghiên cứu 1+ Tính trung bình, độ lệch chuẩn của thời gian có nắng(Sunshine) cho các ngày
có mưa và không có mưa vào ngày hôm sau (RainTomorrow) Tính tổng thời gian cónắng cho mỗi nhóm để xem liệu có sự khác biệt rõ ràng không
+ mean: Trung bình thời gian có nắng cho mỗi nhóm (có mưa và không có mưavào ngày hôm sau)
+ std: Độ lệch chuẩn của thời gian có nắng trong ngày
+ sum: Tổng thời gian có nắng trong ngày cho mỗi nhóm
- Trực Quan và Giải Thích Ý Nghĩa cho Từng Biểu Đồ: Dựa trên biểu đồ dướiđây, chúng ta có ba biểu đồ thanh (bar plot) thể hiện các thông số khác nhau của số giờ
có nắng (Sunshine) theo biến RainTomorrow:
Trang 40Hình 34 : Vẽ biểu đồ trực quan - Câu hỏi nghiên cứu 1
+ Trung bình số giờ có nắng (Mean Sunshine)
Trực quan: Biểu đồ đầu tiên hiển thị giá trị trung bình số giờ có nắng cho haitrạng thái của biến RainTomorrow (No và Yes) Màu sắc được sử dụng là từ palettecoolwarm
Giải thích: Từ biểu đồ này, ta thấy rằng khi không mưa ngày mai(RainTomorrow = No), số giờ có nắng trung bình cao hơn so với khi có mưa ngày mai(RainTomorrow = Yes) Điều này khá hợp lý vì khi có mưa, bầu trời thường mây mù
và số giờ nắng giảm xuống
+ Độ lệch chuẩn số giờ có nắng (Standard Deviation of Sunshine)
Trực quan: Biểu đồ thứ hai hiển thị độ lệch chuẩn của số giờ có nắng cho haitrạng thái của biến RainTomorrow (No và Yes) Màu sắc được sử dụng là từ paletteviridis
Giải thích: Biểu đồ này cho thấy rằng độ lệch chuẩn của số giờ có nắng cao hơnkhi có mưa ngày mai (RainTomorrow = Yes) so với khi không mưa (RainTomorrow =No) Điều này có thể chỉ ra rằng số giờ có nắng biến đổi nhiều hơn khi có mưa ngàymai, có thể do các yếu tố thời tiết không ổn định hơn
+ Tổng số giờ có nắng (Sum of Sunshine)
Trực quan: Biểu đồ thứ ba hiển thị tổng số giờ có nắng cho hai trạng thái củabiến RainTomorrow (No và Yes) Màu sắc được sử dụng là từ palette magma.Giải thích: Tổng số giờ có nắng khi không mưa ngày mai (RainTomorrow =No) cao hơn đáng kể so với khi có mưa ngày mai (RainTomorrow = Yes) Điều nàycũng hợp lý vì khi mưa, tổng số giờ có nắng sẽ giảm đi do điều kiện thời tiết khôngthuận lợi cho ánh nắng