Hình 1.1: Quá trình phân lớp dữ liệu – Xây dựng mô hình phân lớp Hay nói cách khác, xây dựng mô hình là 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
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
ỨNG DỤNG THUẬT TOÁN C4.5 ĐỂ PHÂN LỚP DỮ LIỆU CÁN BỘ KHOA CNTT TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT HÀ NỘI
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SĨ
ỨNG DỤNG THUẬT TOÁN C4.5 ĐỂ PHÂN LỚP DỮ LIỆU CÁN BỘ KHOA CNTT
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT - HÀ NỘI
Trang 3LỜI CAM ĐOAN
Tên tôi là Trần Thị Như Hoa – học viên lớp cao học Công nghệ Thông tin Khóa 2 (2014 – 2016) Viện Đại học Mở Hà Nội xin cam đoan: Luận văn thạc sỹ này là công trình nghiên cứu của bản thân dưới sự hướng dẫn của PGS TS Nguyễn Quang Hoan Các kết quả trong luận văn tốt nghiệp thạc sỹ này là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác
Hà Nội, ngày 30 tháng 11 năm 2016
Tác giả luận văn
Trần Thị Như Hoa
Trang 4LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin – 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 đỡ và động viên để em có thể hoàn thành được luận văn 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 2 đã ủ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 em xin cảm ơn những thành viên trong gia đình đã luôn động viên và giúp đỡ để em hoàn thành luận văn này
Qua một thời gian nghiên cứu em đã hoàn thành luận văn với đề tài “Ứng
dụng thuật toán C4.5 để phân lớp dữ liệu cán bộ Khoa Công nghệ Thông tin – Trường Đại học Mỏ - Địa chấ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 11 năm 2016
Tác giả
Trần Thị Như Hoa
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH vii
LỜI MỞ ĐẦU viii
CHƯƠNG 1 TỔNG QUAN VỀ 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 Các vấn đề liên quan đến phân lớp dữ liệu 5
1.1.3 Một số phương pháp đánh giá độ chính xác của mô hình phân lớp 7
1.2 Cây quyết định ứng dụng trong phân lớp dữ liệu 8
1.2.1 Giới thiệu về mô hình cây quyết định 8
1.2.2 Quá trình xây dựng cây quyết định 9
1.3 Đánh giá cây quyết định trong phân lớp dữ liệu 10
1.3.1 Ưu điểm của cây quyết định 10
1.3.2 Điểm yếu của cây quyết định 12
1.4 Một số thuật toán phổ biến trong mô hình phân lớp 13
1.5 Kết luận chương 1 13
CHƯƠNG 2 THUẬT TOÁN C4.5 VÀ THUẬT TOÁN BAYES 14
2.1 Thuật toán cây quyết định C4.5 14
2.1.1 Thuật toán C4.5 chọn thuộc tính tốt nhất 15
2.1.2 Thuật toán C4.5 làm việc với dữ liệu bị thiếu 16
2.1.3 Tránh quá vừa dữ liệu 17
2.1.4 Chuyển đổi từ cây quyết định sang luật 18
2.2 Ví dụ minh họa thuật toán C4.5 19
2.3 Thuật toán Bayes thơ ngây 26
2.3.1 Ý tưởng thuật toán Bayes 27
Trang 62.4 Ví dụ minh họa thuật tốn Bayes 28
2.5 Kết luận chương 2 29
CHƯƠNG 3 PHÂN LỚP CÁN BỘ SỬ DỤNG 31
THUẬT TỐN C4.5 VÀ THUẬT TỐN BAYES 31
3.1 Giới thiệu bài tốn 31
3.2 Thu thập và tiền xử lý dữ liệu 31
3.2.1 Thu thập dữ liệu 31
3.2.2 Phân tích và xử lý dữ liệu 32
3.3 Phân loại cán bộ sử dụng thuật tốn C4.5 36
3.3.1 Triển khai thuật tốn C4.5 36
3.3.2 Quá trình xây dựng cây quyết định 37
3.4 Phân loại cán bộ sử dụng thuật tốn Bayes thơ ngây 57
3.5 Giới thiệu một số cơng cụ sử dụng trong khai phá dữ liệu 62
3.5.1 Giới thiệu chung 62
3.5.2 Ngơn ngữ lập trình R 63
3.6 Thử nghiệm ứng dụng 65
3.6.1 Thử nghiệm 1 – Thuật tốn cây quyết định C4.5 trong R 65
3.6.2 Kết quả thử nghiệm 1 67
3.6.3 Đánh giá độ đo hiệu quả của thử nghiệm 1 68
3.6.4 Thử nghiệm 2 -Thuật tốn Nạve Bayes trong R 69
3.6.5 Kết quả thử nghiệm 2 71
3.6.6 Đánh giá độ đo hiệu quả của thử nghiệm 2 72
3.7 Vai trị của C4.5 và Bayes trong bài tốn phân lớp cán bộ 72
3.8 Kết luận chương 3 73
KẾT LUẬN 74
HƯỚNG PHÁT TRIỂN 75
TÀI LIỆU THAM KHẢO 76
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
IG Information Gain Độ lợi thông tin
SplitInfo Split Information Thông tin của phân phối dữ liệu
Trang 8DANH MỤC CÁC BẢNG
Bảng 2.1: Tập dữ liệu học weather 19
Bảng 2.2: Dữ liệu của mẫu tin cần dự báo 28
Bảng 2.3: Bảng xác suất của tập dữ liệu weather 28
Bảng 3.1: Bảng các thuộc tính của tập dữ liệu cán bộ 32
Bảng 3.2: Dữ liệu mẫu huấn luyện cán bộ khoa CNTT (S) 34
Bảng 3.3: Bảng so sánh kết quả GainRatio trong tập thuộc tính S 40
Bảng 3.4: Bảng mẫu huấn luyện S1 (DV = Co) 41
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) 45
Bảng 3.7: Bảng so sánh kết quả GainRatio trong tập thuộc tính S2 48
Bảng 3.8: Bảng mẫu huấn luyện S3 (TDCM=Ths) 49
Bảng 3.9: Bảng so sánh kết quả GainRatio trong tập thuộc tính S3 51
Bảng 3.10: Bảng mẫu huấn luyện S3.1 (TDCM=TS) 52
Bảng 3.11: Bảng so sánh kết quả GainRatio trong tập thuộc tính S3.1 53
Bảng 3.12:Bảng mẫu huấn luyện S4 (GT = Nu) 54
Bảng 3.13: Bảng các tập luật rút ra từ cây quyết định C4.5 56
Bảng 3.14: Bảng xác suất của tập dữ liệu cán bộ 58
Bảng 3.15: Bảng dữ liệu của các mẫu tin cần dự báo 58
Bảng 3.16: Bảng dữ liệu của các mẫu tin đã được gán nhãn 61
Bảng 3.17: Đoạn mã minh họa giải thuật C4.5 66
Bảng 3.18: Đoạn mã minh họa thuật toán Bayes thơ ngây 70
Trang 9DANH MỤC CÁC HÌNH
Hình 1.1: Quá trình phân lớp dữ liệu – Xây dựng mô hình phân lớp 2
Hình 1.2: Quá trình phân lớp dữ liệu – phân lớp dữ liệu mới 4
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 7
Hình 1.4: Mô tả chung về cây quyết định 10
Hình 2.1: Cây quyết định cho tập dữ liệu weather 26
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 45
Hình 3.3: Cây quyết định cấp 3.1 49
Hình 3.4: Cây quyết định cấp 4 51
Hình 3.5: Cây quyết định cấp 3.2 54
Hình 3.6: Cây quyết định hoàn chỉnh 56
Hình 3.7: Giao diện lập trình của ngôn ngữ R 65
Hình 3.8: Cây quyết định sử dụng thuật toán C4.5 trong R 68
Trang 10Cô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, 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 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 kỹ thuật phân lớp đã được đề xuất như: Phân lớp cây quyết định (Decision tree classification), phân lớp Bayesian (Bayesian classifier), phân lớp K-láng giềng (K-nearest neighbor classifier), mạng nơron, phân tích thống kê Trong các kỹ thuật đó, cây quyết định được coi là công cụ mạnh, phổ biến và đặc biệt thích hợp cho khai phá dữ liệu Trong các mô hình phân lớp, thuật toán phân lớp là nhân tố chủ đạo Do vậy cần xây dựng những thuật toán có độ chính xác cao, thực thi nhanh đi kèm với khả năng mở rộng được để có thể thao tác với những tập dữ liệu ngày càng lớn
Với nhu cầu đặt ra, luận văn đã nghiên cứu tổng quan về công nghệ phân lớp dữ liệu nói chung và phân lớp dữ liệu dựa trên thuật toán C4.5 và thuật toán Bayes nói riêng Việc phân tích đánh giá thuật toán có giá trị khoa học và thực tiễn Tìm hiểu các thuật toán giúp chúng ta tiếp thu và có thể phát triển về mặt tư tưởng, cũng như kỹ thuật của một công nghệ tiên tiến Từ đó có thể triển khai cài đặt và thử nghiệm các mô hình phân lớp dữ liệu thực tế Trong luận văn, tác giả
đã sử dụng ngôn ngữ lập trình R để minh họa cho bài toán phân lớp cán bộ dựa
Trang 11trên thuật toán C4.5 và thuật toán Bayes thơ ngây Nội dung chính của luận văn gồm có 3 chương:
Chương 1 Giới thiệu khái quát về phân lớp dữ liệu và đưa ra một số vấn
đề liên quan đến phân lớp dữ liệu Xây dựng, đánh giá và phân tích mô hình cây quyết định và một số thuật toán giải thuật phổ biến trong mô hình phân lớp dữ liệu hiện nay
Chương 2 Chương này trình bày 2 thuật toán dùng cho phân lớp dữ liệu
đó là giải thuật C4.5 và giải thuật Bayes thơ ngây, các bước thực hiện và một số
ví dụ minh họa cho thuật toán
Chương 3 Phân lớp dữ liệu cán bộ sử dụng thuật toán C4.5 và Bayes thơ
ngây Cài đặt thử nghiệm bài toán sử dụng ngôn ngữ lập trình R
Trang 12CHƯƠNG 1 TỔNG QUAN VỀ 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
Ngày nay, phân lớp dữ liệu (classification) là một trong những hướng nghiên cứu chính của khai phá dữ liệu 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 và dự đoán là hai dạng của phân tích dữ liệu nhằm trích rút
ra một mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu tương lai 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ụ mô hình dự báo thời tiết có thể cho biết thời tiết ngày mai là mưa, hay nắng dựa vào những thông số về độ
ẩm, sức gió, nhiệt độ v.v của ngày hôm nay và các ngày trước đó Hay 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 Phần lớn các thuật toán ra đời đều sử dụng cơ chế dữ liệu cư trú trong bộ nhớ (memory resident), thường thao tác với lượng dữ liệu nhỏ Một số thuật toán ra đời sau này
đã sử dụng kỹ thuật cư trú trên đĩa cải thiện đáng kể khả năng mở rộng của thuật toán với những tập dữ liệu lớn lên tới hàng tỷ bản ghi
Trang 13Quá trình phân lớp dữ liệu gồm gồm hai bước [11]:
Bước 1: Xây dựng mô hình phân lớp
Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay các khái niệm định trước Đầu vào của quá trình này là một tập dữ liệu có cấu trúc được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của
các thuộc tính đó Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data
tuple), có thể là các mẫu (sample), ví dụ (example), đối tượng (objiect), bản ghi (record) hay trường hợp (case) Khóa luận sử dụng các thuật ngữ này với nghĩa
tương đương Trong tập dữ liệu này, mỗi phần tử dữ liệu được giả sử thuộc về
một lớp định trước, lớp ở đây là giá trị của một thuộc tính được chọn làm thuộc
tính gán nhãn lớp hay thuộc tính phân lớp (class lable attribute) Đầu ra của
bước này thường là các quy tắc phân lớp dưới dạng luật if – then, cây quyết định, công thức logic hay mạng nơron Quá trình này được mô tả như trong hình 1.1
Hình 1.1: Quá trình phân lớp dữ liệu – Xây dựng mô hình phân lớp
Hay nói cách khác, xây dựng mô hình là 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
Classifier (Model)
IF Tuổi < 31 AND IF Loại xe = Sports THEN Độ nguy hiểm = Cao
Classification Algorithms Training Data
Tuổi Loại xe Độ nguy hiểm
Trang 14Mô 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
Bước 2: Sử dụng mô hình phân lớp (classification)
Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu
mới hay phân lớp các đối tượng chưa biết Trước tiên độ chính xác mang tính
chất dự đoán của mô hình phân lớp vừa tạo ra được ước lượng Holdout là một
kỹ thuật đơn giản để ước lượng độ chính xác đó Kỹ thuật này sử dụng một tập
dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp Các mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo Độ chính xác của
mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các mẫu trong tập dữ
liệu kiểm tra được mô hình phân lớp đúng (so với thực tế) Nếu độ chính xác của
mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu Quá vừa dữ liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng
mô hình dữ phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của tập dữ liệu đó Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào tạo Nếu độ chính xác của mô hình là chấp nhận được, thì
mô hình được sử dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu
mà giá trị của thuộc tính phân lớp là chưa biết
Trang 15Hình 1.2: Quá trình phân lớp dữ liệu – phân lớp dữ liệu mới
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
Phân lớp là một hình thức 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 v.v.) đ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
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 chú trọng và phát triển [11]
Có thể liệt kê ra đây các kỹ thuật phân lớp đã được sử dụng trong những
Độ nguy hiểm?
Trang 16+ Phân lớp cây quyết định (Decision tree classification)
+ Bộ phân lớp Bayesian (Bayesian classifier)
+ Mô hình phân lớp K-láng giềng (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)
1.1.2 Các vấn đề liên quan đến phân lớp dữ liệu
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
Trang 17tiề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
nhậ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
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 của 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 nhiễu 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
Trang 18Trong 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 [11]
1.1.3 Một số phương pháp đánh giá độ chính xác của 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
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 [11]
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 S1,S2,…,Sk Quá trình phân lớp và test được thực hiện k lần Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp thành tập dữ liệu đào tạo Có nghĩa là đầu tiên việc phân lớp được thực hiện trên các tập S2,
S3,…Sk sau đó test trên tập S1, tiếp tục quá trình phân lớp được thực hiện trên tập
S2,S3,S4,…,Sk sau đó test trên tập S2 và cứ tiếp tục Độ chính xác là toàn bộ số phân lớp đúng từ k lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu
Data
Training Data
Testing Data
Classifier
Ước lượng
độ chính xác
Trang 191.2 Cây quyết định ứng dụng trong phân lớp dữ liệu
Cây quyết định được biết đến như là giải thuật hàng đầu trong nhóm 10 giải thuật quan trọng của khai mỏ dữ liệu [16] Trong suốt nhiều năm qua, cộng đồng khai mỏ dữ liệu đã có những thống kê về các phương pháp sử dụng nhiều nhất và thành công trong lĩnh vực khám phá tri thức và khai mỏ dữ liệu Kết quả cho thấy rằng giải thuật cây quyết định vẫn luôn đứng đầu trong bình chọn bởi vì tính hiệu quả của nó Khác với các mô hình học khác như mạng nowrron hay máy học vecto hỗ trợ, mô hình học của cây quyết định đơn giản, nhanh, cũng cho kết quả tốt, điều đặc biệt quan trọng là kết quả sinh ra của cây quyết định là tập hợp các luật đơn giản dễ diễn dịch Đây là tính năng đáp ứng được yêu cầu cần thiết của khai mỏ dữ liệu Giải thuật cây quyết định có thể tìm thấy trong hầu hết các ứng dụng như: phân lớp dữ liệu văn bản, phân lớp thư rác, nhận dạng tấn công mạng và cả vấn đề hồi quy
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, phổ biến và đặc biệt thích hợp cho khai phá dữ liệu nói chung và phân lớp dữ liệu nói riêng [9] 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ành được chuyển đổi sang các câu lệnh SQL để có thể được sử dụng để 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 sự tương tự và đôi khi là chính xác hơn so với các phương pháp phân lớp khác [10]
1.2.1 Giới thiệu về mô hình cây quyết định
Phương pháp học cây quyết định thuộc loại học có giám sát, được sử dụng cho việc học các hàm phân loại từ dữ liệu huấn luyện, trong đó cây quyết định được sử dụng làm biểu diễn xấp xỉ của hàm phân loại, tức là hàm có đầu ra là các giá trị rời rạc
Trang 20Cây quyết định là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật Cây quyết định nhận đầu vào là một bộ giá trị thuộc tính mô tả một đối tượng hay một tình huống và trả về một giá trị rời rạc Mỗi bộ thuộc tính đầu vào được gọi là một mẫu hay một ví dụ, đầu ra gọi là loại hay nhãn phân loại Các thuộc tính đầu vào có thể nhận các kiểu dữ liệu khác nhau (Nhị phân, Định tính, Các giá trị số, Ordinal) trong khi đó thuộc tính đầu ra phải có kiểu dữ liệu là Binary hoặc Ordinal
Cây quyết định được biểu diễn dưới dạng một cấu trúc cây Mỗi nút trung gian, tức là nút không phải nút lá, tương ứng với phép kiểm tra một thuộc tính Mỗi nhánh phía dưới của nút đó tương ứng với một giá trị của thuộc tính hay một kết quả của phép thử Khác với nút trung gian, nút lá không chứa thuộc tính mà chứa nhãn phân loại
Tóm lại, khi cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết
1.2.2 Quá trình 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 mục đích đơ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 (noise) 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 biệ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 [9][5]
Trang 21Do 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 thêm 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 nút con
+ Nếu các ví dụ được phân lớp rõ ràng thì dừng
+ Ngược lại : lặp lại bước 1 tới bước 4 cho từng nút con
Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây, như mô tả trong hình 1.5:
Hình 1.4: Mô tả chung về cây quyết định
Trong cây quyết định:
- Nút Gốc: là nút trên cùng của cây
- Nút trong: biểu diễn quá trình 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)
- Nút 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 đó
1.3 Đánh giá cây quyết định trong phân lớp dữ liệu
1.3.1 Ưu điểm của cây quyết định
Nút lá Nút lá
Các nhánh
Nút gốc
Nút trong Nút trong
Trang 22Câ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 sự giải thích cho bất cứ một sự phân lớp nào đều tương đối minh bạch
Khả năng thực thi những 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à lựa chọn hoàn hảo cho những lĩnh vực thực sự là các quy tắc Rất nhiề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 do khá phức tạp và tối nghĩa bởi những dữ liệu lỗi 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 khi phân lớp
Mặc dù như chúng ta đã biết, cây quyết định có thể chứa 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 thường tạo ra những cây với số phân nhánh thấp và các test đơn giản tại từng node Những test đ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 thi trên máy tính, những test này chuyển thành các toán 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 í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 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ị đã
Trang 23sắp xếp của thuộc tính đó Sauk hi chọn được ngưỡng tốt nhất, tập dữ liệu phân chia theo test nhị phân của ngưỡng đó
Thể hiện rõ ràng 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 đưa ra thuộc tính mà phân chia tốt nhất 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.3.2 Điểm yếu của cây quyết định
Dù có những sức mạnh nổi bật trên, cây quyết định vẫn không tránh khỏi
có những điểm yếu Đó là cây quyết định không thích hợp lắm với những bài toán với 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 xuấ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 cài đặt ra sự 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 nhỏ Điều này xảy ra càng nhanh hơn với cây mà có nhiều tầng hay có nhiều nhánh trên một node
Mất nhiều thời gian tính toán để đà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 đến lá cuối cùng Tại 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 them thao tác sắ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 ứng cử phải được tạo ra và so sánh
Trang 241.4 Một số thuật toán phổ biến trong mô hình phân lớp
Ngày nay, các thuật toán khai mỏ dữ liệu được sử dụng rất nhiều trong cộng đồng khám phá tri thức và đặc biết là một số thuật toán đã được sử dụng khá phổ biến trong mô hình phân lớp dữ liệu như:
+ Thuật toán Cây quyết định (decision tree) cũng là mô hình đơn giản, nhanh, cũng cho kết quả tốt, điều đặc biết quan trọng cảu cây quyết định là kết quả sinh ra là tập hợp các luật đơn giản dễ diễn dịch Ngoài ra, cây quyết định có thể xử lý được cả kiểu dữ liệu rời rạc và liên tục Nó có thể tìm thấy trong hầu hết các ứng dụng khai mỏ dữ liệu
+ Thuật toán Boosting là phương pháp áp dụng một tập các mô hình phân lớp yếu để nâng cao hiệu quả của các mô hình phân lớp này Ý tưởng chính của
giải thuật này là xây dựng tuần tự T mô hình và lặp lại quá trình học của mô hình phân lớp yếu T lần Sau mỗi bước lặp, mô hình phân lớp yếu (ví dụ như Bayes
thơ ngây hay cây quyết định) sẽ tập trung học trên các phần tử bị phân lớp sai bởi các lần trước
Thuật toán Bagging được Breiman đề xuất trong những năm 1990 nhằm giảm lỗi variance (phương sai) của giải thuật học nhưng không làm tăng lỗi Bias quá nhiều Trong thực tế nó cải thiện rất tốt mô hình đơn không ổn định như cây quyết định và thường có thành phần lỗi varaince cao
1.5 Kết luận chương 1
Từ các phân tích trên luận văn chọn thuật toán C4.5 để phân lớp dữ liệu Thuật toán này cho phép hiệu chỉnh một số dữ liệu (Vì một vài lý do nào đó) không thu thập được, phù hợp với bài toán thực tế Sau khi phân lớp, tác giả có thể dùng giải thuật dự đoán các tình huống có thể xảy ra Vì vậy, chương tiếp theo tác giả nghiên cứu hai giải thuật này
Trang 25CHƯƠNG 2 THUẬT TOÁN C4.5 VÀ THUẬT TOÁN BAYES
2.1 Thuật toán cây quyết định C4.5
Giới thiệu thuận toán
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 cá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 [14]
Thuật toán C4.5 là thuật toán cải tiến từ thuật toán ID3 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 nút 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
Trình bày thuật toán
Cụ thể ta thực hiện theo các bước sau với tập dữ liệu S:
1 Tính toán tần suất các giá trị trong các lớp của S
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 ra một nút quyết định N
3 Với mỗi thuộc tính A tính Gain(A)
Trang 264 Tại nút N, thực hiện việc kiểm tra để chọn ra thuộc tính Ntest 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 Si được tách ra từ tập S (nếu Ntest là thuộc tính liên tục thì tách theo ngưỡng, nếu Ntest 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, nếu Si rỗng thì gán nút con này của nút N (là nút lá), 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à Si
2.1.1 Thuật toán C4.5 chọn thuộc tính tốt nhất
Quá trình xây dựng cây chủ yếu phụ thuộc vào việc chọn thuộc tính tốt nhất để phân hoạch dữ liệu Một thuộc tính được cho là tốt được sử dụng để phân hoạch dữ liệu sao cho kết quả thu được cây nhỏ nhất Việc lựa chọn này dựa vào việc chọn thuộc tính sinh ra các nút thuần khiết nhất Hiện nay có giải thuật học cây quyết định tiêu biểu là C4.5 của Quinlan [12] Để đánh giá và chọn thuộc tính khi phân hoạch dữ liệu, Quinlan đề nghị sử dụng độ lợi thông tin (chọn thuộc tính có độ lợi thông tin lớn nhất) và tỉ số độ lợi dựa trên hàm entropy của Shannon [15]
Giả sử gọi S là tập huấn luyện
Ci, S: tập các mẫu của S thuộc lớp Ci với i = {1, ,k}
|Ci, S|,|S|: là số lượng mẫu của tập Ci,S và S tương ứng
P i là xác xuất mà phần tử trong dữ liệu S thuộc về lớp Ci
Độ 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ử 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 hay còn gọi là thông tin kỳ vọng để phân lớp một mẫu trong S được tính theo công thức (2.1):
( ) = − ( ) (2.1)
Trang 27Trong đó, Pi = |Ci,S|/|S|
Độ đ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, tiêu chuẩn (2.3) có một khuyết điểm là không chấp nhận các thuộc tính đa trị, 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):
Trong đó, giá trị SplitInfo là đại lượng đánh giá thông tin tiềm năng thu
thập được khi phân chia tập S thành v phần
GainRatio là tiêu chuẩn để đánh giá việc lựa chọn thuộc tính phân loại
2.1.2 Thuật toán C4.5 làm việc với dữ liệu bị thiếu
Dữ liệu thiếu là giá trị của thuộc tính không xuất hiện trong một vài trường hợp có thể do lỗi trong quá trình nhập bản ghi vào cơ sở dữ liệu hoặc giá
trị của thuộc tính đó được đánh giá là không cần thiết trong những trường hợp đó
Trang 28Trong quá trình xây d
thuộc tính A a với các giá trị đầu ra l
được lớp nào từ các case trong
Tập con S 0 là tập con các case trong
S i biễu diễn các case với đầu ra l
Từ đó SplitInfo(S, B)
Hai thay đổi này làm gi
giá trị thiếu cao Nếu test
quyết định cho S 0 Thay vào đó, thu
Trong quá trình xây dựng cây từ tập dữ liệu đào tạo S, B
ớ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
ị 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
ức tính độ đo thông tin và độ lợi thông tin cũng thay đổi theo
độ lợi thông tin của test B giảm vì chúng ta không phân
ừ các case trong S 0 và được tính theo công thức 2
ập con các case trong S mà có giá trị thuộc tính A
ễu diễn các case với đầu ra là b i trong B
(S, B) cũng thay đổi như công thức (2.9):
này làm giảm giá trị của test liên quan đến thuộc tính có tỉ lệ
ếu test B được chọn, C4.5 không tạo một nhá
Thay vào đó, thuật toán có cơ chế phân chia các
ập con mà có giá trị thuộc tính test xác định theo tr
S, B là test dựa trên
ập con các case trong
ễn các case với đầu ra là b i
ộ lợi thông tin cũng thay đổi theo
ợc chọn, C4.5 không tạo một nhánh riêng trên cây
ế phân chia các case trong S 0
ị thuộc tính test xác định theo trọng số
(2.10)
ột khó khăn đáng kể đối với phân lớp bằng cây
à hiện tượng: nếu
Trang 29không có các case xung đột (là những case mà giá trị cho mọi thuộc tính là giống nhau nhưng giá trị của lớp lại khác nhau) thì cây quyết định sẽ phân lớp chính xác toàn bộ các case trong tập dữ liệu đào tạo Đôi khi dữ liệu đào tạo lại chứa những đặc tính cụ thể, nên khi áp dụng cây quyết định đó cho những tập dữ liệu khác thì độ chính xác không còn cao như trước
Có một số phương pháp tránh “quá vừa” dữ liệu trong cây quyết định: + Dừng phát triển cây sớm hơn bình thường trước khi đạt đến đ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 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ế, vì nó cho phép các tương tác tiềm năng giữa các thuộc tính được khám phá trước khi quyết định xem kết quả nào đáng giữ lại C4.5 sử dụng kỹ thuật thứ hai để tránh “quá vừa” dữ liệu
2.1.4 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 [13] 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
Trang 30củ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á
Tậ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 cho đến khi không thể cải tiến thêm
2.2 Ví dụ minh họa thuật toán C4.5
Ta lấy ví dụ đối với bài toán phân chia ngày phù hợp hay không phù hợp cho việc chơi tennis theo điều kiện thời tiết như bảng 2.1:
Bảng 2.1: Tập dữ liệu học weather
D7 Overcast Cool Normal True Yes
D13 Overcast Hot Normal False Yes
Trang 31D14 Rainy Mild High True No
Từ tập dữ liệu weather trong bảng 2.1, áp dụng thuật toán C4.5 để xây dựng mô hình cây quyết định có chơi hay không tennis
Có các đối tượng {D1….,D14} được đưa vào và 4 thuộc tính [Outlook, Temp, Humidity, Windy].
Với thuộc tính Outlook
Values (Outlook) = {Sunny, Overcast, Rainy}
= 1,57
0,251,57= 0,16
Tương tự, với các thuộc tính Temp, Humidity và Windy ta có:
Thuộc tính Temp
Values (Temp) = {Hot,Mild, Cool}
Trang 33Ta thấy thuộc tính Outlook 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 Outlook=Overcast 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à “Yes”
Như 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 (Outlook = Overcast) THEN Play = Yes
Đối với nhánh Outlook=Sunny, 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ó:
Thuộc tính Humidity
Values (Humidity) = {High, Normal}
Trang 345× 1 +
3
5× 0,91 = 0,94 Gain( , Windy)=Entropy( )–Entropy( , )=0,97–0,94=0,03
Vì thuộc tính Humidity có GainRatio=1 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 Humidity=High 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à “No”
Đối với nhánh Humidity=Normal 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à “Yes”
Trang 35Như 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 (Outlook = Sunny) AND (Humidity=High) THEN Play=No
Luật 3: IF (Outlook = Sunny) AND (Humidity=Normal) THEN Play=Yes
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 Outlook=Rainy ta có:
= 0,97–0,95 = 0,02
, = −3× log 3−2× log 2= 0,97
Trang 36, = ( , )
0,970,97= 0,02
Như vậy ta chọn Windy có tỷ số độ lợi lớn nhất với GainRatio=1 làm nút
phân hoạch cây tiếp theo
Đối với nhánh Windy=True 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à “No”
Đối với nhánh Windy=False 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à “Yes”
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 4: IF (Outlook = Rainy) AND (Windy=True) THEN Play=No
Luật 5: IF (Outlook = Rainy) AND (Windy=False) THEN Play=Yes
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 Như vậy đã kết thúc quá trình xây dựng cây, cuối cùng ta có được cây quyết định hoàn chỉnh như hình 2.1:
Trang 37Hình 2.1: Cây quyết định cho tập dữ liệu weather
Mô hình cây quyết định được xây dựng từ việc học trên tập dữ liệu weather để đưa ra quy luật có chơi tennis hay không Với mô hình cây quyết định hình 2.1 ta nhận thấy cây có 5 nút lá tương ứng với 5 luật quyết định:
Luật 1: IF (Outlook = Overcast) THEN Play = Yes
Luật 2: IF (Outlook = Sunny) AND (Humidity=High) THEN Play=No
Luật 3: IF (Outlook = Sunny) AND (Humidity=Normal) THEN Play=Yes
Luật 4: IF (Outlook = Rainy) AND (Windy=True) THEN Play=No
Luật 5: IF (Outlook = Rainy) AND (Windy=False) THEN Play=Yes
-Với các dữ liệu được đưa vào từ tập dữ liệu học weather, ta có kết quả của dữ liệu quan sát được đưa ra:
Những đối tượng chơi tennis là: {D3,D4,D5,D7,D9,D10,D11,D12, D13} Những đối tượng không chơi tennis là: {D1,D2,D6,D8,D14}
2.3 Thuật toán Bayes thơ ngây
Phương pháp Bayes thơ ngây được đề nghị đầu tiên bởi Good [8] trong những năm 1965, là mô hình xác suất được sử dụng phổ biến trong cộng đồng khai mỏ dữ liệu Giải thuật này cũng đơn giản, chạy nhanh và cho kết quả tương đối tốt, dễ hiểu, thành công trong các ứng dụng phân loại văn bản, lọc thư rác hiệu quả so với các giải thuật học khác Nó được góp mặt vào nhóm 10 giải thuật quan trọng cho khai mỏ dữ liệu [16]
True False
Overcast Rainy
Outlook
Normal High
No
Trang 382.3.1 Ý tưởng thuật toán Bayes
Thuật toán Bayes thơ ngây dựa chủ yếu vào định lý xác suất của Bayes, với giả sử là: các thuộc tính (biến, chiều) độc lập nhau và độ quan trọng của các thuộc tính bằng nhau Mặc dù thuật toán Bayes thơ ngây giả thiết các thuộc tính độc lập không bao giờ đúng với dữ liệu nhưng trong thực tế thì Bayes lại cho kết quả khá tốt [4]
2.3.2 Các bước thực hiện thuật toán Bayes
Từ tập dữ liệu mẫu huấn luyện theo mô hình E→H, trong đó E là các tín hiệu đầu vào, còn H là các tín hiệu đầu ra Dựa trên các thuộc tính đầu vào E
={E1,E2…,En} chúng ta xây dựng mô hình quyết định xem gán mẫu đó thuộc lớp nào, tức là học mô hình dự đoán lớp H(Yes|No) Sau khi huấn luyện xong, bộ
phân loại cần dự đoán nhãn cho mẫu mới x
Mô hình dự báo Bayes dựa trên định lý xác suất Bayes như sau:
[ | ] = [ | ] [ ]
[ ] (2.8)
Trong đó mẫu tin E = [E 1, E 2 , …,E n ] có n giá trị thuộc tính được biết như
là giá trị dữ liệu cần dự báo và H chính là lớp “nhãn” dự báo
Với giả thiết là các thuộc tính độc lập nhau, nên cách dự báo trong mô hình Bayes thơ ngây được tính như (2.9):
[ | ] = [ | ] [ | ] … [ | ] [ ]
[ ] (2.9)
Các bước thực hiện giải thuật Bayes
Bước 1: Từ tập dữ liệu mẫu huấn luyện, chúng ta dễ dàng tính được xác suất của
Trang 39tính không xuất hiện trong tất cả các lớp (xác suất bằng 0), chúng ta có thể áp
dụng ước lượng Laplace để tránh trường hợp xác suất bằng 0 Giả sử µ là hằng số dương và pi là các hệ số dương mà ở đó Σ p i = 1 Công thức ước lượng xác suất cộng thêm cho tử số một giá trị là pi và mẫu số là µ để tính xác xuất
2.4 Ví dụ minh họa thuật toán Bayes
Tương tự như tập đữ liệu học weather bảng 2.1, chúng ta lấy bài toán phân chia ngày phù hợp hay không phù hợp cho việc chơi tennis theo điều kiện thời tiết và gán nhãn cho mẫu mới theo thuật toán Bayes thơ ngây
Bảng 2.2: Dữ liệu của mẫu tin cần dự báo
Xét ví dụ trong bảng 2.1 từ tập dữ liệu weather [6], dựa trên các thuộc tính
(Outlook, Temp, Humidity, Windy), chúng ta xây dựng mô hình quyết định xem cho chơi tennis hay không, tức là học mô hình dự đoán lớp play = yes\no? Trong
ví dụ với mẫu rtin x = [Sunny, Cool, High, True] như bảng 2.2, mô hình sẽ giúp
ra quyết định là play = yes hay no?
Từ tập dữ liệu weather, chúng ta tính được xác suất như bảng 2.3
Bảng 2.3: Bảng xác suất của tập dữ liệu weather
Giả sử, để dự báo cho mẫu tin x = [Sunny, Cool, High, True] trong bảng 2.2, chúng ta ước lượng xác suất của x là lớp play = yes và ước lượng xác suất của lớp x là lớp play = no, nếu ước lượng xác suất thuộc lớp nào lớn ta gán nhãn
Yes No Yes No Yes No Yes No Yes No
9
3 5
9
2 5
9
4 5
False 6
9
2 5
9 14
5 14 Overcast 4
9
0 5
9
2 5
9
1 5
9
3 5
9
2 5
9 1 5
Trang 40P[Yes|x] = P[Outlook = Sunny|Yes]
P[Temperature = Cool|Yes]
P[Humidity = High|Yes]
P[Windy = True|Yes]
P[Yes])/P[x]=(2/9).(3/9).(3/9).(3/9).(9/14) = 0,0053/P[x] P[No|x] = P[Outlook = Sunny|No]
P[Temperature = Cool|No]
P[Humidity = High|No]
P[Windy = True|No]
P[Yes])/P[x]=(3/5).(1/5).(4/5).(3/5).(5/14) = 0,0206/P[x]
Từ tính toán trên, ước lượng xác suất dự báo cho mẫu tin x cho lớp
play=yes nhỏ hơn ước lượng xác suất lớp play=no, Bayes thơ ngây gán nhãn x
cho lớp no
Xác suất thực của nhãn “Yes” là: 0,0053/(0,0053 + 0,0206 ) = 0,20
Xác suất thực của nhãn “No” là: 0,0206/(0,0053+ 0,0206) = 0,80
2.5 Kết luận chương 2
Thuật toán C4.5 có cơ chế sinh cây quyết định hiệu quả và chặt chẽ, có các cơ chế xử lí với giá trị lỗi, thiếu và chống quá vừa dữ liệu (là trường hợp nếu không có case xung đột thì cây quyết định sẽ phân lớp chính xác toàn bộ các case trong tập dữ liệu đào tạo nhưng đôi khi dữ liệu lại chứa những đặc tính cụ thể nên khi áp dụng cây quyết định đó vào tập dữ liệu khác thì kết quả không còn chính xác như trước) Hơn nữa, C4.5 còn có phần chuyển đổi từ cây quyết định sang luật làm tăng độ chính xác và dễ hiểu của kết quả phân lớp Do đó có thể nói thuật toán này là thuật toán hiệu quả nhất trong học cây quyết định
Còn giải thuật Bayes thơ ngây là mô hình đơn giản, dễ cài đặt, chạy nhanh, lại cho kết quả tốt trong thực tế mặc dù chịu những giả thiết về tính độc lập của các thuộc tính và độ quan trọng của các thuộc tính bằng nhau Như đã trình bày ở trên, Bayes thơ ngây không cần tính chính xác công thức xác suất mà vẫn phân lớp tốt Bayes thơ ngây cũng có thể xử lý dữ liệu nhiễu, dữ liệu cả rời