Xây dựng cây quyết định Decision TreeMột cây có thể được “học” bằng cách chia tập nguồn thành các tập condựa trên các Biện pháp lựa chọn thuộc tínhMục tiêu của ASM là xác định thuộc tính
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO THUẬT TOÁN MÁY HỌC CƠ BẢN Giảng viên hướng dẫn: TS NGUYỄN ĐÌNH HIỂN Sinh viên thực hiện: VÕ MINH KHA - 6251071044 ĐẶNG NGỌC MINH - 6251071063 NGUYỄN NGUYÊN HOÀNG ANH - 6251071005 NGUYỄN VĂN ĐỊA LỢI Lớp: CQ.62.CNTT TP Hồ Chí Minh, tháng năm 2023 - 6251071058 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO THUẬT TỐN MÁY HỌC CƠ BẢN Giảng viên hướng dẫn: TS NGUYỄN ĐÌNH HIỂN Sinh viên thực hiện: VÕ MINH KHA - 6251071044 ĐẶNG NGỌC MINH - 6251071063 NGUYỄN NGUYÊN HOÀNG ANH - 6251071005 NGUYỄN VĂN ĐỊA LỢI - 6251071058 Lớp: CQ.62.CNTT TP Hồ Chí Minh, tháng năm 2023 LỜI CẢM ƠN Lời đầu tiên, nhóm xin cảm ơn đến nhà trường, q thầy Bộ môn trườngĐại học Giao thông Vận tải – Phân hiệu TP Hồ Chí Minh tạo điều kiện cho nhóm có mơi trường học tập nghiên cứu thật tốt Xin cảm ơn đến quý thầy, cô hết lòng quan tâm, dạy dỗ trang bị cho nhóm kiến thức kinh nghiệm quý báu Em xin chân thành gửi lời cảm ơn đến TS.Nguyễn Đình Hiển tận tình giảng dạy, hướng dẫn cho chúng em kiến thức, định hướng kỹ để hoàn thành đề tài Xin gửi lời cảm ơn đến thành viên nhóm, bạn học cố gắng để hoàn thành báo cáo đề tài góp ý để hồn thiện báo cáo đề tài Trong trình nghiên cứu, trình làm báo cáo đề tài, nhóm khó tránh khỏi sai sót, mong quý thầy bỏ qua Đồng thời trình độ lý luận kinh nghiệm thực tiễn hạn chế nên báo cáo mặt nội dung trình bày khơng thể tránh khỏi thiếu sót, nhóm mong nhận ý kiến đóng góp để nhóm học thêm nhiều kinh nghiệm vàsẽ hồn thành tốt báo cáo tới Cuối em kính chúc dồi sức khỏe thành cơng nghiệp cao q Đồng kính chúc quý thầy cô môn, trường thành viên nhóm bạn học lớp dồi sức khỏe, đạt nhiều thành cơng tốt đẹp cơng việc Nhóm xin chân thành cảm ơn! TP Hồ Chí Minh, ngày 31 tháng 05 năm 2023 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN TP.Hồ Chí Minh, ngày 15 tháng 10 năm 2023 Giảng viên hướng dẫn Nguyễn Đình Hiển MỤC LỤC LỜI CẢM ƠN .3 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN .4 MỤC LỤC CHƯƠNG THUẬT TOÁN DECISION TREE 1.1 Decision Tree ? 1.2 Một số thuật ngữ 1.3 Cấu trúc Decision Tree 1.4 Attribute Selection Measure (ASM) 1.4.1 Xây dựng định (Decision Tree) 1.4.2 Entropy 1.4.3 Gini Impurity or index: 1.4.4 Information Gain: 1.5 Decision Tree hoạt động ? 1.6 Ưu nhược điểm Decision Tree ? .7 1.6.1 Ưu điểm: 1.6.2 Nhược điểm: 1.7 Thuật toán CART (Classifitication and Regression Tree) 1.7.1 Cách thức hoạt động 1.7.2 Mã giả thuật toán CART .8 1.7.3 Bài tập mẫu 1.7.4 Ưu điểm CART: 10 1.8 Thuật toán Iterative Dichotomiser (ID3) 10 1.8.1 Ý tưởng .10 1.8.2 Thuật toán ID3 11 1.8.3 Ví dụ 11 CHƯƠNG 13 2.1 13 2.2 13 2.3 13 2.4 13 2.5 14 2.6 14 2.7 14 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 14 3.1 Kết đạt được: .14 3.2 Ưu điểm: .14 3.3 Nhược điểm: .14 3.4 Hướng phát triển: .14 CHƯƠNG THUẬT TỐN DECISION TREE 1.1 Decision Tree ? Về bản, Decision Tree (cây định) phân cấp có cấu trúc dùng để phân lớp đối tượng dựa vào dãy luật Các thuộc tính đối tượng thuộc kiểu liệu khác Nhị phân (Binary), Định danh (Nominal), Thứ tự (Ordinal), Số lượng (Quantitative) Mặt khác, thuộc tính phân lớp phải có kiểu liệu Binary Ordinal Decision Tree mơ hình có khả diễn giải cao thực nhiệm vụ classification (phân loại) regression (hồi quy) 1.2 Một số thuật ngữ Regression tree: ước lượng hàm giá có giá trị số thực thay sử dụng cho nhiệm vụ phân loại Classification tree: y biến phân loại như: giới tính (nam hay nữ), kết trận đấu (thắng hay thua) Root Nodes: nút đầu Decision Tree Từ nút này, quần thể bắt đầu phân chia theo đặc điểm khác Decision Nodes: nút nhận sau tách Root Nodes Leaf Nodes (nút đầu cuối): nút tách thêm Sub-tree: phần Decision Tree Pruning: cắt giảm số nút để ngừng trang bị mức 1.3 Cấu trúc Decision Tree Decision Trees gồm phần chính: node gốc (root node), node (leaf nodes) nhánh nhỏ (branches) Trong node gốc điểm bắt đầu Decision Trees hai node gốc node chứa câu hỏi tiêu chí để trả lời Các nhánh nhỏ thể kết kiểm tra nút 1.4 Attribute Selection Measure (ASM) 1.4.1 Xây dựng định (Decision Tree) Một “học” cách chia tập nguồn thành tập dựa Biện pháp lựa chọn thuộc tính Mục tiêu ASM xác định thuộc tính tạo tập hợp liệu đồng nhất sau phân chia, từ tối đa hóa lợi ích thu thơng tin Q trình lặp lại tập dẫn xuất theo cách đệ quy gọi phân vùng đệ quy Quá trình đệ quy hoàn thành tập hợp nút có giá trị biến mục tiêu việc phân tách khơng cịn thêm giá trị vào dự đoán 1.4.2 Entropy - Entropy thuật ngữ thuộc Nhiệt động lực học, thước đo biến đổi, hỗn loạn ngẫu nhiên - Entropy cho tập hợp tập liệu gốc có K số lớp cho nút thứ i định nghĩa là: Trong đó: S liệu mẫu k lớp cụ thể từ K lớp p(k) tỷ lệ điểm liệu thuộc lớp k tổng số điểm liệu mẫu tập liệu S p(i, k) không Một số điểm quan trọng Entropy Entrophy tập liệu đồng Khi tập liệu chia cho nhiều lớp, Entrophy đạt giá trị cực đại Entropy sử dụng để đánh giá chất lượng phân chia Thuộc tính thu thơng tin cao chọn làm tiêu chí phân tách (nghĩa giảm entropy sau phân tách thuộc tính đó) q trình lặp lại đệ quy để xây dựng định - 1.4.3 Gini Impurity or index: - Gini Impurity điểm đánh giá mức độ xác việc phân chia nhóm phân loại - Gini Impurity đánh giá điểm khoảng từ đến 1, tất quan sát thuộc lớp phân bố ngẫu nhiên phần tử lớp pi tỷ lệ phần tử tập hợp thuộc loại thứ i 1.4.4 Information Gain: - Information Gain dựa giảm hàm Entropy tập liệu phân chia thuộc tính Để xây dựng định, ta phải tìm tất thuộc tính trả Infomation gain cao - Information gain thuộc tính A tập liệu S tính sau: - - Trong đó: A thuộc tính nhãn lớp cụ thể |H| entrophy tập liệu mẫu S |HV| số phiên tập S có giá trị v cho thuộc tính A Information gain đo lường mức giảm entropy phương sai đạt cách phân vùng tập liệu thuộc tính A Information gain sử dụng định classification (phân loại) regression (hồi quy) 1.5 Decision Tree hoạt động ? - Cây định hoạt động cách phân tích tập liệu để dự đốn phân loại Nó nút gốc cây, nơi thuật toán xem giá trị thuộc tính gốc so với thuộc tính ghi tập liệu thực tế Dựa so sánh, tiến hành theo nhánh di chuyển đến nút Thuật toán lặp lại tới nút Các bước thực sau Bước 1: Bắt đầu với nút gốc, gọi S, chứa tập liệu hồn chỉnh Bước 2: Tìm thuộc tính tốt tập liệu cách sử dụng Thước đo lựa chọn thuộc tính (ASM) Bước 3: Chia S thành tập chứa giá trị có thuộc tính tốt Bước 4: Tạo nút định chứa thuộc tính tốt Bước 5: Tạo đệ quy định cách sử dụng tập hợp tập liệu tạo bước Tiếp tục trình đạt đến giai đoạn mà bạn phân loại thêm nút gọi nút cuối thuật toán Phân loại nút Cây hồi quy 1.6 Ưu nhược điểm Decision Tree ? 1.6.1 Ưu điểm: Có thể hiểu đơn giản tn theo quy trình tương tự mà người tuân theo đưa định sống thực Nó hữu ích cho việc giải vấn đề liên quan đến định Việc suy nghĩ tất kết xảy vấn đề giúp ích Yêu cầu làm liệu so với thuật toán khác 1.6.2 Nhược điểm: Cây định chứa nhiều lớp nên phức tạp Nó vấn đề khớp (overfitting), vấn đề giải thuật tốn Random Forest Đối với nhiều nhãn lớp hơn, độ phức tạp tính tốn định tăng lên 1.7 Thuật toán CART (Classifitication and Regression Tree) 1.7.1 Cách thức hoạt động - Sử dụng thuật tốn CART để xây dựng Decision Tree - Nó hoạt động cách chọn mức phân chia tốt nút dựa số liệu Gini impurity hoặc Information Gain - Cơng thức tính GINI: - Các bước thực sau: Giả sử nút gốc coi tập liệu hoàn chỉnh Xác định mức độ tạp chất liệu dựa đặc điểm có tập liệu Tạp chất đo cách sử dụng số liệu số Gini entropy để phân loại Sau chọn đặc điểm mang lại mức tăng thông tin giảm tạp chất cao phân tách liệu Đối với giá trị có đối tượng chọn, chia tập liệu thành hai tập hợp (trái phải), tập hợp đối tượng đảm nhận giá trị tập hợp khơng có giá trị Việc phân chia phải thiết kế để tạo tập hợp túy biến mục tiêu Dựa biến mục tiêu, xác định độ tạp chất tập hợp kết Đối với tập hợp con, lặp lại bước lặp từ 2–5 đáp ứng điều kiện dừng Ví dụ: điều kiện dừng độ sâu tối đa, số lượng mẫu tối thiểu cần thiết để phân tách ngưỡng tạp chất tối thiểu Gán nhãn lớp đa số cho nhiệm vụ phân loại giá trị trung bình cho nhiệm vụ hồi quy cho nút đầu cuối (nút lá) 1.7.2 Mã giả thuật toán CART d = 0, endtree = Note(0) = 1, Node(1) = 0, Node(2) = while endtree < if Node(2d-1) + Node(2d) + + Node(2d+1-2) = - 2d+1 endtree = else i = 2d-1, 2d, , 2d+1-2 if Node(i) > -1 Split tree else Node(2i+1) = -1 Node(2i+2) = -1 end if end end if d=d+1 end while 1.7.3 Bài tập mẫu Ví dụ: Có 14 trường hợp đưa định chơi golf dựa yếu tố quang cảnh, nhiệt độ, độ ẩm gió Có tập liệu bảng Công thức Gini Tổng hợp số lượng Yes No thời tiết cột Outlook - - - - Ta tính GINI thời tiết Gini(Outlook=Sunny) = –(2/5)2–(3 /5)2 = – 0.16 – 0.36 = 0.48 Gini (Outlook=Overcast) = –(4/ 4)2–(0 /4)2 = Gini (Outlook=Rain) = –(3 /5)2 –(2/5)2= – 0.36 – 0.16 = 0.48 Sau tính tổng trọng số cho cột Outlook Gini(Outlook) = (5/14) x 0.48 + (4/14) x + (5/14) x 0.48 = 0.171 + + 0.171 = 0.342 Làm tương tự với cột Temp., Humidity, Wind Ta có bảng sau Feature Gini Outlook 0.342 Temp 0.439 Humidity 0.367 Wind 0.428 Tương tự ta tính Gini cho Sunny với cột Temp, Humidity, Wind Feature Gini Temp 0.2 Humidity Wind 0.466 - Như thấy, định không đưa độ ẩm cao trời nắng Mặt khác, định ln có độ ẩm bình thường trời nắng Nhánh kết thúc - Tương tự ta tính Gini cho Rain với cột Temp, Humidity, Wind Feature Gini Temp 0.466 Humidity 0.466 Wind - Như thấy, định ln đồng ý gió yếu Mặt khác, định ln khơng gió mạnh Điều có nghĩa nhánh kết thúc - Kết cuối cho toán CART 1.7.4 Ưu điểm CART: Kết đơn giản Cây phân loại hồi quy Phi tham số Phi tuyến tính Cây phân loại hồi quy ngầm thực việc lựa chọn tính Các ngoại lệ khơng có tác dụng có ý nghĩa CART Nó địi hỏi giám sát tối thiểu tạo mơ hình dễ hiểu 1.8 Thuật toán Iterative Dichotomiser (ID3) 1.8.1 Ý tưởng Trong ID3, cần xác định thứ tự thuộc tính cần xem xét bước Với tốn có nhiều thuộc tính thuộc tính có nhiều giá trị khác nhau, việc tìm nghiệm tối ưu thường không khả thi Thay vào đó, phương pháp đơn giản thường sử dụng bước, thuộc tính tốt nhất sẽ chọn dựa tiêu chuẩn (chúng ta bàn sớm) Với thuộc tính chọn, ta chia 10 liệu vào các child node tương ứng với giá trị thuộc tính tiếp tục áp dụng phương pháp cho mỗi child node Việc chọn thuộc tính tốt nhất ở bước gọi cách chọn greedy (tham lam) Sau mỗi câu hỏi, liệu phân chia vào từng child node tương ứng với câu trả lời cho câu hỏi đó. Câu hỏi ở thuộc tính, câu trả lời giá trị thuộc tính Để đánh giá chất lượng của cách phân chia, cần tìm phép đo Trước hết, phép phân chia tốt? Bằng trực giác, phép phân chia tốt liệu mỗi child node hoàn toàn thuộc vào class–khi đó child node này coi một leaf node, tức ta không cần phân chia thêm Nếu liệu các child node vẫn lẫn vào theo tỉ lệ lớn, ta coi phép phân chia chưa thực tốt Từ nhận xét này, ta cần có hàm số đo độ tinh khiết (purity), hoặc độ vẩn đục (impurity) phép phân chia Hàm số cho giá trị thấp liệu mỗi child node nằm class (tinh khiết nhất), cho giá trị cao mỗi child node có chứa liệu thuộc nhiều class khác Một hàm số có đặc điểm dùng nhiều lý thuyết thông tin hàm entropy 1.8.2 Thuật tốn ID3 Trong ID3, tổng có trọng số entropy leaf-node sau xây dựng decision tree coi hàm mát decision tree Các trọng số tỉ lệ với số điểm liệu phân vào node Công việc ID3 tìm cách phân chia hợp lý (thứ tự chọn thuộc tính hợp lý) cho hàm mát cuối đạt giá trị nhỏ tốt Như đề cập, việc đạt cách chọn thuộc tính cho dùng thuộc tính để phân chia, entropy bước giảm lượng lớn Bài toán xây dựng decision tree ID3 chia thành toán nhỏ, toán, ta cần chọn thuộc tính giúp cho việc phân chia đạt kết tốt Mỗi toán nhỏ tương ứng với việc phân chia liệu một non-leaf node Chúng ta xây dựng phương pháp tính tốn dựa node Xét toán với C class khác Giả sử ta làm việc với một non-leaf node với điểm liệu tạo thành tập S với số phần tử là |S|=N Giả sử thêm số N điểm liệu này, Nc,c=1,2,…, C điểm thuộc vào class c Xác suất để điểm liệu rơi vào class c được xấp xỉ bằng NcN (maximum likelihood estimation) Như vậy, entropy node tính bởi: Tiếp theo, giả sử thuộc tính chọn là x Dựa trên x, điểm liệu trong S được phân thành K child node S1,S2,…,SK với số điểm child node là m1,m2,…,mK Ta định nghĩa tổng có trọng số entroy child node–được tính tương tự (2) Việc lấy trọng số quan trọng node thường có số lượng điểm khác Tiếp theo, ta định nghĩa information gain dựa thuộc tính x: Trong ID3, node, thuộc tính chọn xác định dựa trên: tức thuộc tính khiến cho information gain đạt giá trị lớn Câu hỏi dừng cách phân chia? Câu trả lời đề cập sau mục ví dụ 1.8.3 Ví dụ Cho bảng dataset : 11 Có bốn thuộc tính thời tiết: Outlook nhận ba giá trị: sunny, overcast, rainy Temperature nhận ba giá trị: hot, cool, mild Humidity nhận hai giá trị: high, normal Wind nhận hai giá trị: weak, strong (Tổng cộng có 3×3×2×2=363×3×2×2=36 loại thời tiết khác nhau, 14 loại thể bảng.) Đây coi toán dự đoán liệu đội bóng có chơi bóng khơng dựa quan sát thời tiết Ở đây, quan sát dạng categorical Cách dự đoán tương đối đơn giản xác, khơng phải cách định tốt nhất: Nếu outlook = sunny và humidity = high thì play = no Nếu outlook = rainy và windy = true thì play = no Nếu outlook = overcast thì play = yes Ngồi ra, nếu humidity = normal thì play = yes Ngồi ra, play = yes Chúng ta tìm thứ tự thuộc tính thuật toán ID3 Trong 14 giá trị đầu Bảng trên, có năm giá trị bằng no và chín giá trị bằng yes Entroy tại root node của toán là: Tiếp theo, tính tổng có trọng số entropy các child node nếu chọn thuộc tính outlook, temperature, humidity, wind, play để phân chia liệu Xét thuộc tính outlook Thuộc tính nhận ba giá trị sunny, overcast, rainy Mỗi giá trị tương ứng với một child node Gọi tập hợp điểm child node là Ss,So,Sr với tương ứng ms,mo,mr phần tử Sắp xếp lại Bảng ban đầu theo thuộc tính outlook ta đạt ba Bảng nhỏ sau Quan sát nhanh ta thấy rằng child node ứng với outlook = overcast sẽ có entropy tất cả mo=4 output là yes Hai child node cịn lại với ms=mr=5 có entropy cao tần suất output bằng yes hoặc no là xấp xỉ Tuy nhiên, hai child node này phân chia tiếp dựa hai thuộc tính humidity và wind Bạn đọc kiểm tra 12 Xét thuộc tính temperature, ta có phân chia Bảng Gọi Sh,Sm,Sc ba tập tương ứng với temperature bằng hot, mild, cool Bạn đọc tính Việc tính tốn với hai thuộc tính cịn lại dành cho bạn đọc Nếu kết giống nhau, chúng bằng: Như vậy, thuộc tính cần chọn bước là outlook vì H(outlook,S) đạt giá trị nhỏ (information gain lớn nhất) Sau bước phân chia này, ta nhận ba child node với phần tử ba Bảng phân chia theo outlook Child node thứ hai không cần phân chia tiếp đã tinh khiết Với child node thứ nhất, ứng với outlook = sunny, kết tính ID3 cho thuộc tính humidity vì tổng trọng số entropy sau bước với output bằng yes khi khi humidity = normal Tương tự, child node ứng với outlook = wind sẽ tiếp tục phân chia thuộc tính wind với output bằng yes khi khi wind = weak Như vậy, định cho toán dựa ID3 có dạng Hình 13 CHƯƠNG 2.1 2.2 2.3 2.4 2.5 2.6 2.7 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 3.1 Kết đạt được: Trong suốt khoảng thời gian làm tập lớn, chúng em học thêm nhiều kiến thức tảng, phương pháp tìm đọc tài liệu kiến thức lĩnh vực chuyên môn đề tài mà chúng em theo đuổi Nhóm chúng em làm chức như: đăng nhập người dùng, chỉnh sửa thơng tin, thêm, sửa, xố, thay đổi thông tin,… 3.2 Ưu điểm: - Ứng dụng dễ sử dụng thân thiện với người dùng - Giao diện bắt mắt, tiện lợi cho người dùng 3.3 Nhược điểm: - Bố cục số trang chưa hợp lý - Cịn thiếu nhiều thời gian để tìm hiểu kiến thức mà chúng em chưa ứng dụng hết 3.4 Hướng phát triển: - Nếu có thời gian điều kiện để tiếp tục nhóm em cố gắng hồn thành ứng dụng cách trọn vẹn Phát triển thêm nhiều tính ứng dụng thực tế - Mong muốn ngày không xa ứng dụng chúng em ngày phát triển rộng mở Và chúng em tin rằng, ứng dụng ứng dụng có ích cho xã hội nhiều người biết đến tin tưởng sử dụng TÀI LIỆU THAM KHẢO [1] Lập trình Java [Accessed 15 02 2023] [2] Lập trình Java tương tác với sở liệu [Accessed 10 03 2023] [3] MySQL ? [Accessed 20 05 2023] 14