Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

[Báo cáo BTL] Nhập môn KPDL và máy học - Phân lớp và Phân cụm, Assignments of Data Mining

Phân lớp: Mall Customers Phân cụm: Cardiovascular Disease Khoa CNTT trường Đại học mở Hà Nội

Typology: Assignments

2023/2024

Uploaded on 03/07/2025

TuyetAnh24
TuyetAnh24 🇻🇳

5

(7)

33 documents

1 / 27

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN MÔN
KHAI PHÁ DỮ LIỆU
Đề tài bài toán:
Phân lớp: Mall Customers
Phân cụm: Cardiovascular Disease
Thành viên nhóm 9:
Giảng viên:
Hà Nội, Ngày 22 Tháng 10 Năm 2024
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Partial preview of the text

Download [Báo cáo BTL] Nhập môn KPDL và máy học - Phân lớp và Phân cụm and more Assignments Data Mining in PDF only on Docsity!

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN MÔN

KHAI PHÁ DỮ LIỆU

Đề tài bài toán:

Phân lớp: Mall Customers

Phân cụm: Cardiovascular Disease

Thành viên nhóm 9: Giảng viên: Hà Nội, Ngày 22 Tháng 10 Năm 2024

Mục lục

Giới thiệu

1. Thành viên nhóm, nhiệm vụ các thành viên 2. Bài toán A. Phân lớp Phân lớp (classification) là một trong những kỹ thuật phổ biến và quan trọng nhất trong khai phá dữ liệu (data mining). Nó thuộc loại bài toán học có giám sát (supervised learning), mục tiêu là phân loại các đối tượng vào những nhóm hay lớp khác nhau dựa trên một số đặc điểm hoặc thuộc tính đã cho. Vấn đề: Phân lớp là bài toán tìm một hàm ánh xạ từ tập các đối tượng (dữ liệu đầu vào) sang một tập hữu hạn các lớp (nhãn). Mỗi đối tượng được mô tả bởi một vector đặc trưng (feature vector), và nhiệm vụ là xác định nhãn phù hợp cho đối tượng đó. Tập dữ liệu: · Dữ liệu huấn luyện (Training data): Đây là tập dữ liệu mà mỗi đối tượng (bản ghi) đã được gắn nhãn. Tập này được sử dụng để "dạy" mô hình học phân lớp. · Dữ liệu kiểm thử (Testing data): Tập dữ liệu được sử dụng để đánh giá hiệu quả của mô hình đã học, kiểm tra xem mô hình có phân loại đúng không. Các phương pháp: · Cây quyết định (Decision Tree): Là mô hình phân lớp dựa trên cấu trúc cây, trong đó mỗi nút là một quyết định về thuộc tính của dữ liệu. · Naive Bayes: Dựa trên định lý Bayes, giả định rằng các thuộc tính là độc lập với nhau. Các bước trong quá trình phân lớp: 1. Tiền xử lý dữ liệu: Làm sạch và chuẩn bị dữ liệu, xử lý các giá trị thiếu, chuẩn hóa hoặc chuẩn hoá các thuộc tính để đảm bảo dữ liệu phù hợp cho mô hình. 2. Lựa chọn đặc trưng (Feature Selection): Chọn những đặc trưng quan trọng có ảnh hưởng lớn đến quá trình phân loại để giảm thiểu độ phức tạp và cải thiện hiệu quả. 3. Huấn luyện mô hình (Model Training): Dùng dữ liệu huấn luyện để dạy mô hình học cách phân lớp. 4. Đánh giá mô hình (Model Evaluation): Sử dụng các tiêu chí đánh giá như độ chính xác (accuracy), độ nhạy (recall), độ đặc hiệu (specificity) để kiểm tra chất lượng mô hình.

  1. Triển khai và sử dụng mô hình: Sau khi huấn luyện và kiểm thử, mô hình phân lớp có thể được triển khai để dự đoán các lớp cho dữ liệu mới. Các thách thức trong phân lớp: · Overfitting: Mô hình quá phức tạp và phù hợp với dữ liệu huấn luyện nhưng lại không hoạt động tốt trên dữ liệu mới. · Dữ liệu mất cân bằng: Khi một lớp có nhiều đối tượng hơn các lớp khác, mô hình có thể thiên vị đối với lớp lớn hơn. · Số lượng đặc trưng lớn: Khi có quá nhiều đặc trưng, mô hình có thể trở nên phức tạp. · Xử lý dữ liệu thiếu: Các giá trị thiếu có thể gây khó khăn trong việc huấn luyện và dự đoán. Các tiêu chí đánh giá mô hình phân lớp: · Accuracy (Độ chính xác): Tỷ lệ dự đoán đúng trên tổng số các dự đoán. · Precision (Độ chính xác): Tỷ lệ các dự đoán đúng trong số các dự đoán dương tính. · Recall (Độ nhạy): Tỷ lệ các dự đoán đúng trong số các đối tượng thực sự dương tính. B. Phân cụm Bài toán phân cụm (clustering) là một kỹ thuật học không giám sát trong khai phá dữ liệu, được dùng để nhóm các đối tượng trong tập dữ liệu sao cho các đối tượng trong cùng một nhóm (cụm) có nhiều điểm tương đồng với nhau hơn so với các đối tượng trong các nhóm khác. Phân cụm giúp phát hiện ra cấu trúc ẩn trong dữ liệu mà không cần thông tin về nhãn (label) trước đó. Mục tiêu: · Phát hiện mẫu (patterns) : Xác định các nhóm hoặc phân lớp trong tập dữ liệu mà không cần các nhãn có sẵn. · Phân nhóm dữ liệu : Tập hợp các đối tượng dữ liệu vào các cụm sao cho các đối tượng trong cùng cụm thì tương tự nhau, còn các cụm khác nhau thì càng khác biệt càng tốt. · Hỗ trợ ra quyết định : Kết quả phân cụm có thể cung cấp thông tin cho các quyết định kinh doanh hoặc giúp làm sạch và chuẩn bị dữ liệu cho các bài toán phân tích tiếp theo. Các phương pháp phân cụm phổ biến: · K-means : Thuật toán chia tập dữ liệu thành k cụm bằng cách tối ưu hóa khoảng cách giữa các điểm trong cụm và trung tâm của nó.

· Age (Tuổi): Kiểu số nguyên, có thể giúp xác định các nhóm khách hàng có độ tuổi tương đồng, từ đó phân tích xem tuổi có ảnh hưởng đến hành vi mua sắm hay không. · Annual Income (k$): Thu nhập hàng năm của khách hàng, yếu tố quan trọng để phân nhóm khách hàng có mức sống và khả năng chi tiêu tương ứng. · Spending Score (1-100): Mức chi tiêu (đánh giá khả năng tiêu dùng của khách hàng), thường dựa trên hành vi mua sắm và sự hài lòng của khách hàng.

2. Tiền xử lý dữ liệu Dữ liệu bài toán không có dữ liệu bị thiếu nên không cần xử lý bước này. Dữ liệu minh hoạ chưa tiền xử lý A. Giới tính (Gender) Thuộc tính giới tính có thể có 2 giá trị là Male và Female. Tức là thuộc tính này đã được rời rạc hoá (kiểu thuộc tính là Nominal). Nên không cần xử lý. Giới tính Nam chiếm 88 bản ghi Giới tính Nữ chiếm 112 bản ghi B. Tuổi (Age) Thuộc tính tuổi có các giá trị kiểu Số (Numeric) từ 18 đến 70 tuổi. Tuổi trung bình là 38.85 tuổi

Xử lý: Chuyển dữ liệu từ kiểu Numeric sang kiểu Nominal · Chia tuổi thành 3 nhóm tuổi riêng biệt: [18-35], (35-53], (53-70] (cách chia: các nhóm có độ dài gần bằng nhau) · Đặt tên cho mỗi nhóm tuổi lần lượt là: thanh_nien, trung_nien, cao_tuoi để dễ nhận biết · Kết quả sau khi chia có 98 bản ghi là thanh_nien, 66 bản ghi là trung_nien và có 36 bản ghi là cao_tuoi C. Thu nhập hàng năm (Annual Income) Thuộc tính này có các giá trị kiểu Số từ 15 đến 137 k$. Thu nhập hàng năm trung bình là 60.56 k$. Xử lý: Chuyển dữ liệu từ kiểu Numeric sang kiểu Nominal · Chia thu nhập hàng năm thành 3 khoảng sau: [15-56], (56-96], (96- 137] (cách chia: tương tự như chia thuộc tính Age) · Đặt tên cho mỗi nhóm lấn lượt là: tn_thap, tn_trung_binh, tn_cao · Kết quả sau khi chia có 86 bản ghi là tn_thap (tn là thu nhập), 94 bản ghi là tn_trung_binh và 20 bản ghi là tn_cao D. Mức chi tiêu (Spending Score) Thuộc tính này là thuộc tính để phân lớp có các giá trị kiểu Số từ 1 đến 99.

Dữ liệu minh hoạ sau tiền xử lý

3. Lựa chọn phương pháp Cả 2 phương pháp Naïve Bayes và ID3 Decision Tree (cây quyết định) đều có thể sử dụng cho dữ liệu vừa được tiền xử lý. Mỗi phương pháp đều có ưu và nhược điểm riêng. A. Naive Bayes Ưu điểm: Dữ liệu trong các thuộc tính nếu độc lập thì giúp mô hình đơn giản hơn Nhược điểm: Cho kết quả kém khi dữ liệu không thực sự độc lập B. Cây quyết định Ưu điểm: Dữ liệu không nhất thiết là độc lập với nhau, có thể tạo biểu đồ quyết định mà có thể dễ dàng diễn giải so với Naive Bayes Nhược điểm: Có thể dễ bị overfitting, hiệu suất có thể giảm khi kích thước dữ liệu lớn hoặc khi có nhiều thuộc tính Lựa chọn phương pháp Naive Bayes để xây dựng mô hình dễ dung hơn: Do dữ liệu đã tiền xử lý thành các dữ liệu độc lập (Nominal) và có khá nhiều thuộc tính (4 thuộc tính). 4. Kết quả Sử dụng Weka để hỗ trợ việc xây dựng mô hình A. Tranning set Mô hình thu được sau khi Tranning là:

Mô hình Tranning Đánh giá mô hình Tranning: · Giới tính (Gender): o Male: Ở mct (mức chi tiêu) thấp và cao có số lượng tương đương nhau là 25 mẫu. Còn mct trung bình thì chiếm số lượng cao nhất là 41 mẫu. o Female: Giới tính nữ ở mct trung bình chiếm 55 mẫu cao nhất trong 3 mct. Còn ở mct thấp thì chỉ chiếm 26 mẫu (thấp nhất).  Có nhiều khách hàng giới tính cả nam cả nữ chiếm phần lớn đều chi tiêu ở mức trung bình · Tuổi (Age): o Thanh niên: Có 40 và 48 mẫu ở mct trung bình và cao. Còn ở mct thấp chỉ có 13 mẫu. o Trung niên: Có 27 và 31 mẫu ở mct thấp và trung bình. Chỉ có 11 mẫu ở mct cao. o Cao tuổi: Có 31 mẫu chi tiêu ở mức trung bình và chỉ có 1 mẫu chi tiêu ở mức cao.  Thanh niên chi tiêu hầu hết ở mức trung bình và cao. Còn Trung niên và Cao tuổi thì phần lớn chi tiêu ở mức thấp vào trung bình. · Thu nhập hàng năm: o Thấp: Thu nhập thấp phần lớn chi tiêu ở mức trung bình còn chi tiêu ở mức cao và thấp thì ngang nhau.

· Precision: o Mức chi tiêu thấp: 66.7% mẫu dự đoán dương tính thật trên tổng số dự đoán dương tính o Mức chi tiêu trung bình: 50% o Mức chi tiêu cao: 42.1% · Recall: o Mức chi tiêp thấp: 37.5% mẫu dự đoán dương tính thật trên tổng số mẫu dương tính thật o Mức chi tiêu trung bình: 64% o Mức chi tiêu cao: 42.1% C. Kết luận Mô hình dự đoán cho kết quả khá thấp (50%). Do khi tiền xử lý dữ liệu chưa được tốt khi phân các thuộc tính thành các nhóm chưa hợp lý. Để cải thiện kết quả trên cần phải chi lại các thuộc tính thành các khoảng khác. Ví dụ chia như sau: · Tuổi: · Thu nhập hàng năm: · Mức chi tiêu:

Visualize của các thuộc tính sau khi chia như trên Kết quả tốt hơn trước (47 mẫu đoán đúng: đạt 78.3%) khi test 60 mẫu trên

II. Phân cụm

1. Mô tả bài Cardiovascular Disease Bài toán phân cụm trong dữ liệu liên quan đến bệnh tim mạch (Cardiovascular Disease) sẽ tập trung vào việc nhóm các bệnh nhân dựa trên các đặc điểm nhân khẩu học và y tế, nhằm tìm ra các nhóm bệnh nhân có đặc điểm tương tự nhau. Việc phân cụm này có thể giúp hiểu sâu hơn về nhóm nguy cơ, đặc điểm hành vi hoặc sinh lý của các bệnh nhân, từ đó hỗ trợ đưa ra các quyết định y tế chính xác hơn.

· ap_hi : Huyết áp tâm thu (Systolic blood pressure). Thấp nhất là - (giá trị không thực tế, cần được xử lý) và cao nhất là 16020 (giá trị cũng không thực tế) · ap_lo : Huyết áp tâm trương (Diastolic blood pressure). Thấp nhất là -70 (giá trị không thực tế, cần được xử lý) và cao nhất là 11000 (giá trị cũng không thực tế) · cholesterol : Mức cholesterol trong máu (1: Bình thường, 2: Cao, 3: Rất cao). Chiếm lần lượt là 75%, 14%, 11% · gluc : Mức glucose trong máu (1: Bình thường, 2: Cao, 3: Rất cao). Chiếm lần lượt là 85%, 7%, 8% · smoke : Bệnh nhân có hút thuốc hay không? (0: Không, 1: Có).

· alco : Bệnh nhân có uống rựu hay không? (0: Không, 1: Có). · active : Bệnh nhân có hoạt động thể chất hay không? (0: Không, 1: Có). · cardio : Nhãn mục tiêu, biểu thị có bệnh tim mạch không? (0: Không, 1: Có).

2. Tiền xử lý dữ liệu Dùng python để tiền xử lý dữ liệu Dữ liệu minh hoạ chưa tiền xử lý Các thư viện cần dùng: numpy

B. Bỏ các giái trị ngoại lệ Sử dụng phương pháp lấy ngưỡng dưới là 10% và ngưỡng trên là 90% vùng tứ phân vị để lọc dữ liệu của cột height, weight, ap_lo và ap_hi. Bỏ các mẫu mà có ap_lo > ap_hi vì điều này không chính xác về mặt y khoa. Sau khi lọc thì dữ liệu từ 70000 bản ghi giảm xuống còn 300 bản ghi. Vùng chiều cao giao động từ 55-250cm thành 156-174cm Vùng cân nặng giao động từ 10-200kg thành 60-91kg

Vùng huyết áp tâm thu (ap_hi) giao động từ -150-16020 thành 112- Vùng huyết áp tâm trương (ap_lo) giao động từ -70-11000 thành 81-  Dữ liệu đã sạch hơn trước khá nhiều C. Chuyển đổi dữ liệu Cột age đang ở đơn vị là ngày (khó quan sát và không khái quát). Do đó, cần chuyển cột age sang đơn vị là năm Dữ liệu sau khi chuyển thì mẫu có tuổi thấp nhất là 39, cao nhất là 64 tuổi