Quá trình này được mô tả như trong Hình 1.2 Hình 1.2: Quá trình phân lớp dữ liệu – Bước 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 địn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
PHÂN LỚP DỮ LIỆU SINH VIÊN ĐỂ TƯ VẤN HỌC SINH LỰA CHỌN NGÀNH TRONG TRUNG TÂM ELEARNING
NGUYỄN HỮU TOÀN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
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 28 tháng 12 năm 2018
HỌC VIÊN
Nguyễn Hữu Toàn
Trang 4LỜI CẢM ƠN
Em xin chân thành cảm ơn Trung tâm Đào tạo Elearning – Trường Đạ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 luận văn này
Em xin bày tỏ lòng biết ơn đến các thầy cô trong Khoa Đào tạo Sau Đại học - Trường Đại học Mở Hà Nội đã cung cấp những kiến thức quý báu cho tôi trong suốt quá trình học tập và nghiên cứu tại trường
Tôi cũng xin gởi lời cảm ơn đến gia đình, bạn bè và những người thân luôn quan tâm và giúp đỡ tôi trong suốt thời gian học tập và làm luận văn
Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định 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
Trang 5
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT TIẾNG ANH v
DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT vi
DANH SÁCH CÁC BẢNG vii
DANH SÁCH CÁC HÌNH VẼ viii
LỜI MỞ ĐẦU 1
CHƯƠNG 1 PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU 4
1.1 Khái quát về phân lớp dữ liệu 4
1.1.1 Phân lớp dữ liệu 4
1.1.2 Các vấn đề liên quan đến phân lớp dữ liệu 8
1.2 Phân lớp dữ liệu bằng cây quyết định 11
1.2.1 Định nghĩa 11
1.2.2 Xây dựng cây quyết định 12
1.2.3 Các đặc trưng trong phân lớp dữ liệu sử dụng cây quyết định 12
1.2.4 Đánh giá cây quyết định trong phân lớp dữ liệu 14
1.3 Phân lớp dữ liệu bằng mạng Nạve Bayes 16
1.4 Phân lớp dữ liệu bằng Neural Network 17
1.5 Tình hình nghiên cứu các giải thuật hiện nay 18
1.6 Kết luận chương 1 19
CHƯƠNG 2 GIẢI THUẬT C4.5 VÀ NAIVE BAYES 20
2.1 Giải thuật C4.5 20
2.1.1 Tổng quan về giải thuật 20
2.1.2 Sử dụng Gain – Entropy làm độ lựa chọn thuộc tính “tốt nhất” 22
2.1.3 Ví dụ minh họa cho giải thuật C4.5 23
2.1.4 Xử lý những giá trị thiếu trong C4.5 29
2.1.5 Tránh quá vừa dữ liệu 30
2.1.6 Chuyển đổi từ cây quyết định sang luật 31
2.1.7 Hiệu quả cho những tập dữ liệu vừa và nhỏ 32
Trang 62.2 Giải thuật Nạve Bayes đơn giản 32
2.2.1 Ý tưởng và mục đích của giải thuật 32
2.2.2 Thuật giải Nạve Bayes 32
2.2.3 Ví dụ minh họa cho giải thuật Nạve Bayes 34
2.3 Đánh giá độ hiệu quả của thuật giải dùng ma trận 35
2.4 Kết luận chương 2 38
CHƯƠNG 3 PHÂN LỚP DỮ LIỆU SINH VIÊN VÀ ỨNG DỤNG TƯ VẤN CHỌN NGÀNH 39
3.1 Giới thiệu bài tốn 39
3.2 Khảo sát và thu thập dữ liệu 40
3.3 Xử lý dữ liệu 45
3.3.1 Trích chọn đặc trưng 45
3.3.2 Chuyển đổi dữ liệu 45
3.3.3 Làm sạch dữ liệu 47
3.4 Phân lớp dữ liệu sinh viên sử dụng giải thuật C4.5 47
3.4.1 Áp dụng giải thuật 47
3.4.2 Chạy giải thuật C4.5 (J48) trên phần mềm Weka 48
3.5 Ứng dụng tư vấn chọn ngành sử dụng giải thuật Nạve Bayes 57
3.5.1 Tổng quan về ứng dụng 57
3.5.2 Mơ hình cấu trúc hệ thống 58
3.5.3 Phân tích và thiết kế hệ thống 58
3.6 So sánh kết quả giải thuật C4.5 và Nạve Bayes 70
3.7 Kết luận chương 3 71
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72
1 Kết quả đạt được từ nghiên cứu 72
2 Đĩng gĩp luận văn 72
3 Hạn chế 73
DANH MỤC TÀI LIỆU THAM KHẢO 74
PHỤ LỤC 76
Trang 7DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT TIẾNG ANH
ANN Artificial Neural Network Mạng nơ-rôn nhân tạo
FDR False Discovery Rate Tỷ lệ khám phá sai
FNR False Negative Rate Tỷ lệ bỏ lỡ hoặc tỷ lệ nhầm sang âm FOR False Omission Rate Tỷ lệ bỏ sót sai
ID3 Inductive Dichotomizer 3 Giải thuật quy nạp cây ID3
IG Information Gain Độ lợi thông tin
MCC Matthews Correlation Coefficient Hệ số tương quan Matthews
MLP Multilayer Perceptron Mạng nơ-rôn Perceptron
N Condition Negatives Điều kiện phủ định
NPV Negative Predictive Value Giá trị tiên đoán âm
PPV Precision or positive predictive value Giá trị tiên đoán chính xác hoặc tích cực SplitInfor 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
TNR Specificity or True Negative Rate Cụ thể hoặc tỷ lệ tiêu cực thực sự
TPR Sensitivity - Recall Tỷ lệ thực dương
Trang 8DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT
Trang 9DANH SÁCH CÁC BẢNG
Bảng 2.1 Bảng cơ sở dữ liệu dự đoán chọn ngành 23
Bảng 2.2 Bảng cơ sở dữ liệu dự đoán ngành cho học sinh 34
Bảng 2.3 Ma trận Confusion [13,14] 36
Bảng 3.1 Bảng cấu trúc dữ liệu 40
Bảng 3.2 Bảng tập luật áp dụng giải thuật C4.5 54
Bảng 3.3 Bảng thông tin dữ liệu khảo sát 59
Bảng 3.4 Bảng thông tin dữ liệu đã đƣợc làm sạch 60
Bảng 3.5 Bảng thông tin nhóm sở thích và khả năng 60
Bảng 3.6 Bảng thông tin học sinh tham gia tƣ vấn 61
Bảng 3.7 Bảng thông tin kết quả dự đoán chọn ngành 61
Bảng 3.8 Dữ liệu mẫu cần dự báo trong Bayes 66
Bảng 3.9 Kết quả so sánh thuật toán Bayes 68
Bảng 3.10 Dữ liệu mẫu cần dự báo 70
Bảng 3.11 Kết quả so sánh giải thuật Bayes và C4.5 71
Trang 10DANH SÁCH CÁC HÌNH VẼ
Hình 1.1 Bài tốn phân lớp dữ liệu 04
Hình 1.2 quá trình phân lớp dữ liệu – Bước xây dựng mơ hình phân lớp 06
Hình 1.3 Quá trình phân lớp dữ liệu – Phân lớp dữ liệu mới 07
Hình 1.4 Ước lượng độ chính xác của mơ hình phân lớp với PP holdout 10
Hình 1.5 Ví dụ về cây quyết định 11
Hình 2.1 Mã giả giải thuật C4.5 21
Hình 2.2 Ví dụ về Cây quyết định hồn chỉnh 29
Hình 3.1 Giao diện đăng ký thơng tin tham gia khảo sát 41
Hình 3.2 Giao diện nhĩm người thực tế 42
Hình 3.3 Giao diện nhĩm người thích nghiên cứu 42
Hình 3.4 Giao diện nhĩm người cĩ tính xã hội 43
Hình 3.5 Giao diện người dám nghĩ dám làm 43
Hình 3.6 Giao diện người cơng chức – văn phịng 44
Hình 3.7 Giao diện kết quả đánh giá khả năng và sở thích 44
Hình 3.8 Giao diện khảo sát điểm 45
Hình 3.9 Giao diện Weka 49
Hình 3.10 Giao diện Preprocess 49
Hình 3.11 Giao diện chọn file dữ liệu 50
Hình 3.12 Giao diện Classify 1 50
Hình 3.13 Giao diện chọn giải thuật 51
Hình 3.14 Giao diện Classify 2 51
Hình 3.15 Kết quả Classifer Output 52
Hình 3.16 Cây quyết định sử dụng giải thuật C4.5 trong Weka 53
Hình 3.17 Mơ hình cấu trúc hệ thống 58
Hình 3.18 Giao diện đăng ký thơng tin tham gia tư vấn 62
Hình 3.19 Giao diện lựa chọn khả năng và sở thích 63
Hình 3.20 Giao diện kết quả đánh giá khả năng và sở thích 64
Hình 3.21 Giao diện nhập điểm mơn học để đưa ra dự đốn 65
Hình 3.22 Chọn dữ liệu dự đốn 67
Hình 3.23 Chuyển sang Plain text 67
Hình 3.24 Kết quả dự đốn trên weka 68
Hình 3.25 Kết quả khi chạy giải thuật Nạve Bayes trên Weka 69
Trang 11LỜI MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong những thập niên gần đây, công nghệ thông tin phát triển mạnh mẽ và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực đời sống, kinh tế xã hội đã làm lượng dữ liệu được thu thập và lưu trữ ở các hệ thống thông tin tăng lên một cách nhanh chóng Trước tình hình đó việc khai thác và lọc những dữ liệu có ích từ
dữ liệu khổng lồ đó là việc cần thiết, đóng vai trò quyết định thành công trong mọi hoạt động Các dữ liệu chắt lọc sẽ giúp cải thiện hoạt động trong hiện tại, đưa ra những nhận định, giải pháp sẽ giúp nâng cao chất lượng tốt hơn
Với những lý do đó nhu cầu phát triển các kỹ thuật thu thập, lưu trữ, phân tích dữ liệu… được đặt ra và nó đòi hỏi phải xử lý thông minh và hiệu quả hơn Từ
đó đã làm phát triển kĩ thuật mới và với kĩ thuật này cho phép chúng ta khai thác tri thức hữu dụng hơn
Chúng ta có thể thấy rằng hầu hết học sinh sau khi hoàn tất chương trình lớp
12 đều lựa chọn cho mình những trường Đại học, Cao đẳng….Thông qua việc chọn trường, chọn ngành nghề sẽ giúp các em có được kiến thức,kỹ năng để đáp ứng nhu cầu trong xã hội.Việc chọn đúng ngành nghề giúp các em lựa chọn được hướng đi phù hợp với khả năng của bản thân và tránh khỏi những lựa chọn vội vàng Do rất nhiều yếu tố khách quan, chủ quan khác và đa phân các em ở các tỉnh thành, việc tiếp cận các thông tin về chọn ngành nghề cũng hạn chế và thiếu thiếu thông tin để lựa chọn và định hướng cho mình
Việc chọn đúng ngành học trong bối cảnh kinh tế ,xã hội hiện nay nhằm tránh việc có nhiều cá nhân lựa chọn sai nghề sẽ dẫn tới giảm sút chất lượng đào tạo,gây lãng phí cho công tác đào tạo và đào tạo lại
Học tập là một quá trình dài và tốn nhiều thời gian công sức cũng như tiền bạc của cá nhân vì vậy việc định hướng chọn đúng ngành nghề sẽ giúp cho các em tránh khỏi những vấn đề trên.Vì vậy việc tư vấn chọn ngành nghề phù hợp với học sinh THPT là điều cần thiết
Trang 12Với lý do trên, tơi chọn đề tài “Phân lớp dữ liệu sinh viên để tư vấn học sinh lựa chọn ngành tại Trung tâm E-learning” Đề tài thực hiện việc khai phá dữ liệu của sinh viên trong việc lựa chọn ngành học tại Trung tâm Elearning – Trường Đại học Mở Hà Nội để dự đốn ngành học cho học sinh THPT
2 Tổng quan nghiên cứu
Trong quá trình hoạt động, con người tạo ra nhiều dữ liệu nghiệp vụ Các tập
dữ liệu được tích lũy cĩ kích thước càng lớn, và cĩ thể chứa nhiều thơng tin ẩn dạng những quy luật chưa được khám phá Chính vì vậy một nhu cầu đặt ra là cần tìm cách trích rút từ tập dữ liệu đĩ các luật về phân lớp dữ liệu hay dự đốn những xu hướng dữ liệu tương lai Những quy tắc nghiệp vụ thơng minh được tạo ra sẽ phục
vụ đắc lực cho các hoạt động thực tiễn, cũng như phục vụ đắc lực cho quá trình nghiên cứu khoa học Cơng nghệ phân lớp và dự đố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, 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- hàng xĩm gần nhất (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 data mining Trong các mơ hình phân lớp, giải thuật phân lớp là nhân tố chủ đạo Do vậy cần xây dựng những giải thuật cĩ độ chính xác cao, thực thi nhanh đi kèm với khả năng mở rộng được để cĩ thao tác với những tập dữ liệu ngày càng lớn
3 Mục đích nghiên cứu
Tìm hiểu các kỹ thuật phân lớp dữ liệu, sử dụng thuật tốn C4.5 và Nạve Bayes để phân lớp dữ liệu sinh viên nhằm đưa ra dự đốn lựa chọn ngành cho học sinh
Trang 13Xây dựng ứng dụng hỗ trợ học sinh lựa chọn ngành học
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Các sinh viên đã và đang học trong Trung tâm Elearning – Trường Đại học Mở Hà Nội
Phạm vi nghiên cứu:
+ Các phương pháp phân lớp trong khai phá dữ liệu
+ Dữ liệu thực tại dựa vào kết quả khảo sát thực tế của sinh viên trong Trung tâm Elearning
+ Giới hạn thử nghiệm phân lớp theo một số đặc trưng đầu vào được cho
là cơ bản nhất , sau đó có thể mở rộng thêm các đặc trưng cũng như các bản ghi khác
+ Trong quá trình triển khai, tôi tính một số phép tính tiêu biểu sau đó ứng dụng để chạy thực nghiệm
5 Phương pháp nghiên cứu
+ Tìm hiểu và lựa chọn phương pháp KPDL thích hợp
+ Khảo sát, thu thập, phân tích, thiết kế cơ sở dữ liệu
+ Chọn công cụ tiên tiến xử lý
+ Triển khai xây dựng, mô phỏng, so sánh và đánh giá
Trang 14CHƯƠ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
Một trong các nhiệm vụ chính của khai phá dữ liệu là giải quyết bài toán phân lớp Đầu vào của bài toán phân lớp là một tập các mẫu học đã được phân lớp trước, mỗi mẫu được mô tả bằng một số thuộc tính Các thuộc tính dùng để mô tả một mẫu gồm hai loại là thuộc tính liên tục và thuộc tính rời rạc Trong số các thuộc tính rời rạc có một thuộc tính đặc biệt là phân lớp, mà các giá trị của nó được gọi là nhãn lớp Thuộc tính liên tục sẽ nhận các giá trị có thứ tự, ngược lại thuộc tính rời rạc sẽ nhận các giá trị không có thứ tự Ngoài ra, các thuộc tính có thể nhận giá trị không xác định (chẳng hạn, vì những lý do khách quan ta không thể biết được giá trị của nó) Chú ý rằng nhãn lớp của tất cả các mẫu không được phép nhận giá trị không xác định Nhiệm vụ của quá trình phân lớp là thiết lập được ánh xạ giữa giá trị của các thuộc tính với các nhãn lớp Mô hình biểu diễn quan hệ nói trên sẽ được dùng để xác định nhãn lớp cho các quan sát mới không nằm trong tập mẫu ban đầu
Hình 1.1: Bài toán 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
Trang 15mộ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 giải thuật 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ố giải thuật 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 giải thuật với những tập dữ liệu lớn lên tới hàng tỷ bản ghi
Quá trình phân lớp dữ liệu gồm hai bước [9]:
- Bước thứ nhất (learning)
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) Luận vă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
Trang 16thuộ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ận 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.2
Hình 1.2: Quá trình phân lớp dữ liệu – Bước 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át đị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
- Bước thứ hai
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 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
Trang 17đượ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
Hình 1.3: 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
Việc học trong mô hình phân lớp là 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
QD
Yes Yes Yes
No
No
Tập dữ liệu kiểm tra
Trang 18Trong mô hình phân lớp, giải thuật 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 được một giải thuật 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ủa giải thuật được đặc biệt chú trọng và phát triển [9]
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)
- Mô hình 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 giải thuật 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
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 giải thuật 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)
Trang 19- 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 Tuoi của viên chức có thể khái quát hóa thành các dãy giá trị rời rạc: 30-,
30+, 50+, 55+ 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
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 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 là 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
Trang 20Trong 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 [9]
1.1.3 Một số 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
- 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 [9]
Hình 1.4: Ướ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à 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 , S 3 ,…S k sau đó test
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 đó
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
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 xác
Trang 211.2 Phân lớp dữ liệu bằng cây quyết định
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, phổ biến và đặc biệt thích hợp cho data mining 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ể đượ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 [6]
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.5: 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)
Độ nguy hiểm = Cao
Trang 22Để 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.2.2 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 và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 giải thuật, 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:
Ngược lại: lặp lại bước 1 tới bước 4 cho từng node con
1.2.3 Các đặc trưng trong phân lớp 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
Trang 23tụ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 giải thuật phân lớp dựa trên cây quyết định
1.2.3.1 Tránh quá vừa dữ liệu
Thế nào là “quá vừa’ dữ liệu? Có thể hiểu đây 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 để test lại mô hình phân lớp thì độ chính xác sẽ rất cao, trong khi đối 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, 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.3.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
Thuộ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ụ Toan (Toán) là một thuộc tính rời rạc với tập giá trị là:
{G,K,TB}.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:
Trang 24value(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 giải thuật [9][1] Trong giải thuật 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 giải thuật C4.5
1.2.4 Đánh giá cây quyết định trong phân lớp dữ liệu
1.2.4.1 Ưu điểm của cây quyết định
- Khả năng sinh ra các quy tắc hiểu đượ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 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
Trang 25- 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 giải thuật 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 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 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 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 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 giải thuật 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.2.4.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
Trang 26- 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
- Chi phí tính tố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 tố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 (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 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 giải thuật
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
1.3 Phân lớp dữ liệu bằng mạng Nạve Bayes
Các mơ hình phân lớp dựa theo Bayes (Bayesian Classifier) là loại mơ hình
phân lớp theo lý thuyết thống kê Chúng cĩ thể dự đốn xác suất của các thành viên lớp, chẳng hạn xác suất để một bản ghi nhất định thuộc về một lớp cụ thể nào đĩ Phân lớp dựa theo Bayes căn cứ vào nền tảng lý thuyết là định lý Bayes (được đặt theo tên của Thomas Bayes, nhà tốn học Anh vào thế kỷ 18)
Thuật tốn phân lớp Nạve Bayes (NB) giả định rằng ảnh hưởng của một giá
trị thuộc tính nào đĩ trên một lớp nhất định là độc lập với các giá trị của các thuộc
tính khác Giả định này được gọi là sự độc lập theo điều kiện lớp (
Class-Conditional Independence) Người ta giả định như vậy để đơn giản hĩa khối lượng
tính tốn cần thiết, và vì lý do này, nĩ được gọi là “ngây thơ”
Chi tiết của việc phân lớp dữ liệu bằng mạng NB cĩ thể được tham khảo ở [15]
Trang 27+ Do NB giả định là các thuộc tính độc lập với nhau, nên khi các thuộc tính
có sự phụ thuộc lẫn nhau (ví dụ, trong giáo dục có một số môn học có ý nghĩa tiên quyết đối với một số môn học khác) thì phương pháp NB trở nên thiếu chính xác
+ NB không sinh ra được những mô hình phân lớp dễ hiểu đối với người dùng không chuyên về KPDL
1.4 Phân lớp dữ liệu bằng Neural Network
Lĩnh vực học bằng các mạng nơ-rôn nhân tạo (Artificial Neural Network –
ANN), lúc đầu được khởi xướng bởi các nhà tâm lý học và các nhà sinh học thần kinh
muốn tìm cách xây dựng và kiểm tra những mô hình tính toán tương tự với mạng
lưới các tế bào thần kinh (Neuron) của con người Một mạng nơ-rôn nhân tạo, hay chỉ vắn tắt là mạng nơ-rôn (NN), đôi khi còn được gọi là Multilayer Perceptron (MLP), là một tập hợp các nút xuất/nhập nối kết với nhau, trong đó mỗi đường nối
kết có một trọng số liên kết với nó Trong giai đoạn học, mạng này học bằng cách điều chỉnh các trọng số để dự đoán được nhãn lớp đúng đắn của các bản ghi nhập vào
- Ưu điểm:
+ Các mô hình học từ NN có khả năng chịu đựng đối với dữ liệu nhiễu cao cũng như khả năng phân lớp được những mẫu hình mà chúng chưa từng được huấn luyện
+ Chúng rất thích hợp đối với dữ liệu nhập và xuất có trị liên tục
+ Các thuật toán mạng nơ-rôn vốn có sẵn tính song song, có thể dùng các kỹ thuật song song hóa để tăng tốc quá trình tính toán
Trang 28+ Ngoài ra, gần đây đã có nhiều kỹ thuật được xây dựng để rút trích ra các luật phân lớp dễ hiểu từ các mạng nơ-rôn học được
Chi tiết của việc phân lớp dữ liệu bằng các NN có thể được tham khảo ở [6]
1.5 Tình hình nghiên cứu các giải thuật hiện nay
Các giải thuật phân lớp dữ liệu dựa trên cây quyết định đều có tư tưởng chủ đạo là phương pháp Hunt đã trình bày ở trên Luôn có 2 câu hỏi lớn cần phải được trả lời trong các giải thuật phân lớp dữ liệu dựa trên cây quyết định là:
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 tại
mỗi node?
Hai là: Lưu trữ dữ liệu như thế nào và làm cách nào để phân chia dữ liệu
theo các test tương ứng?
Các giải thuật khác nhau có các cách trả lời khác nhau cho hai câu hỏi trên Điều này làm nên sự khác biệt của từng giải thuật
Có 3 loại tiêu chuẩn hay chỉ số để xác định thuộc tính tốt nhất phát triển tại mỗi node đó là:
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 tinh khiết của mỗi phân chia Các giải thuật 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 tinh khiết của một phân chia và lựa chọn thuộc tính theo mức độ cực đại hóa chỉ số entropy Các giải thuật sử dụng tiêu chuẩn này
là ID3, C4.5
Trang 29 χ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 Sau đĩ lựa chọn thuộc tính cĩ độ tương quan lớn nhất CHAID là giải thuật sử dụng tiêu chuẩn này
Chi tiết về cách tính Information-gain sẽ được trình bày trong giải thuật C4.5
và Nạve Bayes ở chương 2
1.6 Kết luận chương 1
Trong Chương 1 luận văn đã giới thiệu khái quát về mơ hình phân lớp dữ liệu, đưa ra mơ hình và quy trình xây dựng cây quyết định trong quá trình phân lớp Đánh giá về những điểm mạnh và điểm yếu của cây quyết định trong mơ hình phân lớp dữ liệu Ngồi ra, luận văn cịn giới thiệu một số giải thuật đã và đang được sử dụng rộng rãi trong các mơ hình phân lớp hiện nay
Trang 30CHƯƠNG 2 GIẢI THUẬT C4.5 VÀ NAIVE BAYES
2.1 Giải thuật C4.5
2.1.1 Tổng quan về giải thuật
Giải thuật C4.5 là sự kế thừa của giải thuật 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 [9]
Trong những năm 1965, mô hình xác suất được sử dụng phổ biến trong cộng đồng khai mỏ dữ liệu được đề nghị đầu tiên bởi Good [2] đó là phương pháp Bayes đơn giản 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
Giải thuật C4.5 là giải thuật cải tiến từ giải thuật ID3 Với những đặc điểm C4.5 là giải thuật 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
Trang 31Tư tưởng phát triển cây quyết định của C4.5 là phương pháp 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 giải thuật C4.5:
Hình 2.1: Mã giả giải thuật C4.5
Cụ thể ta 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 Ntest có giá trị
Create a decision node N;
(3) ForEach Attribute A ComputeGain(A);
(4) N.test=AttributeWithBestGain;
(5) if N.test is continuous find Threshold;
(6) ForEach 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) ComputeErrors of N;
return N
Trang 32nế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
(7) nếu Ti 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 tốn sai số của nút N
Trả về N
Trong luận văn này, tơi tập chung phân tích và so sánh những điểm khác biệt của C4.5 và giải thuật Nạve Bayes
2.1.2 Sử dụng Gain – Entropy làm độ lựa 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 Để đá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 Độ 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ử Pi 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):
Trang 33 S I S I S
G A (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):
S
S S
S S
S G S
Ratio
Trong mô hình phân lớp C4.5, có thể dùng một trong hai loại chỉ số 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 [13]
2.1.3 Ví dụ minh họa cho giải thuật C4.5
Cho CSDL trong bảng 2.1 Sử dụng giải thuật C4.5 để phân lớp đối tƣợng đƣợc chọn ngành theo nhóm sở thích là nhóm 1
Bảng 2.1: Bảng cơ sở dữ liệu dự đoán chọn ngành
STT TOÁN LÝ ANH VĂN SỬ ĐỊA NHÓM SỞ
Trang 34Giả sử ta sử dụng bảng dữ liệu trên vào dự đoán việc chọn ngành
Có 10 đối tƣợng và 6 thuộc tính (Toán, Lý, Anh, Văn, Sử, Địa)
Ta phân lớp “CNTT ” là lớp ngành Công nghệ Thông tin, lớp “NNA” là lớp ngành Ngôn ngữ Anh
* Quá trình tính được thực hiện như sau:
Gọi Snst là tập thuộc tính đích Có tất cả 10 đối tƣợng, trong đó:
+ CNTT xuất hiện trong tập thuộc tính đích 6 lần,
+ NNA xuất hiện trong tập thuộc tính đích 4 lần
[ ]
- Độ lợi thông tin tương ứng là:
Gain( ,Toán) = Entropy( ) – Entropy( ,Toán) = 0,9 – 0,36= 0,54
- Tỷ suất lợi ích Gain Ratio: 0.464
IG( ) = 0,36
Đối với thuộc tính môn Lý:
Trang 35Values (Lý) = {G; K; TB}
[ ] [ ]
[ ]
- Độ lợi thông tin tương ứng là:
Gain( ,Lý) = Entropy( ) – Entropy( ,Lý) = 0,9 – 0,4= 0,5
- Tỷ suất lợi ích Gain Ratio:
IG( ) = 0,57
Đối với thuộc tính môn Anh:
Values (Anh) = {G; K; TB}
[ ] [ ]
[ ]
- Độ lợi thông tin tương ứng là:
Gain( , ) = Entropy( ) – Entropy( , ) = 0,9 – 0,24= 0,66
- Tỷ suất lợi ích Gain Ratio:0,46
Trang 36
Đối với nhánh Sử là “K” toàn bộ các nhãn đều là “NNA” 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à “K”
Như vậy, từ nút lá trên ta sẽ viết được 1 luật quyết định tương ứng:
Luật 1: IF Sử = K THEN QD = NNA
Đối với nhánh Sử là “TB”, quá trình học cây được tiếp tục với tập dữ liệu
con tại nhánh đó
* Quá trình tính được thực hiện như sau:
Gọi SSử là tập thuộc tính đích Có tất cả 8 đối tượng, trong đó:
+ CNTT xuất hiện trong tập thuộc tính đích 6 lần,
+ NNA xuất hiện trong tập thuộc tính đích 2 lần
- Độ đo hỗn loạn trước khi phân hoạch là:
Trang 37- Entropy của S Sử đối với thuộc tính Toán sau khi phân hoạch là:
- Độ lợi thông tin tương ứng là:
Gain( ,Toán) = Entropy( – Entropy( Toán) = 0,815 – 0= 0,815
- Tỷ suất lợi ích Gain Ratio:
- Độ lợi thông tin tương ứng là:
Gain( ) = Entropy( – Entropy( ) = 0,815 – 0,52= 0,29
- Tỷ suất lợi ích Gain Ratio:
IG( ) = 0,53
Đối với thuộc tính Văn:
Values (Văn) = {G; K; TB}
Trang 38- Độ lợi thông tin tương ứng là:
Gain( ) = Entropy( – Entropy( ) = 0,815 – 0= 0,815
- Tỷ suất lợi ích Gain Ratio:
IG( ) = 1
Tương tự, với các thuộc tính còn lại ta có:
IG( ) =
IG( ) = 0,315
Ta nhận thấy GainRatio ( , Văn) = 1 đạt giá trị lớn nhất, do đó thuộc tính
Văn có độ phân hoạch lớn nhất Vì vậy, tại nhánh này ta sẽ chọn thuộc tính Văn làm nút gốc để phân tách cây tiếp theo
+ Ta thấy đối với nhánh TB mà Văn là K thì toàn bộ các nhãn là NNA 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à NNA
+ Tương tự đối với TB mà Văn là TB thì toàn bộ các nhãn là CNTT 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à CNTT
Tương tự , ta viết được các luật tương ứng tiếp theo là:
Luật 2: IF Sử = TB AND VĂN = K THEN Kết quả = NNA
Luật 3: IF Sử = TB AND VĂN = TB THEN Kết quả = CNTT
Trang 39Như 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 như hình 2.2:
Hình 2.2: Ví dụ về Cây quyết định hoàn chỉnh
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 dự báo quy luật để được quy hoạch hay không quy hoạch Với mô hình cây quyết định Hình 2.2 ta nhận thấy cây có 3 nút lá tương ứng với 3 luật quyết định sau đây:
Luật 1: IF Sử = K THEN QD = NNA
Luật 2: IF Sử = TB AND Văn = K THEN Kết quả = NNA
Luật 3: IF Sử = TB AND Văn = TB THEN Kết quả = CNTT
- Dữ liệu quan sát được đưa vào:
Có 10 đối tượng và 5 thuộc tính {Toán, Lý, Anh, Văn, Sử, Địa}
- Dữ liệu quan sát được đưa ra:
Những đối tượng chọn ngành CNTT: {1,2,4,5,6,10}
Những đối tượng chọn ngành NNA: { 3,7,8,9}
2.1.4 Xử lý những giá trị thiếu trong C4.5
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 40Trong quá trình xây dựng cây từ tập dữ liệu đào tạo S, B là test dựa trên thuộc tính Aa với các giá trị đầu ra là b 1 ,b 2 ,…,b t Tập S0 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
test B
Khi đó độ đo độ lợi thông tin của test B giảm vì chúng ta không phân được lớp nào từ các case trong S 0 và được tính theo công thức 2.6:
| | | | (2.6) Trong đó:
S là tập dữ liệu huấn luyện
B là tập dữ liệu test
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ừ đó P(S, B) cũng thay đổi như sau:
| | || (| | ||) ∑ | | || (| | ||) (2.7) Hai thay đổi này làm giảm giá trị của test liên quan đến thuộc tính có tỉ lệ giá
trị thiếu cao Nếu test B được chọn, C4.5 không tạo một nhánh riêng trên cây quyết định cho S0 Thay vào đó, giải thuật có cơ chế phân chia các case trong S0 về các tập
con S i là tập con mà có giá trị thuộc tính test xác định theo trọng số
| |
| |
2.1.5 Tránh quá vừa dữ liệu
“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 Quá vừa dữ liệu là hiện tượng: nếu khô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: