Phân lớp dữ liệu Phân lớp dữ liệu là kĩ thuật dựa trên tập huấn luyện và những giá trị hay là nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu mới..
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SĨ
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU
VÀ ỨNG DỤNG VÀO CÔNG TÁC CÁN BỘ TRƯỜNG ĐẠI HỌC LUẬT HÀ NỘI
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nếu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Hà Nội, ngày 30 tháng 10 năm 2017
HỌC VIÊN
Vũ Ngọc Tân
Trang 4LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công nghệ Thông tin và Khoa Đào tạo Sau Đại học – Viện Đại học Mở Hà Nội đã tạo điều kiện thuận lợi giúp em hoàn thành luận văn này
Em xin chân thành cảm ơn sự hướng dẫn, chỉ bảo tận tình của PGS.TS Nguyễn Quang Hoan trong suốt thời gian thực hiện đề tài, cảm ơn thầy đã luôn dành thời gian giúp đỡ em để có thể hoàn thành được đề tài này
Xin cảm ơn các anh chị, bạn bè học viên lớp cao học Công nghệ Thông tin khóa 3 đã ủng hộ, giúp đỡ và động viên trong thời gian học tập và nghiên cứu
Cuối cùng xin cảm ơn những người thân yêu nhất, những người luôn động viên giúp đỡ về mọi mặt mọi hoàn cảnh
Qua một thời gian em đã hoàn thành luận văn tốt nghiệp với đề tài “Nghiên
cứu phương pháp phân lớp dữ liệu và ứng dụng vào công tác cán bộ Trường Đại học Luật Hà Nội” Tuy đã cố gắng nhưng chắc chắn vẫn không tránh khỏi những
thiếu sót Kính mong nhận được sự thông cảm và đóng góp ý kiến của quý Thầy Cô
và các bạn
Hà Nội, ngày 30 tháng 10 năm 2017
Trang 5MỤC LỤC
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH vii
CHƯƠNG 1 PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU 1
1.1 Khái quát về phân lớp dữ liệu 1
1.1.1 Phân lớp dữ liệu 1
1.1.2 Phân lớp dữ liệu và các vấn đề liên quan 4
1.1.3 Phương pháp đánh giá độ chính xác mô hình phân lớp 5
1.2 Cây quyết định ứng dụng trong phân lớp dữ liệu 6
1.2.1 Định nghĩa 6
1.2.2 Các vấn đề trong khai phá dữ liệu sử dụng cây quyết định 8
1.2.3 Đánh giá thuật toán cây quyết định 9
1.2.4 Xây dựng cây quyết định 11
1.2.5 Tình hình nghiên cứu các thuật toán hiện nay 12
1.3 Kết luận chương 1 13
CHƯƠNG 2 THUẬT TOÁN C4.5 14
2.1 Giới thiệu chung 14
2.1.1 Thuật toán ID3 14
2.1.2 Thuật toán C4.5 15
2.1.3 Thuật toán See5/C5.0 17
2.1.4 C4.5 dùng Gain-entropy làm độ đo lựa chọn thuộc tính tốt nhất18 2.1.5 Xử lý những giá trị thiếu trong C4.5 20
2.1.6 Chuyển đổi từ cây quyết định sang luật 21
2.2 Hệ thống tiêu chí đánh giá hiệu quả của thuật toán 22
2.3 Ví dụ minh họa cho thuật toán C4.5 24
2.4 Kết luận chương 2 31
CHƯƠNG 3 PHÂN LỚP DỮ LIỆU CÁN BỘ 32
3.1 Giới thiệu bài toán 32
3.2 Thu thập và tiền xử lý dữ liệu 32
3.2.1 Thu thập dữ liệu 32
Trang 63.3 Phân loại cán bộ sử dụng thuật toán C4.5 36
3.3.1 Triển khai thuật toán C4.5 36
3.3.2 Xây dựng cây quyết định 37
3.4 Các công cụ sử dụng trong khai phá dữ liệu 57
3.4.1 Giới thiệu chung 57
3.4.2 Phần mềm Weka 59
3.5 Kết quả thực nghiệm 59
3.5.1 Cài đặt và chạy Weka 59
3.5.2 Đánh giá độ đo hiệu quả 64
3.6 Một số đề xuất cải tiến mô hình phân lớp C4.5 65
3.7 Kết luận chương 3 65
KẾT LUẬN CHUNG 66
TÀI LIỆU THAM KHẢO 67
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
AI Artificial Intelligence Trí tuệ nhân tạo
IG Information Gain Độ lợi thông tin
K_NN K_Nearest Neighbor (Classifier) Bộ phân lớp K-láng giềng gần nhất
SplitInfo Split Information Thông tin của phân phối dữ liệu
SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu trúc
Trang 8DANH MỤC CÁC BẢNG
Bảng 2.0: Ma trận confusion 22
Bảng 2.1: Bảng cơ sở dữ liệu dự đoán đỗ đại học 24
Bảng 3.1: Bảng các thuộc tính của tập dữ liệu 33
Bảng 3.2: Dữ liệu mẫu huấn luyện cán bộ (S) 35
Bảng 3.3: Bảng so sánh kết quả GainRatio trong tập thuộc tính S 41
Bảng 3.4: Bảng mẫu huấn luyện S1 (DV = Co) 42
Bảng 3.5: Bảng so sánh kết quả GainRatio trong tập thuộc tính S1 45
Bảng 3.6: Bảng mẫu huấn luyện S2 (CDNN = GV) 47
Bảng 3.7: Bảng so sánh kết quả GainRatio trong tập thuộc tính S2 50
Bảng 3.8: Bảng mẫu huấn luyện S3 (TDCM = Ths) 51
Bảng 3.9: Bảng so sánh kết quả GainRatio trong tập thuộc tính S3 52
Bảng 3.10: Bảng mẫu huấn luyện S3.1 (TDCM = TS) 53
Bảng 3.11: Bảng so sánh kết quả Gain Ratio trong tập thuộc tính S3.1 55
Bảng 3.12: Bảng mẫu huấn luyện S4 (GT = Nu) 56
Trang 9DANH MỤC CÁC HÌNH
Hình 1.1 Quá trình phân lớp dữ liệu – Bước xây dựng mô hình 2
Hình 1.2: Quá trình phân lớp dữ liệu – Phân lớp dữ liệu mới 3
Hình 1.3: Ước lượng độ chính xác của mô hình phân lớp với phương pháp Holdout 6
Hình 1.4: Ví dụ về cây quyết định 7
Hình 2.1: Mã giả thuật toán C4.5 16
Hình 2.2: Cây quyết định hoàn chỉnh 30
Hình 3.1 : Cây quyết định cấp 1 41
Hình 3.2: Cây quyết định cấp 2 46
Hình 3.3: Cây quyết định cấp 3.1 50
Hình 3.4: Cây quyết định cấp 4 53
Hình 3.5: Cây quyết định cấp 3.2 55
Hình 3.6: Phần mềm Weka 60
Hình 3.7 : File dữ liệu định dạng chuẩn csv 60
Hình 3.8: Giao diện Weka 61
Hình 3.9: Giao diện Preprocess 61
Hình 3.10: Giao diện chọn file dữ liệu 62
Hình 3.11: Giao diện Classify 62
Hình 3.12: Giao diện chọn thuật toán 63
Hình 3.13: Kết quả Classifer Output 63
Hình 3.14: Cây quyết định sử dụng thuật toán C4.5 trong Weka 64
Trang 10LỜI MỞ ĐẦU
Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin, lượng thông tin không ngừng tăng lên, ước tính cứ sau khoảng hai năm lượng thông tin trên thế giới lại tăng gấp đôi Chính vì vậy, các chuyên gia cho rằng, hiện nay chúng ta đang sống trong một xã hội “rất giàu về thông tin nhưng nghèo về tri thức” Trước tình hình đó, giải pháp hiệu quả giúp phân tích khối lượng lớn dữ liệu đó là công nghệ phân lớp và dự đoán dữ liệu ra đời
để đáp ứng mong muốn đó
Công nghệ phân lớp dữ liệu đã, đang và sẽ phát triển mạnh mẽ trước những khao khát tri thức của con người Trong những năm qua công nghệ này cũng ứng dụng trong nhiều lĩnh vực thực tế như: thương mại, nhà băng, maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục v.v Nhiều phương pháp phân lớp đã được đề xuất như: Phân lớp cây quyết định (Decision Tree Classification: ID3, C4.5, C5.0), phân lớp dựa theo Bayes (Bayesian Classifier), phân lớp K_NN (K_Nearest Neighbor Classifier), phân lớp dựa vào mạng nơ ron v.v…
Trong những năm gần đây, công tác quy hoạch cán bộ của Trường Đại học Luật Hà Nội còn nhiều hạn chế và bất cập, chưa đáp ứng được nhu cầu thực tế trong công tác quy hoạch cán bộ lãnh đạo cấp khoa, cấp trường Nhiều cán bộ lãnh đạo đã hết tuổi nhưng vẫn phải kéo dài thời gian công tác do chưa có đủ người người kế cận thay thế; từ đó đẫn đến “quy hoạch động” theo yêu cầu là không đảm bảo Từ vấn đề đó, em tìm hiểu, nghiên cứu và áp dụng thuật toán cây quyết định để phân lớp dữ liệu với hy vọng tìm ra quy luật, các đặc trưng tác động đến công tác quy hoạch cán bộ để có cách tư vấn, đề xuất giới thiệu nguồn quy hoạch cán bộ cho nhà trường
Trang 11CHƯƠNG 1 PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU 1.1 Khái quát về phân lớp dữ liệu
1.1.1 Phân lớp dữ liệu
Phân lớp dữ liệu là kĩ thuật dựa trên tập huấn luyện và những giá trị hay là nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu mới Phân lớp dữ liệu có thể coi là quá trình học một mô hình mà mô hình này dùng để mô tả các lớp dữ liệu khác nhau Các lớp dữ liệu ở đây đã được xác định trước Phân lớp dữ liệu được xem là một quá trình học có giám sát tức là tập dữ liệu huấn luyện (quan sát, thẩm định…) đi đôi với những nhãn chỉ định lớp quan sát, những dữ liệu mới được phân lớp dựa trên tập huấn luyện Ngược lại với hình thức học được giám sát là hình thức học không được giám sát lúc đó nhãn lớp của tập dữ liệu huấn luyện là không được biết đến
Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với nhiều thông tin ẩn con người có thể trích rút ra các quyết định nghiệp vụ thông minh Phân lớp dự đoán giá trị của những nhãn xác định (Categorical Label) hay những giá trị rời rạc (Discrete Value), có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ dữ liệu
là biết trước Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị liên tục Ví dụ nhờ các luật của xu hướng mua hàng của khách hàng trong siêu thị, các nhân viên kinh doanh có thể đưa ra những quyết sách đúng đắn về lượng hàng hóa cũng như các chủng loại bày bán v.v… Một mô hình dự đoán có dự đoán được lượng tiền tiêu dùng của khách hàng tiềm năng dựa trên những thông tin về thu nhập và nghề nghiệp của khách hàng Trong những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm của các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (Machine Learning), hệ chuyên gia (Expert System), thống kê (Statistics) v.v… Công nghệ này cũng được ứng dụng trong nhiều lĩnh vực khác nhau như: Thương mại, maketing, nhà băng, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục v.v…
Kĩ thuật phân lớp dữ liệu được tiến hành gồm hai bước [10]:
Bước thứ nhất : Xây dựng mô hình
Trang 12Là mô tả một tập những lớp được định nghĩa trước trong đó: mỗi bộ hoặc mẫu được gán thuộc về một lớp được định nghĩa trước như là được xác định bởi thuộc tính nhãn lớp, tập hợp của những bộ được sử dụng trong việc sử dụng mô hình được gọi là tập huấn luyện Mô hình được biểu diễn là những luật phân lớp, cây quyết định và những công thức toán học
Hình 1.1 Quá trình phân lớp dữ liệu – Bước xây dựng mô hình
Bước thứ hai : Sử dụng mô hình
Việc sử dụng mô hình phục vụ cho mục đích phân lớp dữ liệu trong tương
lai hoặc phân lớp cho những đối tượng chưa biết đến Trước khi sử dụng mô hình, người ta thường phải đánh giá tính chính xác của mô hình trong đó: nhãn được biết của mẫu kiểm tra được so sánh với kết quả phân lớp của mô hình, độ chính xác là phần trăm của tập hợp mẫu kiểm tra mà phân loại đúng bởi mô hình, tập kiểm tra là độc lập với tập huấn luyện
Mô hình (phân lớp)
IF Năm > 2015 AND IF Loại máy = Panasonic THEN Độ an toàn = Cao
Thuật toán phân lớp Tập dữ liệu đào tạo
Năm Loại máy Độ an toàn
Trang 13Hình 1.2: Quá trình phân lớp dữ liệu – Phân lớp dữ liệu mới
Trong mô hình phân lớp, thuật toán phân lớp dữ vai trò trung tâm, quyết định tới sự thành công của mô hình phân lớp Do vậy, chìa khóa của vấn đề phân lớp dữ liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và
có khả năng mở rộng được Trong đó, khả năng mở rộng được của thuật toán được đặc biệt trú trọng và phát triển [10]
Có thể liệt kê ra đây các kỹ thuật phân lớp đã được sử dụng trong những năm qua:
Phân lớp cây quyết định (Decision Tree Classification)
Bộ phân lớp Bayesian (Bayesian Classifier)
Phân lớp K-hàng xóm gần nhất (K-Nearest Neighbor Classifier)
Mạng nơron
Phân tích thống kê
Các thuật toán di truyền
Phương pháp tập thô (Rough Set Approach)
Bộ phân lớp (Mô hình)
Độ an toàn
Thấp
Tập dữ liệu kiểm tra
Năm Loại máy Độ an toàn
Trang 141.1.2 Phân lớp dữ liệu và các vấn đề liên quan
1.1.2.1 Chuẩn bị dữ liệu cho việc phân lớp
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm không thể thiếu và có vai trò quan trọng quyết định tới việc có áp dụng được mô hình phân lớp hay không Quá trình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác, tính hiệu quả
và khả năng mở rộng được của mô hình phân lớp
Quá trình tiền xử lý dữ liệu gồm các công việc sau:
Làm sạch dữ liệu
Làm sạch dữ liệu liên quan đến việc xử lý lỗi (Noise) và giá trị thiếu (Mising Value) trong tập dữ liệu ban đầu Noise là các lỗi ngẫu nhiên hay các giá trị không hợp lệ của các biến trong tập dữ liệu Để xử lý với tập lỗi này có thể dùng kỹ thuật làm trơn Missing value là những ô không có giá trị của các thuộc tính Giá trị lỗi có thể do lỗi chủ quan trong quá trình nhập liệu, hoặc trong trường hợp cụ thể giá trị của các thuộc tính đó không có, hay không quan trọng Kỹ thuật xử lý ở đây có thể thay giá trị thiếu bằng giá trị phổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể xảy ra nhất dựa trên thống kê Mặc dù phần lớn thuật toán phân lớp đều có cơ chế xử lý với những giá trị thiếu và lỗi trong tập dữ liệu, nhưng bước tiền xử lý này
có thể làm giảm sự hỗn độn trong quá trình học (xây dựng mô hình phân lớp)
Phân tích sự cần thiết của dữ liệu
Có rất nhiều thuộc tính trong tập dữ liệu có thể hoàn toàn không cần thiết hay liên quan đến một bài toán phân lớp cụ thể Ví dụ, dữ liệu về ngày trong tuần hoàn toàn không cần thiết đối với ứng dụng phân tích độ rủi ro của các khoản tiền cho vay của ngân hàng, nên thuộc tính này là dư thừa Phân tích sự cần thiết của dữ liệu nhằm mục đích loại bỏ những thuộc tính không cần thiết, dư thừa khỏi quá trình học vì những thuộc tính đó sẽ làm chậm, phức tạp và gây ra sự hiểu sai trong quá trình học dẫn tới một mô hình phân lớp không dùng được
Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đôi khi là cần thiết
trong quá trình tiền xử lý Việc này đặc biệt hữu ích với những thuộc tính liên tục (Continuous Attribute or Numeric Attribute) Ví dụ, các giá trị số của thuộc tính thu
Trang 15nhập của khách hàng có thể khái quát hóa thành các dãy giá trị rời rạc: thấp, trung bình, cao Tương tự, với những thuộc tính rời rạc (Categorical Attribute) như địa chỉ phố có thể được khái quát hóa lên thành phố Việc khái quát hóa làm cô đọng dữ
liệu học nguyên thủy Vì vậy, các thao tác vào/ra liên quan đến quá trình học sẽ giảm
1.1.2.2 So sánh các mô hình phân lớp
Trong từng ứng dụng cụ thể cần lựa chọn mô hình phân lớp phù hợp Việc lựa chọn đó căn cứ vào sự so sánh các mô hình phân lớp khác nhau, dựa trên các tiêu chuẩn sau:
Độ chính xác dự đoán (Predictive Accuracy): Độ chính xác là khả
năng mô hình dự đoán chính xác nhãn lớp của dữ liệu mới hay dữ liệu chưa biết
Tốc độ (Speed): Tốc độ là chi phí tính toán liên quan đến quá trình tạo
ra và sử dụng mô hình
Sức mạnh (Robustness): Sức mạnh là khả năng mô hình tạo ra những
dự đoán đúng từ những dữ liệu noise hay dữ liệu với những giá trị thiếu
Khả năng mở rộng (Scalability): là khả năng thực thi hiệu quả trên
lượng lớn dữ liệu của mô hình đã học
Tính hiểu được (Interpretability): Tính hiểu được la mức độ hiểu và
hiểu rõ những kết quả sinh ra bởi mô hình đã học
Tính đơn giản (Simplicity): Tính đơn giản liên quan đến kích thước
của cây quyết định hay độ cô đọng của các luật
Trong các tiêu chuẩn trên, khả năng mở rộng của mô hình phân lớp được nhấn mạnh và chú trọng phát triển, đặc biệt với cây quyết định [10]
1.1.3 Phương pháp đánh giá độ chính xác mô hình phân lớp
Ước lượng độ chính xác của bộ phân lớp là quan trọng ở chỗ nó cho phép dự đoán được độ chính xác của các kết quả phân lớp những dữ liệu tương lai Độ chính xác còn giúp so sánh các mô hình phân lớp khác nhau Dưới đây là hai phương pháp
đánh giá phổ biến là Holdout và K-Fold Cross-Validation Cả hai phương pháp này
đều dựa trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu
Trang 16 Phương pháp Holdout
Dữ liệu đưa ra được phân chia ngẫu nhiên thành 2 phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra Thông thường 2/3 dữ liệu cấp cho dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểm tra [10]
Hình 1.3: Ước lượng độ chính xác của mô hình phân lớp với phương pháp Holdout
Phương pháp k-fold cross-validation
Tập dữ liệu ban đầu được chia ngẫu nhiên thành k tập con (Fold) có kích thước xấp xỉ nhau S 1 , S 2 ,…, S k Quá trình phân lớp và thử được thực hiện k lần Tại lần lặp thứ i, S i là tập dữ liệu được chọn để kiểm tra, các tập còn lại hợp thành tập
dữ liệu đào tạo Điều đó có nghĩa là, đầu tiên việc phân lớp được thực hiện trên các
tập S 2 , S 3 ,…, S k sau đó kiểm tra trên tập S 1, tiếp tục quá trình phân lớp được thực
hiện trên tập S 2 , S 3 , S 4 ,…, S k sau đó kiểm tra trên tập S 2 và cứ thế tiếp tục Độ chính xác của phương pháp phân lớp được xác định băng cách lấy toàn bộ số phân lớp
được phân đúng từ k lần lặp chia cho tổng số mẫu cảu tập dữ liệu ban đầu
1.2 Cây quyết định ứng dụng trong phân lớp dữ liệu
1.2.1 Định nghĩa
Trong những năm qua, nhiều mô hình phân lớp dữ liệu đã được các nhà khoa học trong nhiều lĩnh vực khác nhau đề xuất như mạng nơ ron, mô hình thống kê tuyến tính bậc 2, cây quyết định, mô hình di truyền Trong số những mô hình đó, cây quyết định với những ưu điểm của mình được đánh giá là một công cụ mạnh,
Dữ liệu
Tập dữ liệu đào tạo
Tập dữ liệu kiểm tra
Lấy từ bộ phân lớp
Ước lượng
độ chính
Trang 17phổ biến và đặc biệt thích hợp trong kỹ thuật khai phá dữ liệu nói chung và phân lớp dữ liệu nói riêng [3] Có thể kể ra những ưu điểm của cây quyết định như: xây dựng tương đối nhanh, đơn giản, dễ hiểu Hơn nữa các cây có thể dễ dàng được chuyển đổi sang các câu lệnh SQL để có thể truy nhập dữ liệu một cách hiệu quả Cuối cùng, việc phân lớp dựa trên cây quyết định đạt được chính xác bằng hoặc hơn
so với các phương pháp phân lớp khác [6]
Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây (hình 1.4):
Hình 1.4: Ví dụ về cây quyết định
Trong cây quyết định:
Gốc: là node trên cùng của cây
Node trong: biểu diễn một kiểm tra trên một thuộc tính đơn (hình chữ
nhật)
Nhánh: biểu diễn các kết quả của kiểm tra trên node trong (mũi tên)
Node lá: biểu diễn lớp hay sự phân phối lớp (hình tròn)
Để phân lớp mẫu dữ liệu chưa biết, giá trị các thuộc tính của mẫu được đưa vào kiểm tra trên cây quyết định Mỗi mẫu tương ứng có một đường đi từ gốc đến lá
và lá biểu diễn dự đoán giá trị phân lớp mẫu đó
Loại máy ∈{Electrolux, Philips}
Trang 181.2.2 Các vấn đề trong khai phá dữ liệu sử dụng cây quyết định
Các vấn đề đặc thù trong khi học hay phân lớp dữ liệu bằng cây quyết định gồm: xác định độ sâu để phát triển cây quyết định, xử lý với những thuộc tính liên tục, chọn phép đo lựa chọn thuộc tính thích hợp, sử dụng tập dữ liệu đào tạo với những giá trị thuộc tính bị thiếu, sử dụng các thuộc tính với những chi phí khác nhau, và cải thiện hiệu năng tính toán Sau đây sẽ đề cập đến những vấn đề chính đã được giải quyết trong các thuật toán phân lớp dựa trên cây quyết định
1.2.2.1 Tránh “quá vừa” dữ liệu
“Quá vừa’ dữ liệu có thể hiểu là hiện tượng cây quyết định chứa một số đặc trưng riêng của tập dữ liệu đào tạo, nếu lấy chính tập dữ liệu đào tạo để kiểm tra lại
mô hình phân lớp Khi đó, độ chính xác phân lớp sẽ rất cao, trong khi với những dữ liệu tương lai khác nếu sử dụng cây đó lại không đạt được độ chính xác như vậy
Quá vừa dữ liệu là một khó khăn đáng kể đối với phân lớp bằng cây quyết định và những phương pháp khác Đặc biệt khi số lượng ví dụ trong tập dữ liệu đào tạo quá ít, hay có noise trong dữ liệu
Có hai phương pháp tránh “quá vừa” dữ liệu trong cây quyết định:
+ Dừng cây phát triển sớm hơn bình thường, trước khi tới điểm phân lớp hoàn hảo tập dữ liệu đào tạo Với phương pháp này, một thách thức đặt ra là phải ước lượng chính xác thời điểm dừng phát triển cây
+ Cho phép cây có thể “quá vừa” dữ liệu, sau đó sẽ cắt, tỉa cây
Mặc dù phương pháp thứ nhất có vẻ trực quan hơn, nhưng với phương pháp thứ hai thì cây quyết định được sinh ra được thực nghiệm chứng minh là thành công hơn trong thực tế Hơn nữa việc cắt, tỉa cây quyết định còn giúp tổng quát hóa, và cải thiện độ chính xác của mô hình phân lớp Dù thực hiện phương pháp nào thì vấn đề mấu chốt ở đây là tiêu chuẩn nào được sử dụng để xác định kích thước hợp
lý của cây cuối cùng
1.2.2.2 Thao tác với thuộc tính liên tục
Việc thao tác với thuộc tính liên tục trên cây quyết định hoàn toàn không đơn giản như với thuộc tính rời rạc
Trang 19Thuộc tính rời rạc có tập giá trị (Domain) xác định từ trước và là tập hợp các
giá trị rời rạc Ví dụ loại ô tô là một thuộc tính rời rạc với tập giá trị là: {xe tải, xe khách, xe con, taxi}.Việc phân chia dữ liệu dựa vào phép kiểm tra giá trị của thuộc tính rời rạc được chọn tại một ví dụ cụ thể có thuộc tập giá trị của thuộc tính đó hay
không: value(A) ∈ X với X ⊂ domain (A) Đây là phép kiểm tra logic đơn giản,
không tốn nhiều tài nguyên tính toán Trong khi đó, với thuộc tính liên tục (thuộc tính dạng số) thì tập giá trị là không xác định trước Chính vì vậy, trong quá trình phát triển cây, cần sử d ụng kiểm tra dạng nhị phân: value(A) ≤ θ Với θ là hằng số ngưỡng (Threshold) được lần lượt xác định dựa trên từng giá trị riêng biệt hay từng
cặp giá trị liền nhau (theo thứ tự đã sắp xếp) của thuộc tính liên tục đang xem xét
trong tập dữ liệu đào tạo Điều đó có nghĩa là nếu thuộc tính liên tục A trong tập dữ liệu đào tạo có d giá trị phân biệt thì cần thực hiện d-1 lần kiểm tra value(A) ≤ θ i với
i = 1 (d-1) để tìm ra ngưỡng θ best tốt nhất tương ứng với thuộc tính đó Việc xác
định giá trị của θ và tiêu chuẩn tìm θ tốt nhất tùy vào chiến lược của từng thuật toán [9], [1] Trong thuật toán C4.5, θ i được chọn là giá trị trung bình của hai giá trị liền
kề nhau trong dãy giá trị đã sắp xếp Ngoài ra còn một số vấn đề liên quan đến sinh tập luật, xử lý với giá trị thiếu sẽ được trình bày cụ thể trong phần thuật toán C4.5
1.2.3 Đánh giá thuật toán cây quyết định
1.2.3.1 Ưu điểm của cây quyết định
Khả sinh ra các quy tắc
Cây quyết định có khả năng sinh ra các quy tắc có thể chuyển đổi được sang dạng tiếng Anh, hoặc các câu lệnh SQL Đây là ưu điểm nổi bật của kỹ thuật này Thậm chí với những tập dữ liệu lớn khiến cho hình dáng cây quyết định lớn và phức tạp, việc đi theo bất cứ đường nào trên cây là dễ dàng theo nghĩa phổ biến và rõ ràng Do vậy, việc giải thích cho bất cứ một phân lớp hay dự đoán nào đều tương đối minh bạch
Khả thi trong lĩnh vực hướng quy tắc
Điều này nghe có vẻ hiển nhiên, nhưng quy tắc quy nạp nói chung và cây quyết định nói riêng là sự lựa chọn hoàn hảo cho những việc xây dựng các quy tắc
Trang 20Nhiều lĩnh vực từ di truyền tới các quá trình công nghiệp thực sự chứa các quy tắc
ẩn, không rõ ràng (Underlying Rules) do vấn đề đặt ra khá phức tạp và tối nghĩa bởi những dữ liệu lỗi (Noisy) Cây quyết định là một sự lựa chọn tự nhiên khi chúng ta nghi ngờ sự tồn tại của các quy tắc ẩn, không rõ ràng
Dễ dàng tính toán trong phân lớp
Mặc dù cây quyết định có nhiều định dạng, nhưng trong thực tế, các thuật toán sử dụng để tạo ra cây quyết định thường tạo ra những cây với số phân nhánh thấp và các phép thử đơn giản tại từng node Những phép thử điển hình là: so sánh
số, xem xét phần tử của một tập hợp, và các phép nối đơn giản Khi thực hiện trên máy tính, những phép thử này chuyển thành các hàm logic và số nguyên là những toán hạng thực thi nhanh và không đắt Đây là một ưu điểm quan trọng bởi trong môi trường thương mại; ở đó các mô hình dự đoán thường được sử dụng để phân lớp hàng triệu thậm chí hàng tỉ bản ghi
Khả năng xử lý với cả thuộc tính liên tục và thuộc tính rời rạc: Cây quyết định xử lý “tốt” như nhau với thuộc tính liên tục và thuộc tính rời rạc Tuy rằng với thuộc tính liên tục cần nhiều tài nguyên tính toán hơn Những thuộc tính rời rạc đã từng gây ra những vấn đề với mạng neural và các kỹ thuật thống kê lại thực sự dễ dàng thao tác với các tiêu chuẩn phân chia (Splitting Criteria) trên cây quyết định: mỗi nhánh tương ứng với từng phân tách tập dữ liệu theo giá trị của thuộc tính được chọn để phát triển tại node đó Các thuộc tính liên tục cũng dễ dàng phân chia bằng việc chọn ra một số gọi là ngưỡng trong tập các giá trị đã sắp xếp của thuộc tính đó Sau khi chọn được ngưỡng tốt nhất, tập dữ liệu phân chia theo phép thử nhị phân của ngưỡng đó
Thể hiện rõ những thuộc tính tốt nhất
Các thuật toán xây dựng cây quyết định chọn ra thuộc tính phân chia tốt nhất cho tập dữ liệu đào tạo, bắt đầu từ node gốc của cây Từ đó có thể thấy, những thuộc tính nào là quan trọng nhất cho việc dự đoán hay phân lớp
1.2.3.2 Nhược điểm của cây quyết định
Dù có những ưu điểm nổi bật trên, cây quyết định vẫn không tránh khỏi có những nhược điểm
Trang 21Cây quyết định không thích hợp lắm với những bài toán có mục tiêu là dự đoán giá trị của thuộc tính liên tục như thu nhập, huyết áp hay lãi suất ngân hàng…
Cây quyết định cũng khó giải quyết với những dữ liệu thời gian liên tục nếu không
bỏ ra nhiều công sức cho việc biểu diễn dữ liệu theo các mẫu liên tục
Dễ xảy ra lỗi khi có quá nhiều lớp
Một số cây quyết định chỉ thao tác với những lớp giá trị nhị phân dạng yes/no hay accept/reject Số khác lại có thể chỉ định các bản ghi vào một số lớp bất
kỳ, nhưng dễ xảy ra lỗi khi số ví dụ đào tạo ứng với một lớp là nhỏ Điều này xẩy ra càng nhanh hơn với cây có nhiều tầng hay có nhiều nhánh trên một node
Chi phí tính toán đắt để đào tạo
Điều này nghe có vẻ mâu thuẫn với khẳng định ưu điểm của cây quyết định
ở trên Nhưng quá trình phát triển cây quyết định đắt về mặt tính toán Vì cây quyết định có rất nhiều node trước khi đi đến lá cuối cùng Tại từng node, cần tính một độ
đo (hay tiêu chuẩn phân chia) trên từng thuộc tính, với thuộc tính liên tục phải thêm thao tác xắp xếp lại tập dữ liệu theo thứ tự giá trị của thuộc tính đó Sau đó mới có thể chọn được một thuộc tính phát triển và tương ứng là một phân chia tốt nhất Một vài thuật toán sử dụng tổ hợp các thuộc tính kết hợp với nhau có trọng số để phát triển cây quyết định Quá trình cắt cụt cây cũng “đắt” vì nhiều cây con phải được tạo ra và so sánh
1.2.4 Xây dựng cây quyết định
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
Giai đoạn thứ nhất phát triển cây quyết định:
Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy nạp theo cách thức chia để trị cho tới khi đạt được cây quyết định với tất cả các lá được gán nhãn lớp
Giai đoạn thứ hai cắt, tỉa bớt các nhánh trên cây quyết định:
Giai đoạn này nhằm đơn giản hóa va khái quát hóa từ đó làm tăng độ chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ lỗi của dữ liệu đào tạo mang tính chất thống kê, hay những sự biến đổi mà có thể là đặc tính riêng
Trang 22biệt của dữ liệu đào tạo Giai đoạn này chỉ truy cập giữ liệu trên cây quyết định đã được phát triển trong giai đoạn trước và quá trình thực nghiệm cho thấy giai đoạn này không tốn nhiều tài nguyên tính toán, như với phần lớn các thuật toán, giai đoạn này không tốn nhiều tài nguyên tính toán khoảng dưới 1% tổng thời gian xây dựng
mô hình phân lớp [3], [1]
Do vậy, ở đây chúng ta chỉ tập trung vào nghiên cứu giai đoạn phát triển cây quyết định Dưới đây là khung công việc của giai đoạn này:
Chọn thuộc tính “tốt” nhất bằng một độ đo đã định trước
Phát triển cây bằng việc them các nhánh tương ứng với từng giá trị của thuộc tính đã chọn
Sắp xếp, phân chia tập dữ liệu đào tạo tới node con
Nếu các ví dụ được phân lớp rõ thì dừng
Ngược lại: lặp lại bước 1 tới bước 4 cho từng node con
1.2.5 Tình hình nghiên cứu các thuật toán hiện nay
Luôn có 2 câu hỏi lớn cần phải được trả lời trong các thuật toán phân lớp dữ liệu dựa trên cây quyết định:
Một là: Làm cách nào xác định được thuộc tính tốt nhất để phát triển cây tại
• Gini-Index (Breiman và các đồng sự, 1984 [1]): Loại tiêu chuẩn này lựa
chọn thuộc tính mà làm cực tiểu hóa độ không đồng nhất của mỗi phân chia (hay phân hoạch) Các thuật toán sử dụng này là CART, SLIQ, SPRINT
• Information–Gain (Quinlan, 1993 [1]): Khác với Gini-Index, tiểu chuẩn
này sử dụng Entropy để đo độ không đồng nhất của một phân hoạch và lựa chọn
Trang 23thuộc tính theo mức độ cực đại hóa chỉ số Entropy Các thuật toán sử dụng tiêu chuẩn này là ID3, C4.5…
• χ2 -bảng thống kê các sự kiện xảy ra ngẫu nhiên: χ2 đo độ tương quan giữa từng thuộc tính và nhãn lớp Thuật toán sử dụng tiêu chuẩn này CHAID, trong đó thuộc tính được chọn làm nút gốc có độ tương quan lớn nhất
Chi tiết về cách tính Information-Gain sẽ được trình bày trong thuật toán C4.5 chương 2
1.3 Kết luận chương 1
Trong chương 1, luận văn đã giới thiệu khái quát về phân lớp dữ liệu, một số vấn đề liên quan trong phân lớp dữ liệu và tình hình nghiên cứu, ứng dụng các thuật toán phân lớp dữ liệu trong và ngoài nước
Trong chương tiếp theo luận văn sẽ nghiên cứu chi tiết hơn về thuật toán và minh họa
Trang 24CHƯƠNG 2 THUẬT TOÁN C4.5
2.1 Giới thiệu chung
Cây quyết định thường được sử dụng trong nghiên cứu hoạt động, đặc biệt là trong phân tích quyết định, để giúp xác định một chiến lược có thể đạt được mục tiêu nhất định, nhưng cũng là một công cụ phổ biến trong học máy Một cây quyết định là một cấu trúc giống như sơ đồ lưu đồ, trong đó mỗi nút nội bộ đại diện cho một "kiểm tra" đối với một thuộc tính, mỗi nhánh tượng trưng cho kết quả của bài kiểm tra và mỗi nút lá class label (quyết định đưa ra sau khi tính tất cả các thuộc tính) Các đường dẫn từ gốc đến lá đại diện cho các quy tắc phân loại Cây quyết định thường được sử dụng trong nghiên cứu hoạt động và quản lý hoạt động Nếu trên thực tế các quyết định phải được thực hiện trực tuyến mà không cần phải nhớ lại theo kiến thức chưa đầy đủ, thì một cây quyết định nên được song hành với mô hình xác suất như là một mô hình lựa chọn hay nhất hoặc thuật toán mô hình lựa chọn trực tuyến Việc sử dụng cây quyết định khác là một phương tiện mô tả để tính xác suất có điều kiện
Các cây quyết định, sơ đồ ảnh hưởng , chức năng tiện ích và các công cụ và phương pháp phân tích quyết định được dạy cho sinh viên đại học trong các trường kinh doanh, kinh tế y tế, và sức khoẻ cộng đồng, và là những ví dụ về nghiên cứu hoạt động hoặc các phương pháp khoa học quản lý
2.1.1 Thuật toán ID3
Giải thuật ID3 (gọi tắt là ID3) được phát triển đồng thời bởi Quinlan trong
AI và Breiman, Friedman, Olsen và Stone trong thống kê ID3 là một giải thuật học đơn giản nhưng tỏ ra thành công trong nhiều lĩnh vực ID3 là một giải thuật hay vì cách biểu diễn tri thức học được của nó, tiếp cận của nó trong việc quản lý tính phức tạp, heuristic của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềm năng của nó đối với việc xử lý dữ liệu nhiễu
Trang 25ID3 biểu diễn các khái niệm (Concept) ở dạng các cây quyết định (Decision Tree) Biểu diễn này cho phép chúng ta xác định phân loại của một đối tượng bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các ví
dụ huấn luyện (Training Example) hay còn gọi là dữ liệu học (Learning Data)
Input: Một tập hợp các ví dụ Mỗi ví dụ bao gồm các thuộc tính mô tả một tình huống, hay một đối tượng nào đó, và một giá trị phân loại của nó
Output: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập
dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chưa gặp trong tương lai
Giải thuật ID3 xây dựng cây quyết định được trình bày như sau:
Lặp:
1 Chọn A <= thuộc tính quyết định “tốt nhất” cho nút kế tiếp
2 Gán A là thuộc tính quyết định cho nút
3 Với mỗi giá trị của A, tạo nhánh con mới của nút
4 Phân loại các mẫu huấn luyện cho các nút lá
5 Nếu các mẫu huấn luyện được phân loại hoàn toàn thì ngưng
Ngược lại, lặp với các nút lá mới
Thuộc tính tốt nhất ở đây là thuộc tính có entropy trung bình thấp nhất theo thuộc tính kết quả với Entropy được tính như sau:
Gọi S là tập các mẫu huấn luyện
Gọi p là tỷ lệ các mẫu dương trong S
Ta có H ≡ – p.log 2 p – (1 – p).log 2 (1 – p)
2.1.2 Thuật toán C4.5
Thuật toán C4.5 là sự kế thừa của thuật toán học máy bằng cây quyết định dựa trên nền tảng là kết quả nghiên cứu của HUNT và các cộng sự của ông trong nửa cuối thập kỷ 50 và nửa đầu những năm 60 (Hunt 1962) Phiên bản đầu tiên ra đời là ID3 (Quinlan, 1979) 1 hệ thống đơn giản ban đầu chứa khoảng 600 dòng lệnh Pascal, và tiếp theo là C4 (Quinlan 1987) Năm 1993, J Ross Quinlan đã kế thừa
Trang 26các kết quả đó phát triển thành C4.5 với 9000 dòng lệnh C chứa trong một đĩa mềm Mặc dù đã có phiên bản phát triển từ C4.5 là C5.0 - một hệ thống tạo ra lợi nhuận từ Rule Quest Research, nhưng nhiều tranh luận, nghiên cứu vẫn tập trung vào C4.5 vì
mã nguồn của nó là sẵn dùng [9]
Trong các thuật toán phân lớp dữ liệu dựa trên cây quyết định, C4.5 là thuật toán tiêu biểu C4.5 là thuật toán hiệu quả và được dùng rộng rãi nhất trong các ứng dụng phân lớp với lượng dữ liệu nhỏ cỡ vài trăm nghìn bản ghi
Với những đặc điểm C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ C4.5 sử dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểm này làm C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại
dữ liệu tại mỗi node trong quá trình phát triển cây quyết định C4.5 còn chứa một kỹ thuật cho phép biểu diễn lại cây quyết định dưới dạng một danh sách sắp thứ tự các luật if-then (một dạng quy tắc phân lớp dễ hiểu) Kỹ thuật này cho phép làm giảm bớt kích thước tập luật và đơn giản hóa các luật mà độ chính xác so với nhánh tương ứng cây quyết định là tương đương
Hình 2.1: Mã giả thuật toán C4.5
(1) Computer Class Frequency(T);
(2) if OneClass or FewCases return a leaf;
Create a decision node N;
(3) For Each Attribute A ComputeGain(A);
(4) N.test=Attribute With Best Gain;
(5) if N.test is continuous find Threshold;
(6) For Each T' in the splitting of T (7) if T' is Empty
Child of N is a leaf else
(8) Child of N=FormTree(T');
(9) Compute Errors of N;
return N
Trang 27Tư tưởng phát triển cây quyết định của C4.5 là phương pháp của HUNT đã
nghiên cứu ở trên Chiến lược phát triển theo độ sâu (Depth-first Strategy) được áp
dụng cho C4.5 Mã giả của thuật toán C4.5 được mô tả trên Hình 2.1
Cụ thể ta có thể mô tả việc thực hiện theo các bước sau với tập dữ liệu T: (1) Tính toán tần suất các giá trị trong các lớp của T;
(2) Kiểm tra các mẫu, nếu thuộc cùng một lớp hoặc có rất ít mẫu khác lớp thì trả về một nút lá;
Nếu không thì tạo một nút quyết định N;
(3) Với mỗi thuộc tính A, tính Gain(A)
(4) Tại nút N, thực hiện việc kiểm tra để chọn ra thuộc tính N.phép thử có giá trị Gain tốt nhất (lớn nhất)
(5) Nếu thuộc tính có giá trị Gain lớn nhất là thuộc tính liên tục thì tìm
ngưỡng cho phép tách của thuộc tính đó
(6) Với mỗi tập con T i được tách ra từ tập T nếu Nphép thử là thuộc tính liên
tục thì tách theo ngưỡng, nếu Nphép thử là thuộc tính phân loại rời rạc thì tách theo giá trị của các thuộc tính này) ta kiểm tra
(7) Nếu T i rỗng thì gán nút con này của nút N là nút lá
(8) Nếu không thì gán nút con này là nút được trả về và thực hiện lại từ bước
đầu với tập dữ liệu là T i;
(9) Tính toán sai số của nút N; Trả về N
2.1.3 Thuật toán See5/C5.0
“See5 là một dạng nghệ thuật của hệ thống xây dựng sự phân loại trong dạng thức của những cây quyết định và tập luật” See5 đã được thiết kế và hoạt động trên
cơ sở dữ liệu lớn và sự kết hợp đổi mới như là boosting Kết quả tạo ra bởi See5 và C5.0 là tương tự nhau See5 và C5.0 là những công cụ khai phá dữ liệu phức tạp cho những mẫu khai phá dữ liệu mà phác họa ra những loại tập hợp chúng thành những đối tượng phân loại và sử dụng chúng để tiên đoán
C5.0 kết hợp một số cơ sở mới như chi phí phân loại sai khác Trong C4.5, tất cả các lỗi đều được đối xử bình đẳng, nhưng trong các ứng dụng thực tiễn một số
Trang 28lỗi phân loại nghiêm trọng hơn các lỗi khác C5.0 cho phép xác định một chi phí riêng cho mỗi cặp lớp dự đoán/thực tế; nếu lựa chọn này được sử dụng, C5.0 sau đó
sẽ xây dựng các phân loại để giảm thiểu các chi phí phân loại sai mong đợi hơn là tỷ
lệ lỗi C5.0 cố gắng để giảm thiểu tỷ lệ lỗi tiên đoán
C5.0 có một số kiểu dữ liệu mới ngoài những tính năng có trong C4.5, bao
gồm: ngày tháng, thời gian, dấu thời gian, các thuộc tính rời rạc được yêu cầu và nhãn trường hợp Ngoài các giá trị còn thiếu, C5.0 cho phép lưu ý các giá
trị không áp dụng Hơn nữa, C5.0 cung cấp cơ sở để xác định các thuộc tính mới như các thuộc tính của các thuộc tính khác
Một số ứng dụng khai thác dữ liệu gần đây có đặc điểm rất cao, với hàng trăm hoặc thậm chí hàng nghìn thuộc tính C5.0 có thể tự động vỗ các thuộc tính trước khi một phân loại được xây dựng, loại bỏ những người mà dường như chỉ nhỉnh có liên quan Đối với các ứng dụng có chiều cao, việc sàng lọc có thể dẫn đến phân loại nhỏ hơn và độ chính xác cao hơn dự đoán, và thường có thể làm giảm thời gian cần thiết để tạo ra các bộ luật
Luận văn không chọn thuật toán C5.0; lý do: số lượng các bản ghi không lớn; các giá trị dạng thời gian không sử dụng; không có giá trị thiếu Chúng ta sử dụng C4.5 đơn giản hơn mà không mất ý nghĩa phân lớp theo cây quyết định mà vẫn đảm bảo các yêu cầu đặt ra
2.1.4 C4.5 dùng Gain-entropy làm độ đo lựa chọn thuộc tính tốt nhất
Phần lớn các hệ thống học máy đều cố gắng để tạo ra 1 cây càng nhỏ càng tốt, vì những cây nhỏ hơn thì dễ hiểu hơn và dễ đạt được độ chính xác dự đoán cao hơn Do không thể đảm bảo được sự cực tiểu của cây quyết định, C4.5 dựa vào nghiên cứu tối ưu hóa, và sự lựa chọn cách phân chia mà có độ đo lựa chọn thuộc tính đạt giá trị cực đại
Hai độ đo được sử dụng trong C4.5 là Information Gain và Gain Ratio
Độ lợi thông tin của một thuộc tính được tính bằng: độ đo hỗn loạn trước khi phân hoạch trừ cho sau khi phân hoạch
Giả sử gọi S là tập huấn luyện
Trang 29C i,S : tập các mẫu của S thuộc lớp C i với i = {1,…,k}
|Ci, S|,|S|: là số lượng mẫu của tập C i,S và S tương ứng
P i là xác xuất mà phần tử trong dữ liệu S thuộc lớp C i (i=1, k), đo độ hỗn
loạn thông tin trước khi phân hoạch được tính theo công thức (2.1):
( ) = − ( ) (2.1)
Độ đo hỗn loạn sau khi sử dụng thuộc tính A phân hoạch dữ liệu S thành v
phần được tính như công thức (2.2):
( ) = | |
| | × ( ) (2.2)
Độ lợi thông tin (Informartion Gain) khi chọn thuộc tính A phân hoạch dữ
liệu S thành v phần được tính theo công thức (2.3):
( ) = ( ) − ( ) (2.3) Tuy nhiên, khi dữ liệu có thuộc tính có nhiều giá trị hơn các thuộc tính khác,
độ lợi thông tin tăng trên các thuộc tính có nhiều giá trị phân hoạch Để giảm bớt sự lệch này, Quinlan cũng đề nghị sử dụng tỉ số độ lợi Tỉ số độ lợi tính đến số lượng
và độ lớn của các nhánh khi chọn một thuộc tính phân hoạch, được tính bằng độ lợi thông tin chia cho thông tin của phân phối dữ liệu trên các nhánh Giả sử khi sử
dụng thuộc tính A phân hoạch dữ liệu S thành v phần, thông tin của phân phối dữ
liệu được tính như công thức (2.4):
Information Gain hay Gain ratio để xác định thuộc tính tốt nhất Trong đó Gain ratio là lựa chọn mặc định
Trang 302.1.5 Xử lý những giá trị thiếu trong C4.5
Giá trị thiếu của thuộc tính là hiện tượng phổ biến trong dữ liệu, có thể do lỗi khi nhập các bản ghi vào cơ sở dữ liệu, cũng có thể do giá trị thuộc tính đó được đánh giá là không cần thiết đối với case cụ thể
Trong quá trình xây dựng cây từ tập dữ liệu đào tạo S, B là phép thử dựa trên thuộc tính A a với các giá trị đầu ra là b 1 ,b 2 ,…,b t Tập S 0 là tập con các case trong S
mà có giá trị thuộc tính A a không biết và S i biểu diễn các case với đầu ra là b i trong
Tập con S 0 là tập con các case trong S mà có giá trị thuộc tính A a không biết
S i biễu diễn các case với đầu ra là b i trong B
Từ đó SplitInfo(S, B) cũng thay đổi như sau:
Hai thay đổi này làm giảm giá trị của phép thử liên quan đến thuộc tính có tỉ
lệ giá trị thiếu cao Nếu phép thử B được chọn, C4.5 không tạo một nhánh riêng trên cây quyết định cho S 0 Thay vào đó, thuật toán có cơ chế phân chia các case trong S 0
về các tập con S i là tập con mà có giá trị thuộc tính phép thử xác định theo trọng số
Trang 31| |
| − | (2.10)
2.1.6 Chuyển đổi từ cây quyết định sang luật
Việc chuyển đổi từ cây quyết định sang luật sản xuất (Production Rules) dạng if-then tạo ra những quy tắc phân lớp dễ hiểu, dễ áp dụng Các mô hình phân
lớp biểu diễn các khái niệm dưới dạng các luật sản xuất đã được chứng minh là hữu ích trong nhiều lĩnh vực khác nhau, với việc đòi hỏi cả về độ chính xác và tính hiểu được của mô hình phân lớp Dạng output tập luật sản xuất là sự lựa chọn “khôn ngoan” Tuy nhiên, tài nguyên tính toán dùng cho việc tạo ra tập luật từ dữ liệu đào tạo có kích thước lớn và nhiều giá trị sai là vô cùng lớn [8] Khẳng định này sẽ được chứng minh qua kết quả thực nghiệm trên mô hình phân lớp C4.5
Giai đoạn chuyển đổi từ cây quyết định sang luật gồm 4 bước:
Cắt tỉa
Luật khởi tạo ban đầu là đường đi từ gốc đến lá của cây quyết định Một
quyết định có l lá thì tương ứng tập luật sản xuất sẽ có l luật khởi tạo Từng điều
kiện trong luật được xem xét và loại bỏ nếu không ảnh hưởng tới độ chính xác của luật đó Sau đó, các luật đã được cắt tỉa được thêm vào tập luật trùng với những luật
đã có
Lựa chọn
Các luật đã cắt tỉa được nhóm lại theo giá trị phân lớp, tạo nên các tập con
chứa các luật theo lớp Sẽ có k tập luật con nếu tập huấn luyện có k giá trị phân lớp
Từng tập con trên được xem xét để chọn ra một tập con các luật mà tối ưu hóa độ chính xác dự đoán của lớp gắn với tập luật đó
Sắp xếp
Sắp xếp k tập luật đã tạo ra từ trên bước theo tần số lỗi Lớp mặc định được
tạo ra bằng cách xác định các case trong tập huấn luyện không chứa trong các luật hiện tại và chọn lớp phổ biến nhất trong các case đó làm lớp mặc định
Ước lượng, đánh giá
Trang 32Tập luật được đem ước lượng lại trên toàn bộ tập huấn luyện nhằm mục đính xác định xem có luật nào làm giảm độ chính xác của sự phân lớp Nếu có, luật đó bị loại bỏ và quá trình ước lượng được lặp đến khi không thể cải tiến thêm
2.2 Hệ thống tiêu chí đánh giá hiệu quả của thuật toán
Hiệu quả của mô hình học phân lớp có thể quan sát dựa vào dự đoán nhãn của giải thuật trên tập dữ liệu Ma trận Confusion cung cấp thông tin dự đoán nhãn
của giải thuật, phần tử [i,j] của ma trận trình bày số phần tử lớp i được giải thuật dự đoán lớp j
Bảng 2.0: Ma trận confusion
Trong đó:
Điều kiện dương (P): Số lượng các trường hợp thực sự tích cực trong dữ liệu
Điều kiện phủ định (N): Số lượng các trường hợp tiêu cực thực sự trong dữ liệu True positive (TP): Sự chính xác
Âm tính thực (TN): Sự từ chối chính xác
Dương tính giả (FP): Báo động giả, lỗi loại I
Sai âm tính (FN): Lỗi, loại II lỗi
Tỷ lệ thực dương (TPR) còn được gọi là Độ nhạy (sensitivity), thu hồi (recall)
Trang 34Để tính độ chính xác, chỉ cần tính tổng phần tử trên đường chéo [i,j] của ma trận confusion chia cho tổng phần tử Tổng số phần tử không nằm trên đường chéo
là lỗi dự đoán của giải thuật
Confusion Matrix tuy nhiên, ma trận nhầm lẫn chỉ dùng cho:
Hai lớp phân loại
Các mẫu ra và mẫu dự đoán cùng số lượng
Đối với bài toán sử dụng mạng BAM, ma trận này chưa tượng trưng Lý do:
Đặc trưng hay số mẫu vào và ra khác nhau
Không phải phân loại 2 lớp mà là nhiều lớp
Trên cơ sở ma trận nhầm lẫn ta phải xây dựng riêng ma trận riêng
2.3 Ví dụ minh họa cho thuật toán C4.5
Cho bảng CSDL dưới đây Sử dụng thuật toán C4.5 để phân lớp đối tượng
đỗ đại học hoặc trượt
Bảng 2.1: Bảng cơ sở dữ liệu dự đoán đỗ đại học
TT Tên Học lực Điều kiện KT Lớp
chọn
Học thêm
Kết quả
Ta phân lớp “+” là lớp Đỗ, lớp “-” là lớp Trượt
Trang 35- Đo độ hỗn loạn trước khi phân hoạch là:
Độ lợi thông tin tương ứng:
Gain (S,Hocluc) = Entropy(S) – Entropy(S,Hocluc) = 0,94 – 0,69 = 0,25
Tỷ suất lợi ích Gain Ratio
* Với thuộc tính Điều kiện KT:
Trang 36* Với thuộc tính Học thêm:
Values (Hocthem) = {Có, Không}
Ta thấy thuộc tính Học lực có GainRatio = 0,16 là lớn nhất nên nó được dùng làm nút để phân hoạch cây tiếp theo
Đối với nhánh Học lực = TB có Entropy = 0 nên quá trình học cây cho nhánh này dừng lại với nút lá có nhãn là “Đỗ”
Trang 37Như vậy, từ 1 nút lá này ta sẽ viết được 1 luật quyết định tương ứng:
Luật 1: IF (Hocluc = TB) THEN KQ = Đỗ
Đối với nhánh Hocluc = Giỏi, quá trình học cây được tiếp tục với tập dữ liệu con tại nhánh đó Ta có:
Trang 38* Với thuộc tính Học thêm:
Values (Hocthem) = {Co, Khong}
Vì thuộc tính Lopchon có GainRatio = 0 nên ta chọn thuộc tính này làm nút phân hoạch cây tiếp theo
Đối với nhánh Lopchon = Co có Entropy = 0 nên quá trình học cây cho nhánh này dừng lại với nút lá có nhãn là “Trượt”
Đối với nhánh Lopchon = Khong có Entropy = 0 nên quá trình học cây cho nhánh này dừng lại với nút lá có nhãn là “Đỗ”
Như vậy, từ 2 nút lá này ta sẽ viết được 2 luật quyết định tương ứng:
Luật 2: IF (Hocluc = Gioi) AND (Lopchon = Co) THEN KQ = Trượt
Luật 3: IF (Hocluc = Gioi) AND (Lopchon = Khong) THEN KQ = Đỗ
Như vậy các lá đã được gán nhãn nên quá trình phân hoạch cây sẽ dừng lại tại nhánh này
Tiếp tục phân hoạch cây tiếp theo tại nhánh Hocluc = Kha ta có: