Tìm Hiểu Thuật Toán Naive Bayes Và Ứng Dụng Trong Bài Toán Chuẩn Đoán Bệnh Tiểu Đường.docx

20 17 0
Tìm Hiểu Thuật Toán Naive Bayes Và Ứng Dụng Trong Bài Toán Chuẩn Đoán Bệnh Tiểu Đường.docx

Đ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

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ======***====== BÁO CÁO BÀI TẬP LỚN HỌC PHẦN TRÍ TUỆ NHÂN TẠO Đề tài TÌM HIỂU THUẬT TOÁN NAIVE BAYES VÀ ỨNG DỤNG TRONG BÀI TOÁ[.]

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ======***====== BÁO CÁO BÀI TẬP LỚN HỌC PHẦN: TRÍ TUỆ NHÂN TẠO Đề tài: TÌM HIỂU THUẬT TOÁN NAIVE BAYES VÀ ỨNG DỤNG TRONG BÀI TOÁN CHUẨN ĐOÁN BỆNH TIỂU ĐƯỜNG Hà Nội, năm 2023 LỜI CẢM ƠN “Đầu tiên, em xin gửi lời cảm ơn chân thành đến Trường Đại học Công Nghiệp Hà Nội đưa mơn học Trí tuệ nhân tạo vào chương trình giảng dạy Đặc biệt, em xin gửi lời cảm ơn đến giảng viên môn – Cô Lê Thị Thủy dạy, truyền đạt kiến thức quý báu cho chúng em suốt thời gian học tập vừa qua Trong thời gian tham gia lớp học Trí tuệ nhân tạo cơ, em có thêm cho nhiều kiến thức bổ ích, kỹ mềm, tinh thần học tập hiệu nghiêm túc Đây chắn kiến thức quý báu, hành trang để em vững bước sau Bộ mơn Trí tuệ nhân tạo mơn học thú vị, vơ bổ ích tảng định hướng cho bước sau chúng em Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn sinh viên Tuy nhiên, vốn kiến thức nhiều hạn chế khả tiếp thu thực tế nhiều bỡ ngỡ Mặc dù em cố gắng chắn báo cáo khó tránh khỏi thiếu sót nhiều chỗ cịn chưa xác, kính mong xem xét góp ý để báo cáo em hồn thiện hơn.” Nhóm sinh viên thực Nhóm LỜI MỞ ĐẦU Hiện nay, Trí tuệ nhân tạo (AI) lên chứng cách mạng công nghiệp 4.0 mở thời kỳ với việc ứng dụng trí tuệ nhân tạo hầu hết lĩnh vực đời sống, mang lại thay đổi lớn xã hội, đặc biệt kinh tế khoa học ứng dụng Trí tuệ nhân tạo định nghĩa ngành khoa học máy tính liên quan đến việc tự động hóa hành vi thơng minh Trí tuệ nhân tạo phận khoa học máy tính phải đặt ngun lý lý thuyết vững chắc, có khả ứng dụng lĩnh vực Ở thời điểm tại, thuật ngữ thường dùng để nói đến máy tính có mục đích khơng định ngành khoa học nghiên cứu lý thuyết ứng dụng trí tuệ nhân tạo Các ứng dụng Machine Learning (ML) quen thuộc với người: xe tự hành Google Tesla, hệ thống tự tag khuôn mặt Facebook, hệ thống gợi ý sản phẩm Amazon, hệ thống gợi ý phim Netflix …, vài ứng dụng trí tuệ nhân tạo cụ thể ML Xu hướng phát triển công nghệ thông tin ngày tăng, song song với lượng liệu sinh ngày lớn Vì nhu cầu để xử lý liệu lớn hơn, ML góp phần giải vấn đề Một thuật tốn thường dùng ML thuật tốn tìm kiếm đường Ứng dụng thuật toán sử dụng nhiều rộng rãi toán thực tế Nội dung báo cáo cung cấp cho người đọc kiến thức chung trí tuệ nhân tạo, có nhìn tổng qt việc áp dụng thuật toán Naive Bayes Ứng dụng thuật toán Naive Bayes toán chuẩn đoán bệnh tiểu đường Các vấn đề cụ thể trình bày báo cáo chia thành chương: Chương 1: Kỹ thuật Naïve Bayes Chương 2: Ứng dụng Naïve Bayes toán chuẩn đoán bệnh tiểu đường MỤC LỤC CHƯƠNG 1: KỸ THUẬT NAIVE BAYES 1.1 MỘT SỐ KHÁI NIỆM 1.2 ĐỊNH LÝ BAYES 1.3 PHÂN LỚP BẰNG KỸ THUẬT NAIVE BAYES .10 1.3.1 Dạng tổng quát 10 1.3.2 Phương pháp Naive Bayes trường hợp liệu liên tục 11 1.3.3 Trường hợp xuất xác suất không .12 1.4 VÍ DỤ MINH HỌA .12 CHƯƠNG 2: ỨNG DỤNG NAIVE BAYES TRONG BÀI TOÁN CHUẨN ĐOÁN BỆNH TIỂU ĐƯỜNG .15 2.1 BÀI TOÁN 15 2.1.1 Phát biểu toán .15 2.1.2 Thuật toán áp dụng 15 2.2 CƠ SỞ DỮ LIỆU 15 2.3 CÀI ĐẶT 16 2.3.1 Thuật toán 17 2.3.2 Cài đặt 18 TỔNG KẾT 22 TÀI LIỆU THAM KHẢO .23 Phụ lục hình ảnh Hình 2.2.1 Mẫu tập liệu file CSV 17 Hình 2.3.1 Đọc liệu từ file CSV 18 Hình 2.3.2 Chia liệu theo class .18 Hình 2.3.3 Chia tập liệu thành Training Testing 18 Hình 2.3.4 Tính giá trị trung bình độ lệch chuẩn 19 Hình 2.3.5 Tính giá trị trung bình độ lệch chuẩn cho tập liệu 19 Hình 2.3.6 Tính phân phối Gauss 20 Hình 2.3.7 Dự đốn liệu vào class 20 Hình 2.3.8 Hàm main 21 Hình 2.3.9 Kết sau chạy 21 CHƯƠNG 1: Kỹ thuật Naive Bayes 1.1 Một số khái niệm - Hiện tượng tất yếu Là tượng thực điều kiện giống cho kết giống Hiện tượng tất yếu đối tượng nghiên cứu Vật lý, Hóa học - Hiện tượng ngẫu nhiên tượng dù quan sát điều kiện giống nhau, kết khác Hiện tượng ngẫu nhiên đối tượng nghiên cứu xác suất học - Không gian mẫu tập hợp tất kết xảy tượng ngẫu nhiên - Biến cố tập không gian mẫu - Xác suất có điều kiện: P( A∨B) phần khơng gian mà A đúng, với điều kiện (đã biết) B Nói cách khác, P( A∨B) xác suất xảy biến cố A với điều kiện có xảy biến cố B, thường gọi “xác suất A có B” Gọi P( A∨B) xác suất xảy đồng thời hai kiện A B P(B) xác suất xảy kiện B Dễ dàng thấy rằng: P ( A∨B )= - P( A , B) P(B) Cơng thức xác suất tồn phần: Nếu B + B2 + …+ Bn = ꭥ B B i j = ∅ ∀i ≠ j, với biến cố A liên quan tính theo cơng thức: n P( A)=∑ ❑ P ( A∨B i ) P(Bi ) i=1 1.2 Định lý Bayes Định lý Bayes dựa định nghĩa xác suất có điều kiện trên, phát biểu dạng công thức sau: P( A∨B)= P ( B∨ A ) P( A) P(B) Trong đó:  P ( A ) :Xác suất xảy A riêng nó, khơng quan tâm đến B Nó gọi “tiên nghiệm” với hàm ý khơng quan tâm tới thơng tin B  P ( B ) : Xác suất xảy B riêng nó, khơng quan tâm đến A  P ( A|B ) : xác suất xảy biến cố A với điều kiện xảy biến cố B  P ( B| A ) :Xác xuất xảy biến cố B với điều kiện xảy biến cố A - Công thức xác suất toàn phần: Nếu B1 + B2 + …+ Bn = ꭥ BiBj = ∅ ∀i ≠ j, với biến cố A liên quan tính theo công thức: n P( A)=∑ P ( A∨Bi ) P (B i) i=1 - Áp dụng công thức trên, ta có: Giả sử { A , A2 , A , … A n } hệ đầy đủ B kiện xảy phép thử Khi ta có cơng thức Bayes: P ( A k|B ) =P ( A k ) P ¿ ¿ 1.3 Phân lớp kỹ thuật Naive Bayes 1.3.1 Dạng tổng quát Xét toán phân lớp Cho tập liệu huấn luyện X ϵ Rn ×( m+1 ) gồm n mẫu liệu, mẫu có m thuộc tính thuộc tính lớp Mỗi mẫu huấn luyện x ∈ X biểu diễn vectơ m+1 chiều x ( x , x , … x m , y) gồm m thành phần liệu y nhãn lớp Cho tập xác định nhãn lớp C={c1 , c , … , c q } gồm q lớp Có thể thấy y ∈C Cho mẫu liệu z ∈ Rm z biểu diễn z (z , z ,… , z m ) Hãy xác định lớp z - Để xác định lớp z, ta cần tính xác suất xảy khả z phân vào lớp c i, i=1 … q , tức khả xảy c i Mẫu z phân vào lớp có xác suất xảy cao - Do mẫu z xác định với thành phần quan sát z , z ,… , z m Do đó, xác suất để z thuộc vào lớp c i phải xác suất có điều kiện P ( c i∨z , z ,… , z m ) ký hiệu P ( c i∨z ) Theo định lý Bayes, xác suất tính: P ( c i∨z )= - P ( z∨c i ) × P ( c i ) (1) P( z) Do thuộc tính z độc lập có điều kiện thuộc tính khác nên: (2) m P ( z∨c i )=∏ ❑ P(z j ∨c i) j=1 - Do (1) trở thành: m ∏ ❑ P ( z j ∨c i ) × P(c i ) P ( c i∨z )= - (3) j=1 P (z) Mẫu liệu z phân vào lớp c k P(c k ∨z) lớn tức: m ∏ ❑ P ( z j ∨c i ) × P(c i ) c k =argmax P(c i∨z) c i ∈ C=argmax ci ∈C - (4) j=1 P (z) Vì P(z ) số c i khác nhau, (4) tương đương với: m c k =argmax ci ∈C ∏ ❑ P ( z j∨c i ) × P(ci ) j =1 Nói cách khác, để xác định lớp cho mẫu liệu z , ta tính giá trị m biểu thức ∏ ❑ P ( z j ∨c i ) × P(c i ) với lớp c i ∈{c1 , c , … , c q } Lớp c inào cho giá trị j=1 biểu thức lớn lớp z Quá trình phân lớp sử dụng phương pháp Naive Bayes gồm hai bước: + Bước 1: Đối với lớp c i ∈C , tính giá trị của: ▪ Xác suất tiên nghiệm P(c i ) Xác suất tính xấp xỉ tổng số mẫu thuộc lớp c i tổng số mẫu liệu huấn luyện ▪ Đối với giá trị thuộc tính z i, tính P( z j ∨c i) xác suất xảy giá trị lớp c i Giá trị tính xấp xỉ tỷ lệ mẫu có giá trị thuộc tính thứ j z j số mẫu thuộc lớp c i + Bước 2: Cần xác định lớp cho mẫu liệu z , ta thực hiện: ▪ Đối với lớp c i ∈C , ta tính giá trị biểu thức: m ∏ ❑ P ( z j ∨c i ) × P(c i ) j=1 ▪ Xác định lớp z c k : m c k =argmax ci ∈C ∏ ❑ P ( z j∨c i ) × P(ci ) j =1 1.3.2 Phương pháp Naive Bayes trường hợp liệu liên tục  Trong trường hợp thuộc tính có giá trị liên tục, ta áp dụng phương pháp rời rạc hóa Nếu khơng rời rạc hóa liệu, thay xác suất, ta sử dụng hàm mật độ xác suất Thông thường, ta hay giả thiết liệu lớp c i thuộc tính liên tục tuân theo phân bố Gauss phương pháp lúc gọi Gass Naive Bayes  Xét thuộc tính A với giá trị liên tục Khi đó, ta phân đoạn giá trị A theo lớp Với lớp c i, ta tính μi giá trị trung bình σ 2i phương sai giá trị A lớp c i (với N i số mẫu thuộc lớp c i lớp y i lớp mẫu x i): ❑ μi= ∑ ❑ xi N i x : y =c i σ 2i = i i ❑ ∑ ❑( x ¿ ¿ i−μi )2 ¿ N i −1 x : y =c i i i (1)  Giá trị P ( x∨c i ) gọi phân bố xác suất x vào lớp c i tính bằng: P ( x∨c i )= e √ π σ 2i −(x− μi ) 2σ (2) i 1.3.3 Trường hợp xuất xác suất không - Xét mẫu liệu cần phân lớp x ( x , x2 , … , x m ) Xét giá trị x j thuộc tính j Nếu khơng có mẫu liệu lớp c i có giá trị thuộc tính j x j hiển m nhiên P ( c i )=0 Điều kéo theo P ( c i ) × ∏ ❑ P ( c i )=0 j=1 - Giải pháp đưa sử dụng ước lượng Laplace để ước lượng P ( c i ) thay cho giá trị tính - Ta giả sử số mẫu liệu lớp cần xét lớn ta bổ sung mẫu liệu cho tập thuộc tính việc khơng ảnh hưởng nhiều tới xác suất tính 1.4 Ví dụ minh họa Cho bảng liệu huấn luyện gồm 20 mẫu việc có (hay khơng) mắc bệnh tiểu đường bảng, dựa vào quan sát về: Số lần mang thai (Preg), Nồng độ glucose huyết tương (Plas), Huyết áp tâm trương (Pres), Độ dày nếp gấp da tam đầu (Skin), Insulin huyết (Test), Chỉ số khối lượng thể (Mass), Chức phả hệ bệnh tiểu đường (Pedi), Tuổi (Age), Thuộc tính lớp (Class) ID Preg Plas Pres Skin Test Mass Pedi Age Class 10 10 11 12 13 14 15 16 17 18 19 20 X 10 10 10 7 148 85 183 89 137 116 78 115 197 125 110 168 139 189 166 100 118 107 103 126 171 72 35 33.6 66 29 26.6 64 0 23.3 66 23 94 28.1 40 35 168 43.1 74 0 25.6 50 32 88 31.0 0 35.3 70 45 543 30.5 96 0 0.0 92 0 37.6 74 0 38.0 80 0 27.1 60 23 846 30.1 72 19 175 25.8 0 30.0 84 47 230 45.8 74 0 29.6 30 38 83 43.3 88 41 235 39.3 110 24 240 45.4 Bảng liệu huấn luyện 0.627 0.351 0.672 0.167 2.288 0.201 0.248 0.134 0.158 0.232 0.191 0.537 1.441 0.398 0.587 0.484 0.551 0.254 0.183 0.704 0.721 50 31 32 21 33 30 26 29 53 54 30 34 57 59 51 32 31 31 33 27 54 1 1 1 1 1 1 0 ? Cho mẫu liệu cần phân lớp X Xác định xem bệnh nhân có liệu có mắc bệnh tiểu đường hay khơng Thấy số mẫu liệu n = 20, số thuộc tính liệu m = (do khơng xét thuộc tính ID), thuộc tính lớp Class với lớp C = {0,1} (2 lớp) Quá trình xác định lớp cho liệu X trải qua hai bước: - Bước 1: Xét thuộc tính Preg, Plas, Pres, Skin, Test, Mass, Pedi, Age với giá trị liên tục Khi đó, ta phân đoạn giá trị thuộc tính theo lớp Với lớp c i (c1 = 0; c2 = 1), ta tính μi giá trị trung bình σ 2i phương sai giá trị thuộc tính lớp c i (với N i số mẫu thuộc lớp c i lớp y i lớp mẫu x i): μi = ❑ ∑ ❑ xi N i x : y =c i σi= i i ❑ ❑( x ¿ ¿ i−μi ) ¿ ∑ N i −1 x : y =c i i i Sau thực tính tốn, ta có bảng sau: Class Giá trị μ σ i μ σ 2i 11 Preg Plas Pres Skin Test Mass Pedi Age - 4.375 110.375 62 16.375 51.5 32.8625 0.4215 32.25 14.2679 324.5536 992 335.6964 7104.5714 46.6598 0.2043 112.7857 4.75 143 63 19.6667 170.8333 30.0667 0.5863 40.5 11.841 1469.6363 605.4545 359.6969 70895.4242 132.9188 0.3171 137.7272 Bước 2: Giá trị P ( x∨c i ) gọi phân bố xác suất x vào lớp c i tính bằng: P ( x∨c i )= −(x− μi ) √2 π σ i e 2σ i Sau thực tính tốn, ta có bảng sau: Class Preg Plas Pres Skin Test Mass Pedi Age 0.0499 7.694x10-5 0.0039 0.0199 3.883x10-4 0.0108 0.7087 0.0046 0.0541 0.0079 0.0026 0.0204 0.0014 0.0143 0.6885 0.0174 Do đó, P(x|c1) = 0.0499*7.694x10-5*0.0039*0.0199*3.883x10-4*0.0108*0.7087*0.0046 = 4.0736x10-18 P(x|c2) = 0.0541*0.0079*0.0026*0.0204*0.0014*0.0143*0.6885*0.0174 = 5.4368x10-15 Vậy mẫu liệu X phân vào lớp c2 (lớp 1) lớp có mắc bệnh tiểu đường 12 CHƯƠNG 2: Ứng dụng Naive Bayes toán chuẩn đoán bệnh tiểu đường 2.1 Bài toán 2.1.1 Phát biểu tốn Bài tốn chuẩn đốn bệnh tiểu đường (có bị bệnh hay không) sử dụng phương pháp Naive Bayes để phân hai lớp người có bị bệnh tiểu đường hay không bị bệnh tiểu đường 2.1.2 Thuật toán áp dụng Bài toán áp dụng thuật toán Naive Bayes trường hợp liệu liên tục (Gauss Naive Bayes) Bằng cách tính μi giá trị trung bình σ 2i phương sai giá trị lớp c i Sau đó, phân bố xác suất x vào lớp c i Và cuối tính xác suất cho thuộc tính phân chia theo class để xác định liệu cần kiểm tra thuộc class nào, có mắc bệnh hay khơng Bài tốn làm ngơn ngữ lập trình Python – ngơn ngữ lập trình bậc cao cho mục đích lập trình đa Python có thư viện chuẩn rộng lớn – điểm lớn mạnh ngơn ngữ lập trình Trong tốn chúng em thực dựa theo cơng thức phân phối Gauss để giải 2.2 Cơ sở liệu Cơ sở liệu lấy từ website kaggle Được đóng góp thành viên có tên KUMAR Cơ sở liệu mô tả hồ sơ y tế 700 bệnh nhân có khơng có nguy mắc bệnh tiểu đường vịng năm Thơng tin, ký hiệu thuộc tính ghi sở liệu: Số lần mang thai Nồng độ glucose huyết tương sau xét nghiệm dung nạp glucose qua đường uống Huyết áp tâm trương (mm Hg) Độ dày nếp gấp da tam đầu (mm) Insulin huyết (mu U / ml) Chỉ số khối lượng thể (trọng lượng tính kg / (chiều cao tính m)2) Chức phả hệ bệnh tiểu đường Tuổi (năm) 13 Lớp (0 – Khơng bệnh, – Có bệnh) Tập liệu lưu dạng file CSV cột tương ứng với thuộc tính Hình 2.2.1 Mẫu tập liệu file CSV 2.3 Cài đặt 2.3.1 Thuật toán - Đầu vào:  Tập liệu chia thành 80% liệu sử dụng để Train 20% liệu sử dụng để Test  Bộ liệu để chuẩn đoán bệnh - Đầu ra:  Độ xác thuật tốn  Phân lớp bệnh nhân cần chuẩn đoán - Phương pháp sử dụng phân phối Gauss với x trường liệu tương ứng cần chuẩn đoán, mean giá trị trung bình, stdev độ lệch chuẩn def calculate_prob(x, mean, stdev): exponent = math.exp(-(math.pow(x - mean, 2) / (2 * math.pow(stdev, 2)))) return (1 / (math.sqrt(2 * math.pi) * stdev)) * exponent 14 2.3.2 Cài đặt - Đọc liệu từ file CSV Hình 2.3.2 Đọc liệu từ file CSV - Phân chia chia tập liệu theo class (class class 1) Hình 2.3.3 Chia liệu theo class - Phân chia tập liệu thành Training Testing Hình 2.3.4 Chia tập liệu thành Training Testing 15 - Tính giá trị trung bình độ lệch chuẩn cho thuộc tính Hình 2.3.5 Tính giá trị trung bình độ lệch chuẩn - Sử dụng hàm để tính giá trị trung bình độ lệch chuẩn tất liệu tập liệu Hình 2.3.6 Tính giá trị trung bình độ lệch chuẩn cho tập liệu - Tính phân phối Gauss biến liên tục tính xác suất cho thuộc tính chia theo class (0 1) 16 Hình 2.3.7 Tính phân phối Gauss - Dự đoán tập liệu thuộc class (0 1) Hình 2.3.8 Dự đốn liệu vào class - Hàm main thực xử lý 17 Hình 2.3.9 Hàm main - Kết sau chạy Hình 2.3.10 Kết sau chạy 18 TỔNG KẾT Naive Bayes thuật toán dựa định lý Bayes lý thuyết xác suất để đưa phán đoán phân loại liệu dựa liệu quan sát thống kê Naive Bayes thuật toán ứng dụng nhiều lĩnh vực Machine Learning (ML) dùng để đưa dự đốn xác dựa tập liệu thu thập, dễ hiểu độ xác cao Chúng ta ứng dụng Naive Bayes để tính tỷ lệ xác suất với nhiều dạng tốn khác nhau, với liệu nhiều độ xác thuật tốn cao, liệu thay đổi kết thay đổi theo 19 TÀI LIỆU THAM KHẢO [1] Trường Đại học Cơng nghiệp Hà Nội, Giáo trình trí tuệ nhân tạo [2] Nam Doan, Định lý Bayes, https://1upnote.me/post/2018/11/ds-ml-bayes-theorem/ [3] Cơ sở liệu: https://www.kaggle.com/datasets/kumargh/pimaindiansdiabetescsv [4] Đề cương giảng “Bo sung hoc may co ban” [5] Learn Python by W3shcool: https://www.w3schools.com/python/default.asp 20

Ngày đăng: 30/08/2023, 02:16