Chọn lựa thuộc tính CLTT và vai trò của CLTT trong KDD Hiện nay có rất nhiều phương thức được sử dụng trong khai phá dữ liệu như phân lớp, ước lượng, phân cụm khái niệm và số, mối quan
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN CƯƠNG
NGHIÊN CỨU, XÂY DỰNG PHƯƠNG PHÁP
TRÍCH CHỌN ĐẶC TRƯNG DỰA TRÊN GIẢI THUẬT
PHÂN LỚP RANDOM FOREST
LUẬN VĂN THẠC SĨ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN CƯƠNG
NGHIÊN CỨU, XÂY DỰNG PHƯƠNG PHÁP
TRÍCH CHỌN ĐẶC TRƯNG DỰA TRÊN GIẢI THUẬT
PHÂN LỚP RANDOM FOREST
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Hà Nam
Trang 3Mục lục LỜI MỞ ĐẦU Error! Bookmark not defined
Tóm tắt luận văn 1
Mục lục 2
Danh mục từ viết tắt 5
Danh mục các biểu 6
Danh mục các bảng 8
Chương 1: Tổng quan 10
1.1 Phát hiện tri thức và khai phá dữ liệu 10
1.2 Chọn lựa thuộc tính (CLTT) và vai trò của CLTT trong KDD 13
1.3 Chọn lựa thuộc tính và bài toán phân lớp 15
Chương 2: Trích chọn thuộc tính 17
2.1 Chiến lược tìm kiếm 17
2.1.1 Hướng tìm kiếm 18
2.1.2 Các chiến lược tìm kiếm 19
2.2 Tiêu chuẩn chọn lựa 20
2.2.1 Đo lường thông tin 21
2.2.2 Đo lường khoảng cách 21
2.2.3 Đo lường phụ thuộc 22
2.2.4 Đo lường độ đồng nhất 22
2.2.4 Đo lường chính xác 23
2.3 Mô hình Filter và Wrapper 23
2.3.1 Mô hình Wrapper 24
2.3.2 Mô hình Filter 25
Chương 3: Một số giải thuật trích chọn thuộc tính 27
3.1 Tìm kiếm toàn bộ 28
3.1.1 Phương pháp Focus 28
Trang 43.1.2 Phương pháp ABB 28
3.2 Tìm kiếm theo kinh nghiệm 30
3.3 Tìm kiếm xác suất 32
3.3.1 Phương pháp LVF 32
3.3.2 Phương pháp LVW 33
3.4 Phương pháp trọng số thuộc tính 35
3.5 Phương pháp lai 36
3.6 Phương pháp lớn dần 37
Chương 4: Giải thuật random forest 40
4.1 Bootstrap và Bagging 40
4.1 1 Bootstrap 40
4.1 2 Bagging 41
4.2 Random Forest 42
4.3 Một số điểm cần chú ý của giải thuật Random Forest 44
4.3.1 OOB 44
4.3.2 Thuộc tính quan trọng 45
Chương 5: Phương pháp học máy đề xuất 48
5.1 Một số kỹ thuật sử dụng trong phương pháp đề xuất 48
5.1.1 Kiểm chứng chéo (cross-validation) 48
5.1.2 Lý thuyết Bayes 49
5.1.3 Phân lớp Native Bayes 50
5.2 Sơ đồ khối và mô hình phương pháp học máy đề xuất 51
5.3 Mô tả phương pháp học máy đề xuất 52
Chương 6: Kết quả thực nghiệm 58
6.1 Dữ liệu Madelon 58
6.1.1 Mô tả bộ dữ liệu Madelon 58
6.1.2 Kết quả thực nghiệm với bộ dữ liệu Madelon 58
Trang 56.2 Bộ dữ liệu Colon Turmo 64
6.2.1 Mô tả bộ dữ liệu Colon Turmo 64
6.2.2 Kết quả thực nghiệm với bộ dữ liệu Colon Turmo 64
6.2.3 Nhận xét 68
KẾT LUẬN 70
DANH MỤC TÀI LIỆU THAM KHẢO 72
Tài liệu Tiếng Việt 72
Tài liệu Tiếng Anh 72
Trang 6Sequential forward generation SFG
Sequential backward generation SBG
Dynamic Feature Elimination baase on Random Forest DFE-RF
Trang 7Danh mục các biểu
Hình 1 1: Mô hình chu trình phát hiện tri thức và khai phá dữ liệu 12
Hình 1 2: Sự phát triển của khai phá dữ liệu trong những năm gần đây 13
Hình 2 1: Ba thành phần chính của chọn lựa thuộc tính: Chiến lược tìm kiếm, Đánh giá, Chọn lựa mô hình 17
Hình 2 2: Mối quan hệ giữa 5 kiểu đo lường 23
Hình 2 3: Mô hình chọn lựa thuộc tính Wrapper 25
Hình 2 4: Mô hình chọn lựa thuộc tính Filter 26
Hình 3 1: Kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm trong chọn lựa thuộc tính 28
Hình 4 1: Random Forest 40
Hình 4 2: Ví dụ sử dụng phương pháp bootstrap 41
Hình 4 3: Các bước trong random forest 44
Hình 4 4: Sử dụng OBB ước lượng lỗi 45
Hình 5 1: Mô hình phương pháp học máy đề xuất 51
Hình 5 2: Sơ đồ khối phương pháp học máy đề xuất 52
Hình 6 1: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học (trái) và trên dữ liệu kiểm chứng ( phải) qua 50lần chạy thử với số cây trong RF=100 59
Hình 6 2: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học (trái) và trên dữ liệu kiểm chứng ( phải) qua 50lần chạy thử với số cây trong RF=150 60
Hình 6 3: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học (trái) và trên dữ liệu kiểm chứng ( phải) qua 50lần chạy thử với số cây trong RF=200 61
Hình 6 4: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học (trái) và trên dữ liệu kiểm chứng ( phải) qua 50 lần chạy thử với số cây trong RF=250 62
Hình 6 5: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=800 65
Hình 6 6: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1100 66
Trang 8Hình 6 7: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1400 67 Hình 6 8: So sánh kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1700 68
Trang 9Danh mục các bảng
Bảng 6 1: Mô tả bộ dữ liệu Madelon 58 Bảng 6 2: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học và trên dữ liệu kiêm chứng qua 50lần chạy thử với số cây trong RF=100 59 Bảng 6 3: Mức tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Madelon qua 50 lần chạy thử với số cây trong RF=100 59 Bảng 6 4: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học và trên dữ liệu kiêm chứng qua 50lần chạy thử với số cây trong RF=150 60 Bảng 6 5: Mức tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Madelon qua 50 lần chạy thử với số cây trong RF=150 60 Bảng 6 6: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học và trên dữ liệu kiêm chứng qua 50lần chạy thử với số cây trong RF=200 61 Bảng 6 7: Mức tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Madelon qua 50 lần chạy thử với số cây trong RF=200 61 Bảng 6 8: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu học và trên dữ liệu kiêm chứng qua 50lần chạy thử với số cây trong RF=250 62 Bảng 6 9: Mức tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Madelon qua 50 lần chạy thử với số cây trong RF=250 62 Bảng 6 10: So sánh một số kết quả dự đoán sử dụng bộ số liệu Colon Turmo 63 Bảng 6 11: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=800 64 Bảng 6 12: Độ tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=800 65 Bảng 6 13: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1100 65 Bảng 6 14: Độ tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1100 66 Bảng 6 15: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1400 66
Trang 10Bảng 6 16: Độ tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1400 67 Bảng 6 17: Kết quả thực nghiệm giữa RF và RF_CT trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1700 67 Bảng 6 18: Độ tiêu tốn thời gian nhiều hơn để thực hiện thuật toán của RF_CT so với
RF trên dữ liệu Colon Turmo qua 20 lần chạy thử với số cây trong RF=1700 68 Bảng 6 19: So sánh một số kết quả dự đoán sử dụng bộ số liệu Colon Turmo 69
Trang 11Chương 1: Tổng quan
1.1 Phát hiện tri thức và khai phá dữ liệu
Từ thập niên 80 của thế kỷ trước với xuất hiện của máy tính và sau đó là sự phát triển mạnh mẽ của công nghệ thông tin và truyền thông, thì nhu cầu lưu trữ dữ liệu và trao đổi thông tin trong xã hội loài người ngày càng tăng lên mạnh mẽ Tuy nhiên, đi cùng với lượng dữ liệu và thông tin ngày càng khổng lồ mà chúng ta có được thì việc biến đổi những dữ liệu sẵn có đó thành tri thức trở thành một đòi hỏi tất yếu trong đời sống hàng ngày Từ nhu cầu thực tế trên, đòi hỏi chúng ta phải tìm kiếm và ứng dụng các kỹ thuật nhằm “khai phá” những thông tin hữu ích, những tri thức có ích từ những nguồn dữ liệu khồng lồ hiện có
Phát hiện tri thức và khai phá dữ liệu (KDD) là những công việc liên quan đến việc trích, lọc những thông tin có ích từ các nguồn dữ liệu [1] Khai phá dữ liệu là một tập các kỹ thuật được sử dụng một cách tự động nhằm tìm kiếm, phát hiện và đưa ra
những mối quan hệ phức tạp trong một tập dữ liệu lớn
Khai phá dữ liệu chủ yếu tập trung vào 3 nhiệm vụ chính sau:
Giảm chiều dữ liệu: Giảm chiều dữ liệu là việc làm giảm chiều của không gian tìm
kiếm dữ liệu, giảm chi phí thu thập và lưu trữ dữ liệu, nâng cao hiệu quả của việc khai phá dữ liệu và làm đơn giản hóa các kết quả khai phá dữ liệu Trong nhiệm vụ làm giảm chiều dữ liệu chúng ta cần xem xét hai khái nhiệm sau:
Trích chọn thuộc tính (Feature Extraction): Trích chọn thuộc tính là việc tìm ra
một tập thuộc tính mới từ tập thuộc tính ban đầu nhằm nâng cao hiệu suất tính toán và độ chính xác phân lớp Các kỹ thuật trích chọn thuộc tính thường liên quan đến các phép biến đổi phi tuyến (non-linear) Linear discriminant analysis (LDA) và principal components analysis (PCA) là hai kỹ thuật phổ biến dùng trong trích chọn thuộc tính
Chọn lựa thuộc tính (Feature Selection): Chọn lựa thuộc tính là việc chọn ra
một tập thuộc tính con từ tập thuộc tính ban đầu sao cho các tập thuộc tính con này thể thể hiện tốt nhất chức năng của một hệ thống quy nạp, chẳng hạn như một hệ thống phân lớp Việc tìm kiếm một tập con thuộc tính tối ưu thường là rất khó và rất nhiều các vấn đề của chọn lựa thuộc tính là thuộc về lớp các bài toán NP-hard Tuy nhiên, chọn lựa thuộc tính lại được sử dụng rộng rãi trong
Trang 12giảm chiều dữ liệu vì các kết quả dựa trên các thuộc tính được chọn lựa từ tập thuộc tính ban đầu thường dễ dàng lý giải hơn so với một tập các thuộc tính được biến đổi từ tập thuộc tính ban đầu
Phân cụm và phân lớp: Phân lớp và phân cụm là hai nhiệm vụ có mối quan hệ
tương đối gần nhau trong khai phá dữ liệu Một lớp là một tập các đối tượng có cùng một số đặc điểm hoặc mối quan hệ nào đó, tất cả các đối tượng trong lớp này được phân vào trong cùng một lớp tên nhằm mục đích là để phân biệt với các lớp khác Một cụm là một tập các đối tượng tương tự nhau về mặt vị trí Các cụm thường được được tạo ra nhằm mục đích để sau đó tiến hành phân lớp các đối tượng
Một tập dữ liệu với các lớp tên, phân tích dữ liệu nhằm mục đích xây dựng một bộ phân lớp, bộ phân lớp này đóng vai trò như một “người dự đoán” một đối tượng mới xuất hiện sẽ thuộc về lớp nào Mô hình phân lớp được xây dựng dựa trên các dữ liệu sẵn có Tiếp theo tiến hành dự đoán, phân lớp các đối tượng dựa vào mô hình máy học được xây dựng ở bước trên Ví dụ, trong hoạt động của ngân hàng các thông tin cá nhân cũng và các hành vi tiêu dùng của khách hàng được thu thập nhằm xây dựng một
mô hình phân lớp cho những khách hàng mới vào các lớp: có rủi ro tín dụng thấp, rủi
ro tín dụng trung bình và rủi ro tín dụng cao Trong trường hợp khác, chỉ có một số thông tin cơ bản về những khách hàng tiềm năng như: tuổi, trình độ chuyên môn và thu nhập Chúng ta có thể sử dụng một số kỹ thuật phân cụm nhằm nhóm các đối tượng này vào các cụm theo một số tiêu chí về độ tương đồng nào đó, sau đó tiến hành dán nhãn cho các cụm được phân: mức độ rủi ro thấp, mức độ rủi trung bình và mức
độ rủi ro cao dựa vào các tiêu chí kinh doanh
Nhìn chung, phân cụm thường được triển khai để xử lý với các dữ liệu không có lớp nhãn Một số phương pháp phân lớp tiến hành phân cụm các đối tượng vào các nhóm nhỏ trước khi tiến hành phân lớp, chẳng hạn như trong mạng neural RBF (radial basis function)
Trích chọn luật: Trích chọn luật tìm kiếm và đưa ra dữ liệu bằng cách tất cả các dữ
liệu được đưa ra dựa trên các suy diễn/các quyết định mà các suy diễn/quyết định này được xây dựng từ các tri thức thu thập được từ dữ liệu đó Đối với người sử dụng các kết quả của khai phá dữ liệu họ chỉ mong muốn có một cách giải thích đơn giản là tại sao có các kết quả phân lớp đó, thuộc tính nào ảnh hưởng đến kết quả khai phá dữ liệu…Tuy nhiên, bằng các tham số phân lớp rất khó để có thể diễn giải các tri thức đó theo cách mà người sử dụng có thể dễ dàng hiểu được Do đó, trích chọn ra các luật IF-THEN để đưa ra các thông tin có giá trị là một cách diễn giải đơn giản và dễ hiểu
Trang 13Trích chọn luật có thể được nhóm vào hai kiểu chính Một kiểu liên quan đến việc tìm ra mối quan hệ giữa các thuộc tính đầu vào và các lớp nhãn ở đầu ra trong tập dữ liệu đã được gán nhãn Kiểu trích chọn luật còn lại là việc khai phá các luật quan hệ (accosiation rule), đây là việc tìm ra các mối quan hệ giữa các thuộc tính trong tập dữ liệu và điều này hoàn toàn không phụ thuộc vào lớp nhãn ở đầu ra Các kỹ thuật trích chọn ra luật quan hệ thường được ứng dụng nhằm tìm kiếm các mối liên hệ giữa các đối tượng trong dữ liệu phiên Khai phá các luật quan hệ có thể được áp dụng để phân tích hành vi khách hàng trong siêu thị Ví dụ một khách hàng mua bơ cũng sẽ mua bánh mì với một xác suất nhất định nào đó
Khai phá dữ liệu thường được xem như là một bước đơn lẻ trong chu trình phát hiện tri thức và khai phá dữ liệu Các bước khác trong chu trình này bao gồm: a) Kho
dữ liệu, b) chọn lựa các dữ liệu đích, c) làm sạch dữ liệu, d) giảm chiều dữ liệu, e) chọn lựa mô hình phù hợp, f) khai phá dữ liệu, g) nhận xét và trình bày kết quả, h) kiểm tra các kết quả có được Một cách đơn giản có thể hiểu như sau: kho dữ liệu cho phép dữ liệu được thu thập từ nhiều nguồn dữ liệu khác nhau và ở nhiều định dạng khác nhau và nguồn dữ liệu này được sử dụng trong một ứng dụng cụ thể; chọn lựa các
dữ liệu đích nhằm tạo ra một dữ liệu cụ thể dùng cho ứng dụng; làm sạch số liệu nhằm loại bỏ nhiễu và các giá trị bất thường; giảm chiều dữ liệu nhằm chuyển dữ liệu thành một dạng dữ liệu phù hợp với ứng dụng; chọn lựa mô hình là chọn một giải thuật phù hợp; khai phá dữ liệu nhằm tìm ra các thông tin cần quan tâm; nhận xét và trình bày kết quả là việc giải thích các kết quả có được; kiểm tra các kết quả có được là việc chuyển các kết quả thành một dạng có thể kiểm tra lại và sử dụng lại
Hình 1.1 thể hiện các bước trong một chu trình phát hiện tri thức và khai phá dữ liệu
Hình 1 1: Mô hình chu trình phát hiện tri thức và khai phá dữ liệu
Nếu xem xét các bước của chu trình khai phá dữ liệu trong ngữ cảnh của chọn lựa thuộc tính, chúng có thể được tổng hợp thành 4 bước cơ bản sau: 1) Kho dữ liệu (Data
Trang 14warehousing) - dữ liệu từ các nguồn khác nhau được tổng hợp, lưu trữ lại, 2)Tiền xử lý (Pre-processing) (các bước b, c, và d) – chọn lựa các dữ liệu phù hợp cho một ứng dụng cụ thể, 3) Khai phá dữ liệu (Data ming) (các bước e và f) – một giải thuật phai phá dữ liệu được chọn lựa và áp dụng trên bộ số liệu thu được ở bước 2, 4) Hậu xử lý (Post-processing) (các bước g và h) – Các tri thức thu được từ bước 3 được chọn lựa, nhóm… sao cho chúng có thể dễ dàng hiểu và sử dụng
Hình 1.2 dưới đây [2] thể hiện sự phát của khai phá dữ liệu trong những năm gần
đây :
Hình 1 2: Sự phát triển của khai phá dữ liệu trong những năm gần đây
1.2 Chọn lựa thuộc tính (CLTT) và vai trò của CLTT trong KDD
Hiện nay có rất nhiều phương thức được sử dụng trong khai phá dữ liệu như phân lớp, ước lượng, phân cụm khái niệm và số, mối quan hệ, phân tích tuần tự…tuy nhiên đại bộ phận các phương thức này đều gặp vấn đề khi dữ liệu quá lớn hoặc quá nhỏ Một điều hiển nhiên rằng dữ liệu sẽ không bao giờ là quá nhiều, nếu tất cả các dữ liệu
là phù hợp Tuy nhiên, trên thực tế điều này là rất ít khi có được bởi vì thông thường các dữ liệu thường được thu thập cho một mục đích chung nào đó hơn là được thu thập cho một mục đích riêng biệt, cụ thể Do vậy, đối với một nhiệm vụ khai phá dữ liệu cụ thể, nếu số lượng các dữ liệu không phù hợp là lớn thì dữ liệu này sẽ ảnh hưởng rất lớn đến kết quả cũng như tốc độ thực hiện của việc khai phá dữ liệu trên Đối với những trường hợp này, thì việc áp dụng một thuật toán chọn lựa thuộc tính để loại bỏ các dữ liệu không phù hợp là hết sức cần thiết Trong trường hợp khác, chúng ta có thể gặp
Trang 15rất nhỏ trong yêu cầu dữ liệu cần thiết để thực hiện một giải thuật phai phá dữ liệu nào
đó nhằm tìm ra một tri thức hữu ích; (ii) hoặc số lượng thuộc tính là rất lớn tuy nhiên
số lượng thực thể (bản ghi) lại nhỏ Trên thực tế, khi chúng ta có quá ít dữ liệu hoặc quá nhiều thực thể thì lựa chọn thuộc tính có thể cung cấp cho chúng ta một giải thuật khai phá dữ liệu chỉ tập trung vào các thuộc tính liên quan Do đó, các vấn đề đặt ra ở trên có thể được giải quyết trong điều kiện “tốt nhất” có thể có được
Thông thường có hai câu hỏi được đặt ra đối với việc chọn lựa thuộc tính là 1) Kết quả của chọn lựa thuộc tính là gì ?; 2) Tại sao cần chọn lựa thuộc tính ? Trước đây, câu trả lời cho hai câu hỏi này chỉ đơn giản là: “muốn có một tập dữ liệu có số lượng thuộc tính nhỏ hơn” Tuy nhiên, ngày nay câu trả lời cho hai câu hỏi trên lại hết sức đa dạng, câu trả lời có thể là: tôi muốn 1) cải thiện hiệu năng (tốc độ học, độ chính xác, hoặc đơn giản hóa các luật); 2) trực quan hóa dữ liệu để chọn lựa một mô hình phù hợp cho dữ liệu đó; hoặc/và để giảm chiều dữ liệu cũng như loại bỏ nhiễu trong dữ liệu hiện có…
Từ những quan sát trên về chọn lựa thuộc tính chúng ta có nhận xét sau: Chọn lựa thuộc tính là một quá trình để tìm ra một tập con tốt nhất các thuộc tính theo một số tiêu chí nào đó Ứng dụng của trích chọn thuộc tính là hữu ích đối với cả ba bước của chu trình phát hiện tri thức: tiền sử lý, khai phá và hậu sử lý Cũng cần lưu ý là cả ba bước trên đều quan trọng như nhau đối với sự thành công của phát hiện tri thức và khai phá dữ liệu Bước một đảm bảo rằng dữ liệu được cung cấp cho bước hai tốt về chất lượng và phù hợp về số lượng, bước hai đảm bảo rằng khai phá dữ liệu được thực hiện một cách hiệu quả và hiệu nghiệm, bước ba đưa ra các kết quả tin cậy và đầy đủ như người sử dụng mong muốn Chọn lựa thuộc tính đóng vai trò như là một công cụ quan trọng trong khai phá dữ liệu và là thể hiện của khoảng cách giữa sự xuất hiện các vấn
đề mới và sự xuất hiện các lĩnh vực mới Một số vấn đề mà trước đây không thể giải quyết được trong thống kê nay đã giải quyết được bởi học máy, và khai phá dữ liệu xuất hiện như một lĩnh vực mới chỉ quan tâm đến việc xử lý các vấn đề chưa xử lý được trong thống kê và học máy Các công cụ mới được phát triển ngày càng nhiều, tuy nhiên mỗi công cụ lại có những hạn chế rất định do đó chúng ta mong muốn có thể
“nối” được những công cụ này để tận dụng được “sức mạnh” của chúng Chọn lựa thuộc tính có thể được xem như là một bộ công cụ đặc biệt để “nối” và cải thiện hiệu năng của các công cụ hiện có Xem xét hai thành phần chính của phát hiện tri thức là các giải thuật khai phá và tập dữ liệu, các công cụ có rất nhiều cho cả hai thành phần này Chọn lựa thuộc tính là các công cụ thao tác dữ liệu làm cho dữ liệu phù hợp với
Trang 16giải thuật khai phá mà không thay đổi bản chất của dữ liệu và là một công cụ hữu hiệu cho việc cải tiến các phương thức khai phá dữ liệu
1.3 Chọn lựa thuộc tính và bài toán phân lớp
Nhiệm vụ cơ bản của việc phân lớp là phân chia một tập các đối tượng thành n-hữu hạn lớp đã biết trước Tập đối tượng cần phân lớp được đặc trưng bởi một tập các thuộc tính chứa các thông tin cần thiết liên quan đến các lớp, trong đó mỗi tập các thuộc tính được đại diện bởi một tập các thuộc tính – giá trị Với một tập dữ liệu bao gồm một tập các đối tượng đã được phân lớp (thường gọi là tập tập huấn) nhiệm vụ đặt
ra là từ tập huấn luyện cho trước xây dựng một bộ phân lớp cho các dữ liệu tương tự Vấn đề đặt ra đối với bài toán phân lớp là số lượng các thuộc tính có thể rất lớn do những lý do sau:
Dữ liệu được thu thập không đơn giản chỉ phục vụ cho một tác nghiệp cụ thể chẳng hạn như khai phá dữ liệu Do đó, đối với một ứng dụng cụ thể bộ dữ liệu
có thể có rất nhiều các thuộc tính thừa hoặc không phù hợp
Đôi khi thậm chí nếu chúng ta biết các thuộc tính được thiết kế cho một tác nghiệp cụ thể thì thuộc tính nào là thuộc tính có liên quan thường không được biết Điều này là do bản chất của nghiên cứu Chúng ta tiến hành thực nghiệm và thu thập số liệu vì chúng ta muốn biết nhiều hơn lĩnh vực mà chúng ta muốn tìm hiểu và chúng ta thông thường không có một ý niệm chính xác về các thuộc tính cần thiết Do đó, chúng ta phải tìm các thuộc tính cần thiết nhiều nhất mà chúng
ta có thể nghĩ đến thậm chí chúng có thể là các thuộc tính dư thừa hoặc không liên quan Chúng ta chỉ có thể biết được thuộc tính nào là liên quan sau khi chúng
ta nghiên cứu bộ số liệu đã được thu thập
Một tác nghiệp có thể yêu cầu dữ liệu từ nhiều nguồn khác nhau Nếu dữ liệu từ mỗi nguồn là lớn thì sau khi nối các nguồn dữ liệu trên chúng ta sẽ có một bộ dữ liệu khổng lồ Nếu chúng ta biết được các thuộc tính liên quan thì chúng ta có thể giải quyết được vấn đề trên nhưng trên thực tế chúng ta thường không biết trước các thuộc tính nào là thuộc tính liên quan
Các thuộc tính không liên quan hoặc thừa có thể có những ảnh hưởng tiêu cực đối với các giải thuật phân lớp: (1) Có nhiều thuộc tính thông thường có nghĩa là cần nhiều thực thể, vì vậy chúng ta cần đảm bảo các ràng buộc thống kê giữa các thực thể trong các lớp khác nhau, (2) Các thuộc tính/dữ liệu thừa hoặc không liên quan có thể là nguyên nhân dẫn đến việc học của giải thuật không được chính xác hoặc dẫn đến hiện tượng overfitting trong mô hình, (3) Thêm vào đó với sự có mặt của dữ liệu thừa hoặc
Trang 17dữ liệu không liên quan có thể làm cho bộ phân lớp trở lên phức tạp hơn Điều này là gây ra những khó khăn không cần thiết cho chúng ta trong việc diễn giải các kết quả học được từ tập huấn luyện
Do chúng ta không biết được thuộc tính nào là liên quan trước khi chúng ta tiến hành thu thập dữ liệu, và các thuộc tính thừa hoặc không liên quan thường gây ra những ảnh hưởng tiêu cực đối với các giải thuật phân lớp, do đó chúng ta cần giải quyết vấn này đối với các bài toán phân lớp Về cơ bản, chúng ta chỉ muốn lựa chọn các thuộc tính liên quan đến ứng dụng của chúng ta nhằm mục đích sao cho ứng dụng của chúng có được hiệu quả tốt nhất với các đo lường, tính toán là ít nhất, nói một cách đơn giản chúng ta mong muốn có một đầu vào cho mô hình là đơn giản nhất có thể nhưng lại cho kết quả ở đầu ra là tốt nhất có thể Sử dụng trích chọn thuộc tính trong phân lớp cho ta những lợi thế sau:
Dữ liệu ít hơn do đó giải thuật phân lớp có thể học nhanh hơn;
Độ chính xác cao hơn do đó bộ phân lớp có thể cho những kết quả phân lớp tốt;
Các kết quả đơn giản hơn do đó các kết quả này có thể hiểu được dễ dàng hơn;
Ít thuộc tính hơn do đó trong các vòng thu thập số liệu sau, nếu có thể chúng ta
có thể tiết kiệm được nhiều nguồn lực do việc loại bỏ các thuộc tính thừa và không liên quan
Trong các chương tiếp theo chúng ta sẽ đi vào tìm hiểu sâu các đặc điểm của trích chọn thuộc tính, một số giải thuật phân lớp được sử dụng phổ biến trong trích chọn thuộc tính và đi sâu tìm hiểu giải thuật phân lớp Random Forest
Trang 18Chương 2: Trích chọn thuộc tính
Trích chọn thuộc tính được xem như là sự tổng hợp của ba thành phần chính: (1)Tìm kiếm, Đánh ra, Chọn lựa mô hình Hình 2.1 dưới đây [3] thể hiện trích chọn
thuộc tính theo 3 thành phần nói trên
Hình 2 1: Ba thành phần chính của chọn lựa thuộc tính: Chiến lược tìm kiếm, Đánh
giá, Chọn lựa mô hình
2.1 Chiến lược tìm kiếm
Chọn lựa thuộc tính có thể được xem dưới góc độ như là một vấn đề tìm kiếm, trong đó mỗi bước trong không gian tìm kiếm xác định ra một tập con thuộc tính liên quan Giả sử ta có một tập dữ liệu với 3 thuộc tính (A1, A2, A3) Một mảng nhị phân
mà mỗi thành phần của mảng được thiết lập là 1 nếu thuộc tính có chỉ số tương ứng trong mảng nhị phân được chọn Nếu mảng có giá trị (1, 1, 1) có nghĩa là cả 3 thuộc tính được chọn và (1, 0, 0) có nghĩa là chỉ thuộc tính A1 được chọn Do đó, sẽ có tất cả
2N tập con có thể có, trong đó N là số lượng thuộc tính của tập dữ liệu Trong trường hợp có 3 thuộc tính sẽ có tất cả 8 trạng thái (tập con) Một tập con tối ưu thường nằm đâu đó giữa điểm đầu và điểm cuối cây Câu hỏi đặt ra ở đây là: Chúng ta nên bắt đầu tìm kiếm từ đâu Vấn đề sẽ rất đơn giản nếu không gian tìm kiếm nhỏ Tuy nhiên, trên thực tế không gian tìm kiếm thường rất lớn (2N), bắt đầu từ câu hỏi “Đâu là điểm tìm
Trang 19kiếm phù hợp” sẽ xuất hiện các câu hỏi khác: Chiến lược tìm kiếm phù hợp là gì ? Trên thực tế chiến lược tìm kiếm lại bị ảnh hưởng bởi hướng tìm kiếm, dưới đây chúng ta sẽ lần lượt xem xét hướng tìm kiếm và chiến lược tìm kiếm
2.1.1 Hướng tìm kiếm
Giả sử chúng ta ban đầu chưa có một khái niệm cụ thể nào về tập thuộc tính tối ưu trong không gian tìm kiếm, thì sẽ không có sự khác biệt trong việc xác định điểm xuất phát nên bắt đầu từ đâu (một tập rỗng hay một tập đủ các thuộc tính) Do đó, đối với phần lớn các vấn đề trong tìm kiếm thì trung bình thời gian để tìm ra tập con tối ưu giữa các hướng tìm kiếm khác nhau không có sự khác biệt Tuy nhiên, hướng tìm kiếm lại có mối liên hệ chặt chẽ trong việc tạo ra tập con thuộc tính Một phương pháp tìm kiếm là tìm ra tập con tối ưu bắt đầu từ một tập rỗng các thuộc tính (Ví dụ: Sequential Forward Generation), phương pháp còn lại là tìm ra tập con tối ưu bằng cách lần lượt loại bỏ các thuộc tính ít quan trọng từ một tập đủ các thuộc tính ban đầu (Ví dụ: Sequential Backward Generation)
Sequential forward generation (SFG): Được bắt đầu bằng một tập rỗng các thuộc
tính, Sselect Ở mỗi lần tìm kiếm một thuộc tính được thêm vào tập Sselect (do đó gọi là tuần tự) Trong mỗi lần tìm kiếm dựa trên một số tiêu chí, một thuộc tính tốt nhất trong số các thuộc tính chưa được chọn lựa sẽ được chọn để thêm vào tập Sselect Quá trình tìm kiếm này sẽ dừng lại khi tất cả các thuộc tính trong tập thuộc tính ban đầu được thêm vào Sselect Một danh sách xếp hạng các thuộc tính được tạo ra theo trình tự thời gian các thuộc tính được thêm vào tập Sselect. Nếu ta biết trước một số thông tin về
số lượng thuộc tính liên quan, thì một cách đơn giản chúng ta có thể chọn m thuộc tính đầu tiên trong danh sách xếp hạng
Sequential backward generation (SBG): Được bắt đầu với một tập đủ các thuộc
tính, tại mỗi lần tìm kiếm dựa vào một số tiêu chí nào đó, một thuộc tính ít quan trọng
sẽ bị loại bỏ Do đó, các thuộc tính trong tập thuộc tính sẽ dần dần bị loại bỏ cho tới khi trong tập thuộc tính chỉ còn lại một thuộc tính Một danh sách xếp hạng các thuộc tính theo thời gian bị loại bỏ từ thấp đến cao được tạo ra Thuộc tính bị loại bỏ cuối cùng sẽ là thuộc tính quan trọng nhất SBG và SFG là hai phương pháp bổ xung cho nhau vì đôi khi tìm ra thuộc tính quan trọng nhất là dễ dàng hơn so với tìm ra thuộc tính ít quan trọng và ngược lại
Nếu trong trường hợp tồn tại một tập thuộc tính tối ưu mà tập thuộc tính này lại không nằm trong khu vực giữa của không gian tìm kiếm, thì việc chúng ta bắt đầu tìm kiếm từ cả hai phía của không gian tìm kiếm là giải pháp tối ưu Một cách trực quan,
Trang 20chúng ta thấy rằng phương pháp này sẽ chạy nhanh hơn phương pháp tìm kiếm theo một hướng Dưới đây, ta sẽ sem xét phương pháp này
Birectional Generation(BG): Được bắt đầu ở cả hai hướng trong không gian tìm
kiếm, ví dụ hai quá trình tìm kiếm được thực hiện đồng thời Quá trình tìm kiếm sẽ dừng lại khi gặp một trong hai trường hợp sau: (1) Khi một trong hai chiều tìm kiếm tìm được tập m thuộc tính tốt nhất trước khi đi đến điểm giữa trong không gian tìm kiếm, hoặc (2) Cả hai chiều tìm kiếm đến điểm giữa trong không gian tìm kiếm Nếu giả sử giả thuyết là chúng ta hoàn toàn chưa có thông tin về m thuộc tính tốt nhất là đúng thì trong mọi trường hợp, tìm kiếm theo một chiều sẽ mất một nửa thời gian để
đi đến điểm giữa của không gian tìm kiếm Phương pháp BG sẽ tránh được nhược điểm trên
Random Generation(RG): Bắt đầu tìm kiếm theo một hướng ngẫu nhiên Thêm
hay loại bỏ bớt một thuộc tính cũng được thực hiện một cách ngẫu nhiên RG cố gắng tránh việc gặp tối ưu địa phương do việc cố định chỉ đi theo một chiều nào đó trong việc tạo ra tập thuộc tính tối ưu Không giống như FSG hay FBG, kích cỡ của tập con thuộc tính được tạo ra tiếp theo không được xác định Tuy nhiên, chúng ta có thể thấy được xu hướng của số lượng thuộc tính được chọn là tăng lên hay giảm đi
2.1.2 Các chiến lược tìm kiếm
Trong trường hợp số lượng thuộc tính (N) là nhỏ thì không gian tìm kiếm là không lớn Tuy nhiên không gian tìm kiếm sẽ tăng theo hàm mũ khi N tăng do mối quan hệ S=2N, trong đó S là không gian tìm kiếm với N thuộc tính và 2 biểu thị việc chọn hay không chọn một thuộc tính Câu hỏi về chiến lược tìm kiếm nào được chọn đặt ra trong trường hợp không gian tìm kiếm là lớn Cũng cần lưu ý rằng trong một không gian tìm kiếm nếu tìm kiếm càng nhiều (càng kỹ) có nghĩa là sẽ tìm được một tập con tốt hơn Tuy nhiên, tìm kiếm nhiều có nghĩa là sẽ mất nhiều thời gian và nguồn lực mà chúng ta lại thường luôn hạn chế về nguồn lực Do vậy, mục đích là tìm được một tập con tối ưu nhất có thể trong thời gian ít nhất có thể Các chiến lược tìm kiếm có thể được chia thành 3 nhóm dưới đây
Tìm kiếm toàn bộ (Exhausive/Complete Search): Đây là phương pháp tìm tất cả
các khả năng có thể của các tập con sau đó tìm một tập con tối ưu nhất Nhìn chung,
độ phức tạp không gian của phương pháp này (số lượng tập con cần tạo ra) là O(2N
) Nếu chúng ta biết được hướng tìm kiếm, thì không gian tìm kiếm là (N0) + (N1) + …+ (NM), trong đó M là số lượng thuộc tính tối thiểu của một tập con thỏa mãn một số tiêu chí đánh giá nào đó
Trang 21Tìm kiếm theo kinh nghiệm (Heuristic Search): Như tên gọi của phương pháp,
phương pháp tìm kiếm theo kinh nghiệm được triển khai trong khi tìm kiếm, điều này tránh được việc tìm kiếm một cách khô cứng, máy móc (brute-force search) nhưng phương pháp này cũng đi cùng với nguy cơ không tìm được các tập con tối ưu Độ phức tạp không gian của phương pháp tìm kiếm theo kinh nhiệm là đường đi nối từ điểm bắt đầu đến điểm kết thúc (điểm tìm ra tập con tối ưu) Độ dài tối đa của đường
đi này là N và số lượng tập con được tạo ra là O(N) Phương pháp tìm kiếm theo kinh nghiệm cho ra kết quả nhanh hơn so với phương pháp tìm kiếm toàn bộ, do phương pháp này chỉ tìm kiếm theo một đường đi cụ thể và tìm ra một tập con gần tối ưu
Tìm kiếm không xác đinh(Nondeterministic Search): Không giống như hai chiến
lược tìm kiếm được trình bày ở trên, chiến lược này tìm kiếm tập con kế tiếp theo kiểu ngẫu nhiên Có hai đặc điểm chính của chiến lược tìm kiếm này: (1) Chúng ta không cần phải đợi cho đến khi tìm kiếm kết thúc; và (2) Chúng ta không biết khi nào tập tối
ưu được xuất hiện mặc dù chúng ta biết rằng tại mỗi bước có một tập tốt hơn xuất hiện Hình 2.2 dưới đây thể hiện mối quan hệ giữa hướng tìm kiếm và chiến lược tìm kiếm X thể hiện sự kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm là không khả thi
Hướng tìm kiếm Chiến lược tìm kiếm
Toàn bộ Kinh nghiệm Không xác định
Bảng 2 1 : Chiến lược tìm kiếm và hướng tìm kiếm
2.2 Tiêu chuẩn chọn lựa
Tất cả các chiến lược tìm kiếm đều có nhu cầu đánh giá một thuộc tính hoặc một tập con thuộc tính để xác định thuộc tính/tập con đó là tốt hay không tốt Việc đánh giá này thường là phức tạp và có nhiều chiều đánh giá Ví dụ, đánh giá có thể được đo lường theo những khía cạnh (1) Các thuộc tính được chọn lựa có làm tăng độ chính
Trang 22xác của bộ phân lớp hay không và (2) Các thuộc tính được chọn lựa có giúp làm đơn giản các kết quả học do đó sẽ các kết quả này có thể dễ dàng để hiểu hay không… Dưới đây là một số đo lường thường được sử dụng trong trích chọn thuộc tính
2.2.1 Đo lường thông tin
Thông tin là một cách đo lường độ không ổn định của người nhận tin khi một người nhận tất cả các tin nhắn Nếu người nhận tin biết được tin nhắn nào đang đến thì
sự ngạc nhiên (uncertainty) của anh ta sẽ thấp Trong trường hợp anh ta hoàn toàn không biết tin nhắn nào đang đến, chúng ta giả sử rằng tất có các tin nhắn có xác suất đến bằng nhau, thì sự ngạc nhiên của anh ta đối với tin nhắn đó là cao Trong ngữ cảnh của phân lớp, các tin nhắn là các lớp Giả sử U là một hàm đo lường độ không ổn định của lớp, nếu U có giá trị lớn có nghĩa là mức độ không ổn định cao
Cho một hàm đo lường độ không ổn định U và P(ci) là tiền xác suất (prior probability) của lớp ci, thông tin thu được (information gain) từ một thuộc tính X, ký hiệu IG(X), được định nghĩa là sự khác biệt giữa độ không ổn định ban đầu (prior uncertainty) và độ không ổn định kỳ vọng (expected posterior uncertainty) khi sử dụng thuộc tính X
Tiêu chí đánh giá thuộc tính dựa trên khái niệm thông tin thu được được thực hiện như sau: Trong 2 thuộc tính X và Y, thuộc tính X được chọn lựa dựa nếu IG(X) > IG(Y) Điều này có nghĩa là một thuộc tính được chọn khi nó có thể làm giảm độ không ổn định nhiều hơn Nói một cách khác, nếu một thuộc tính không thể làm giảm
độ không ổn định thì thuộc tính đó là thuộc tính không liên quan (irrelevant)
2.2.2 Đo lường khoảng cách
Kiểu đo lường này cũng được biết đến như là đo lường khác biệt hoặc đo lường phân biệt Đo lường này được thực hiện thông qua việc đo khoảng cách giữa các hàm xác suất điều kiện lớp Ví dụ đối với trường hợp có 2 lớp, D(X) là khoảng cách giữa P(X|c1) và P(X|c2), luật đánh giá thuộc tính xây dựng dựa trên khoảng cách D(X) nói rằng, trong hai thuộc tính X và Y thuộc tính X được chọn nếu D(X) > D(Y) Mục đích của việc chọn lựa này là ta cố gắng tìm ra các thuộc tính sao cho hai lớp được phân chia (khoảng cách giữa 2 lớp) là xa nhất có thể được Một khoảng cách lớn hơn cũng
có nghĩa là sẽ dễ dàng hơn để phân chia hai lớp Nếu P(X|c1) và P(X|c2) có giá trị bằng nhau thì D(X)=0, thuộc tính X không có vai trò gì trong việc phân chia hai lớp c1 và c2.
Trang 23Ngược lại nếu D(X)=1 (P(X|c1)=0 và P(X|c2)=1 hoặc P(X|c1)=1 và P(X|c2)=0) thì D(X) đạt cực đại và việc phân chia hai lớp c1 và c2 lúc này là dễ dàng thực hiện nhất
2.2.3 Đo lường phụ thuộc
Đo lường này cũng được biết đến như là đo lường mối quan hệ, đo lường mối liên
hệ Đo lường này được thiết kế để lượng hóa mối quan hệ giữa hai biến bằng việc nếu biết được giá trị một biến ta có thể dự đoán được giá trị của biến còn lại Trong đánh giá thuộc tính, thay bằng việc kiểm tra một thuộc tính thay đổi thông tin thu thập được hoặc thay đổi kỳ vọng xác suất lớp như thế nào, thì chúng ta sẽ xem xét một thuộc tính liên hệ với một lớp như thế nào (mạnh hay yếu) Gọi R(X) là đo lường phụ thuộc giữa thuộc tính X và lớp C, ta chọn thuộc tính X dựa trên đo lường phụ thuộc với thuộc tính Y nếu R(X) > R(Y) Nói một cách khác, chúng ta chọn thuộc tính có mối liên hệ chặt chẽ với lớp C hơn Nếu X và C là độc lập thống kê thì giữa X và Y sẽ không có mối liên hệ và việc loại bỏ thuộc tính X sẽ không làm ảnh hưởng đến việc phân lớp các thuộc tính còn lại Nếu mỗi giá trị của thuộc tính X có mối liên hệ với một giá trị của lớp C, chúng ta kỳ vọng rằng R(X) sẽ có giá trị cực đại và thuộc tính X
Đo lường độ đồng nhất (consistency measure) cố gắng tìm ra số lượng thuộc tính cần thiết nhỏ nhất có thể phân chia các các lớp sao cho độ đồng nhất giữa việc sử dụng các thuộc tính được chọn lựa này với việc sử dụng toàn bộ các thuộc tính là như nhau Một cách trực quan đo lường độ đồng nhất cố gắng tìm một tập thuộc tính con sao cho P(C|FullSet) = P(C|Subset) Tiêu chí đánh giá thuộc tính dựa trên đo lường độ đồng nhất được phát biểu như sau: Chúng ta nên chọn tập tối thiểu các thuộc tính mà tập các thuộc tính này có thể giữ được độ đồng nhất của dữ liệu như là toàn bộ các thuộc tính Không đồng nhất xuất hiện khi hai thực thể có những giá trị thuộc tính tương tự nhau nhưng lại thuộc về hai lớp khác nhau Sử dụng đo lường độ đồng nhất có thể loại
bỏ được các thuộc tính thừa và thuộc tính không liên quan trong dữ liệu
Trang 242.2.4 Đo lường chính xác
Kiểu đo lường này phụ thuộc vào bộ phân lớp Cho một bộ phân lớp, trong rất nhiều khả năng có thể của các tập con thuộc tính, tập con thuộc tính được chọn là tập con cho kết quả dự đoán tốt nhất Chúng ta thấy rằng phương pháp đo lường này hoàn toàn khác biệt với các phương pháp đo lường ở trên Phương pháp này xuất hiện nhằm trả lời câu hỏi, nếu chúng ta muốn có một tập các thuộc tính có thể cải thiện độ chính xác của bộ phân lớp thì tại sao không sử dụng độ chính xác phân lớp như một đo lường ? Tuy nhiên, cũng xuất hiện một số khó khăn đối với kiểu đo lường này đó là: (1) Làm thế nào ước lượng được độ chính xác dự đoán thực sự và tránh được hiện tượng overfitting; (2) Sẽ rất mất thời gian để một bộ phân lớp học được từ các dữ liệu bằng một giải thuật nào đó
Hình 2.3 [3-4] dưới đây thể hiện mối quan hệ giữa 5 kiểu đo lường được trình bày
ở trên
Hình 2 2: Mối quan hệ giữa 5 kiểu đo lường
2.3 Mô hình Filter và Wrapper
Cách sử dụng đơn giản nhất của chọn lựa thuộc tính là sử dụng độ chính xác của
bộ phân lớp như một đo lường hiệu quả của bộ phân lớp Nếu mục đích của chúng ta
là để cực tiểu hóa tỷ lệ lỗi của phân lớp, và chi phí đo lường đối với mỗi thuộc tính là như nhau thì sử dụng độ chính xác dự báo của lớp như một tiêu chí đo lường hiệu quả
là rất khả thi Do vậy, chúng ta nên xây dựng một bộ phân lớp với mục đích là để có
Trang 25được độ chính xác dự báo cao nhất có thể, sau đó chọn lựa các thuộc tính được sử dụng bởi bộ phân lớp như là các thuộc tính tối ưu Mô hình này cũng được gọi là mô hình Wrapper Ngoài phương pháp đo lường trực tiếp ở trên, cũng có một phương pháp đo lường hiệu quả không trực tiếp khác, chủ yếu dựa trên việc đo lường khoảng cách và đo lường thông tin trong việc chọn lựa thuộc tính Mô hình được xây dựng theo cách này được gọi là mô hình Filter Dưới đây, chúng ta sẽ tìm hiểu hai mô hình này
2.3.1 Mô hình Wrapper
Mối quan tâm chính của khai phá dữ liệu là thu được độ chính xác dự đoán cao Vấn đề chính ở đây là làm thế nào chúng ta có thể cải thiện được hiệu quả phân lớp dựa trên những tri thức học được từ dữ liệu Một trong những các phương pháp nhằm cải thiện hiệu quả phân lớp là thông qua chọn lựa thuộc tính, vì thông qua chọn lựa thuộc tính chúng ta sẽ có tập dữ liệu tốt hơn cho phân lớp Nếu chúng ta có thể chọn được các thuộc tính liên quan và loại bỏ các thuộc tính nhiễu chúng ta có thể nâng cao hiệu quả phân lớp mà cụ thể là độ chính xác của bộ phân lớp
Mô hình chọn lựa thuộc tính Wrapper có thể giúp chúng ta thực hiện được những mong muốn trên Hình 2.4 dưới đây thể hiện mô hình Wrapper Mô hình Wrapper bao gồm 2 giai đoạn: Giai đoạn 1 – chọn lựa tập con thuộc tính, trong giai đoạn này các tập con thuộc tính tốt nhất sẽ được lựa chọn dựa trên tiêu chí độ chính xác lớp (của bộ
dữ liệu tập huấn); Giai đoạn 2 – học và kiểm tra (learning and testing), một bộ phân lớp sẽ học các tri thức từ dữ liệu tập huấn thông qua một tập các thuộc tính tốt nhất được chọn lựa, và được kiểm tra lại bằng một bộ dữ liệu kiểm tra Khi các tập con thuộc tính được tạo ra một cách hệ thống (hướng tìm kiếm), đối với mỗi tập con thuộc tính sẽ có một bộ phân lớp được tạo ra từ dữ liệu bao gồm các thuộc tính đã được chọn lựa Độ chính xác của bộ phân lớp được ghi lại trong mỗi lần thử nghiệm và tập con thuộc tính với độ chính xác cao nhất sẽ được giữ lại Khi quá trình chọn lựa kết thúc, tập con thuộc tính với độ chính xác cao nhất sẽ được chọn Giai đoạn 2 là quá trình học và kiểm tra thông thường, trong giai đoạn này chúng ta sẽ có độ chính xác
dự báo trên bộ dữ liệu kiểm tra
Trang 26Hình 2 3: Mô hình chọn lựa thuộc tính Wrapper
Độ chính xác ước tính của một bộ phân lớp trên dữ liệu tập huấn có thể không phản ánh đúng độ chính xác trên bộ dữ liệu kiểm tra Do đó, vấn đề đặt ra ở đây là làm thế nào để có được ước lượng độ chính xác tốt nhất trên các bộ dữ liệu kiểm tra Một trong những cách làm phổ biến là sử dụng kiểm chứng chéo (cross – validation), phương pháp này sẽ được đề cập trong chương tiếp của luận văn
2.3.2 Mô hình Filter
Ngoài cách dựa vào độ chính xác của bộ phân lớp ở trên, chúng ta cũng có thể sử dụng một số cách khác để làm tăng độ chính xác dự đoán của bộ phân lớp như: loại bỏ nhiễu, biến đổi dữ liệu (data reduction) Mặc dù chúng ta biết rằng khả năng xử lý của
mô hình Wrapper đối với dữ liệu nhiều chiều bị hạn chế bởi việc chọn lựa bộ phân lớp Tuy nhiên, trong ngữ cảnh của khai phá dữ liệu thì thông thường bộ dữ liệu thường là rất lớn và không thể dùng trực tiếp một bộ phân lớp để phân lớp dữ liệu cho bộ dữ liệu
đó Do đó, chúng ta cần sử dụng một số phương pháp tiền xử lý (pre-processing) đối với bộ dữ liệu đó trước khi áp dụng phân lớp bộ dữ liệu đó Thông qua mô hình Wrapper có thể đảm bảo độ chính xác của các thuộc tính được chọn lựa Tuy nhiên,
do những hạn chế của mô hình này như: độ phức tạp thời gian lớn, hạn chế trong việc chọn lựa bộ phân lớp và khả năng xử lý với các bộ dữ liệu có kích cỡ lớn là không tốt Dưới đây, chúng ta sẽ sem xét mô hình chon lựa thuộc tính Filter, mô hình này có thể khắc phục được một số hạn chế của mô hình Wrapper
Hình 2.5 dưới đây thể hiện mô hình chọn lựa thuộc tính Filter Mô hình này cũng bao gồm 2 giai đoạn: Giai đoạn 1 – Chọn lựa thuộc tính sử dụng các đo lường như
Trang 27thông tin, khoảng cách, độc lập hoặc độ đồng nhất không sử dụng bất kỳ một giải thuật học nào ở giai đoạn này; Giai đoạn 2 – Giai đoạn này tương tự như giai đoạn 2 trong mô hình Wrapper, một bộ phân lớp học các tri thức thông qua các thuộc tính được chọn lựa trên bộ dữ liệu huấn luyện và được kiểm tra lại trên bộ dữ liệu kiểm tra
Hình 2 4: Mô hình chọn lựa thuộc tính Filter
Mô hình chọn lựa thuộc tính Filter có một số đặc điểm sau: (1) Mô hình này không chịu ảnh hưởng của một giải thuật học cụ thể, (không áp dụng giải thuật học trong giai đoạn 1) nhưng lại chịu ảnh hưởng của bản chất bộ dữ liệu (sử dụng các đo lường trên
bộ dữ liệu) Do đó, các thuộc tính được chọn lựa sau đó có thể được sử dụng cho các giải thuật học khác nhau; (2) Các đo lường như thông tin, khoảng cách, độc lập hoặc
độ đồng nhất thường có chi phí “rẻ” hơn so với đo lường độ chính xác của một lớp, vì vậy phương pháp filter có thể cho ra tập thuộc tính được chọn lựa nhanh hơn; và (3)
Do tính chất giản đơn của các đo lường cũng như độ phức tạp thời gian của các đo lường này thường là thấp, nên phương pháp filter có thể được sử dụng trong việc xử lý các bộ dữ liệu kích cỡ lớn Tuy nhiên, các thuộc tính được chọn lựa bởi phương pháp fitler không cho phép các giải thuật học hiệu chỉnh lại các sai số (do nó chọn lựa thuộc tính dựa trên một số tiêu chí của bộ dữ liệu mà không dựa trên độ chính xác của kết quả học) do đó kết quả của phân lớp đôi khi có độ chính xác không cao
Trang 28Chương 3: Một số giải thuật trích chọn thuộc tính
Nội dung của chương 3 sẽ trình bày một số giải thuật tiêu biểu được sử dụng trong trích chọn thuộc tính Các giải thuật này được xem xét dưới quan điểm chiến lược tìm kiếm nào được sử dụng trong giải thuật đó: (i) Tìm kiếm toàn bộ, (ii) Tìm kiếm theo kinh nghiệm và (iii) Tìm kiếm xác suất Chúng ta cũng nghiên cứu một vài phương pháp khác: phương pháp trọng số thuộc tính (feature weighting method), phương pháp lai (hybrid method) và phương pháp lớn dần (incremental method) Hình 3.1[3, 5] dưới đây thể hiện việc kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm trong chọn lựa thuộc tính
Hướng tìm kiếm Chiến lược tìm kiếm
Toàn bộ Kinh nghiệm Không xác định
Forward Classic:
C1 Consistency:
C3 Accuracy:
C5
Classic:
C2 Consistency:
C4 Accuracy:
C6
Classic: × Consistency: × Accuracy: ×
Backward Classic:
C7 Consistency:
C9 Accuracy:
C11
Classic:
C8 Consistency:
C10 Accuracy:
C12
Classic: × Consistency: × Accuracy: ×
Random Classic: ×
Consistency: × Accuracy: ×
Classic:
C13 Consistency:
C15
Classic: C14
Consistency: C16
Trang 29Accuracy:
C17
Accuracy: C18
Hình 3 1: Kết hợp giữa chiến lược tìm kiếm và hướng tìm kiếm trong chọn lựa thuộc
ra một tập con thỏa mãn tiêu chí đo lường độ ổn định, giải thuật sẽ dừng lại Bỏ qua
độ phức tạp thời gian của giải thuật khi kiểm tra độ ổn đinh, giải thuật Focus cần tạo
ra tập con nhằm mục đích tìm ra tập con m thuộc tính bé nhất thỏa mãn tiêu chí
ổn định Khi m không nhỏ (Ví dụ m>N/2), thì chi phí thời gian chạy giải thuật là rất lớn Dưới đây là pseudo-code của phương pháp Focus
Focus
Input: F – all feature x in data D,
U – inconsistency rate as evaluation measure
Initialize: S= {}
For i=1 to N
For each subset S of size i
If CalU(S,D) = 0 /* CalU(S,D) return inconsistency */ Return S
Output: S – minimum subset satisfies U
3.1.2 Phương pháp ABB
Được Liu đưa ra năm 1998, ABB là viết tắt của cụm từ automated Branch and Bound algorithm Chữ tự động (automated) ở đây có nghĩa là cận (bound) được xác
Trang 30định một cách tự động, điều này không giống như giải thuật nhánh và cận cổ điển, cận phải được xác định trước Dưới đây thể hiện Psuedo-code của giải thuật ABB
ABB Algorithm
Input: S – all feature x in data D,
U – inconsistency rate as evaluation measure,
For each feature x in S {
S1 = S – x /* remove one featue at a time */
enque(Q,S1) } While not Empty(Q) {
S2 = deque (Q);
If (S2 is legitimate ^ CalU(S2,D) ≤ δ)
L=append(S2,L) ABB(S2,D) }
Smin = the minimum subset(x) in L sastifing U
Output: Smin
Giải thuật ABB bắt đầu với một tập tất cả các thuộc tính, ABB thực hiện chiến lược tìm kiếm theo chiều rộng Tại mỗi bước giải thuật lần lượt loại bỏ một thuộc tính cho đến khi không còn một thuộc tính nào có thể được loại bỏ mà vẫn thỏa mãn tiêu chí độ ổn định ABB thực hiện việc mở rộng không gian tìm kiếm cũng giống như là việc cắt tỉa một cây Một nhánh bị “tỉa” khi nó không thể phát triển thêm được nữa do việc vi phạm tiêu chí ổn định Khi một nhánh không thể phát triển thêm được nữa thì
Trang 31gốc của nhánh có thể là một trong những “ứng cử viên” cho kết quả của giải thuật Cuối cùng, một tập với số lượng các thuộc tính nhỏ nhất được chọn lựa nếu nó thỏa mãn tiêu chí đo lường U
3.2 Tìm kiếm theo kinh nghiệm
Có rất nhiều phương pháp chọn lựa thuộc tính theo kinh nghiệm Nhìn chung, các phương pháp này đều là sự đánh đổi việc tìm ra một tập con tốt nhất, với việc tìm ra một tập con tốt có thể chấp nhận được ở chừng mực nào đó nhưng có thời gian thực hiện nhanh hơn Mặc dù, mục đích của các phương pháp tìm kiếm theo kinh nghiệm vẫn là tìm ra một tập con tối ưu
Phương pháp đơn giản nhất trong các phương pháp tìm kiếm theo kinh nghiệm là
“trích” ra một bộ phân lớp và thực hiện việc chọn lựa các thuộc tính bằng cách sử dụng bộ phân lớp được tạo ra trước đó Dưới đây là pseudo-code của phương pháp tìm kiếm theo kinh nghiệm Wrap1:
bộ dữ liệu cần phân lớp
Một phương pháp phức tạp hơn trong việc sử dụng bộ phân lớp nhằm tìm ra các thuộc tính tốt nhất là việc sử dụng phương pháp chọn lựa thuộc tính tiến hoặc lùi (forward/backward selection) Kết hợp với việc sử dụng độ chính xác của bộ phân lớp như một tiêu chí quyết định xem một thuộc tính có được chọn lựa vào tập kết quả tại mỗi lần thêm/loại bỏ thuộc tính hay không Một giải thuật chọn lựa thuộc tính theo hướng tiến, tuần tự sẽ thực hiện như sau: Bắt đầu với một tập trống các thuộc tính, tại
Trang 32mỗi bước lặp (số lần lặp tối đa là N lần) chọn một thuộc tính từ tập các thuộc tính chưa được chọn lựa, sao cho khi thêm thuộc tính này vào bộ phân lớp sẽ cho độ chính xác phân lớp tốt hơn so với các thuộc tính đã được chọn lựa trước đó
Dưới đây thể hiện pseudo-code một giải thuật tìm kiếm theo kinh nghiệm sử dụng
tỷ lệ lỗi của bộ phân lớp như một tiêu chí đo lường cho việc quyết định thêm/loại bỏ thuộc tính
Accuracy
Input: D - the training data set;
F - the full set of features;
end
N = N-1;
remove Aindex from S and append it to L
reorganize S from 1 to N until N=1
Trang 33append A1 to L /*Features in L are in original indexes*/
Output: reversed L /*The first Ai in L is the best */
3.3 Tìm kiếm xác suất
Có thể nói rằng các phương pháp xác suất là kết quả của việc các nhà nghiên cứu tiếp tục theo đuổi mục đích tìm kiếm tập con tối ưu mà không muốn thực hiện việc tìm kiếm toàn bộ trong không gian tìm kiếm Không giống như hai phương pháp tìm kiếm theo kinh nghiệm và tìm kiếm toàn bộ được trình bày ở trên, các thuộc tính không tuần tự được loại bỏ/thêm vào từ một tập các thuộc tính cho trước Phương pháp tìm kiếm theo xác suất cho phép tìm kiếm các tập con thuộc tính mà ở đó các tập con này được tạo ra một cách ngẫu nhiên Trong nội dung này chúng ta tìm hiểu hai phương pháp xác suất là (i) LVF (Las Vegas algorithm for Filter feature selection) và (ii) LVW (Las Vegas algorithm for Wrapper feature selection)
3.3.1 Phương pháp LVF
Phương pháp LVF được Liu và Setiono đưa ra vào năm 1996, phương pháp LVF bao gồm một thủ tục có thể tạo ra tạo ra các tập con thuộc tính một cách ngẫu nhiên và một thủ tục nhằm đánh giá xem mỗi tập con được tạo ra có thỏa mãn tiêu chuẩn chọn lựa hay không Dưới đây thể hiện pseudo-code của phương pháp LVF
LVF
Input: maxTries - the maximum number of loops
U - the inconsistency measure
D - a dataset with N features
γ - an allowed inconsistency rate
initialize: list L = {} /* L stores equally good sets */
Trang 34Trong pseudo-code của giải thuật LVF ở trên maxTries là một hằng số liên quan đến số lượng các thuộc tính có trong tập dữ liệu ban đầu, bằng trực quan chúng ta nhận thấy rằng dữ liệu càng có nhiều thuộc tính thì càng khó phân lớp Thông thường maxTries = c x N, trong đó c là một hằng số (c<=N) Giá trị maxTries càng lớn có nghĩa là số lần lặp của giải thuật càng lớn và kết quả của giải thuật cũng tốt hơn Một cách khác để xác định giá trị maxTries trong LVF đó là xác định giá trị maxTries theo không gian tìm kiếm mà người sử dụng muốn LVF thực hiện Chúng ta biết rằng không gian tìm kiếm là 2N, nếu người sử dụng muốn LVF thực hiện việc tìm kiếm trong p% của không gian tìm kiếm thì maxTries=2N x p% Hàm randomSet() yêu cầu một bộ sinh ngẫu nhiên tốt để thực hiện việc phân ngẫu nhiên các tập con thuộc tính khác nhau Có một bộ sinh số ngẫu nhiên tốt cũng có nghĩa là có ít hơn các tập con giống nhau được tạo ra
3.3.2 Phương pháp LVW
LFV là một giải thuật tương đối đơn giản điều này cũng có nghĩa là nó có thể dễ dàng thay đổi được Chúng ta có thể thay đổi một trong hai thủ thục Nếu chúng ta thay đổi thủ tục tạo ra ngẫu nhiên các tập con thuộc tính cũng có nghĩa là chúng ta sẽ không có được giải thuật tìm kiếm ngẫu nhiên Do đó, chúng ta chỉ có thể thay đổi thủ
Trang 35tục đánh giá nếu chúng ta vẫn muốn phương pháp này thuộc vào nhóm các phương pháp chọn lựa thuộc tính dựa trên xác suất Giả sử rằng chúng ta quyết định sử dụng
độ chính xác ước lượng của bộ phân lớp như một tiêu chí đo lường, chúng ta có phương pháp LWF Psuedo-code của phương pháp LVW được thể hiện trong dưới đây
Trong phương pháp LVW các phương pháp thống kê được áp dụng nhằm ước tính
độ chính xác của bộ phân lớp Giá trị maxTries trong LVW được xác định tương tự như trong LVF Tuy nhiên, để chạy giải thuật học (LA) có thể phải thiết lập một vài tham số khác theo yêu cầu của giải thuật học Hàm estimate() được sử dụng trong LVW thay vì hàm CalU() trong LVF, có nhiều cách để thực hiện hàm estimate() và mỗi cách có thể đưa ra những kết quả chọn lựa thuộc tính khác nhau Một điểm khác nhau nữa trong hai phương pháp này là LVF sử dụng tỷ lệ lỗi như một đo lường đánh giá, trong khi đó LVW sử dụng độ chính xác của bộ phân lớp như một đo lường đánh giá
LVW
Input: maxTries - the maximum number of loops
LA - a learning algorithm
D - a dataset with N features
F - a full set of features
Initialize: list L = {} /*L stores sets with equal accuracy*/
for maxTries loops
Trang 36L = append(S,L) end
Output: L /*all equivalently good subsets found by LVW*/
3.4 Phương pháp trọng số thuộc tính
Một trong những phương pháp tiêu biểu nằm trong nhóm các phương pháp trọng
số thuộc tính là Relief Phương pháp này được đề xuất bởi Kira và Rendell vào năm
1992, mục đích ban đầu của phương pháp là nhằm giải quyết một vấn đề thực tế trong phân lớp là mối tương tác quan giữa các thuộc tính (một vài thuộc tính phụ thuộc lẫn nhau trong việc xác định lớp của thực thể) Relief chọn lựa các thuộc tính dựa vào sự tương quan thống kê Mặc dù mục đích của Relief vẫn là chọn lựa thuộc tính nhưng Relief không tạo ra các tập con thuộc tính, và kiểm tra các điều kiện ràng buộc của các tập con này như các phương pháp được trình bày ở trên Thay vì việc tạo ra các tập con thuộc tính Relief tập trung vào việc lấy mẫu các thực thể (sampling) mà không tìm kiếm các tập con thuộc tính Ý tưởng của Relief đó là: các thuộc tính tương quan
là các giá trị có thể phân biệt các thực thể, đó là các giá trị nằm gần lẫn nhau Do đó, hai hàng xóm gần nhau nhất (mỗi thực thể thuộc về một lớp khác nhau) đối với một thực thể (I) được đưa ra, một là near-hit (H) và một là near-miss (J) Về ý tưởng, một thuộc tính là liên quan nếu giá trị của nó là tương tự giữa I và near-hit, và khác biệt giữa I và near-miss Trên thực tế việc kiểm tra này có thể được thực hiện bằng cách tính khoảng cách tới một giá trị thuộc tính: khoảng cách này nên là bé nhất đối với I
và H và lớn nhất đối với I và J Khoảng cách của mỗi giá trị thuộc tính đối với mỗi thực thể được lấy ra ngẫu nhiên, được tổng hợp trong véc tơ w (weight), véc tơ này có
số chiều bằng số lượng thuộc tính Những thuộc tính liên quan là những thuộc tính có giá trị vector w vượt quá ngưỡng tương quan r Ngưỡng tương quan này có thể được xác định bằng cách sử dụng phương pháp thống kê để ước lượng khoảng Cỡ mẫu m
có thể có thể biến đổi và một giá trị m lớn hơn có nghĩa là có một ước lượng xấp xỉ tin cậy hơn
Dưới đây là thể hiện pseudo-code của phương pháp Relief:
Relief
Input: x - features
m - number of instances sampled
Trang 37τ - adjustable relevance threshold
Output: w greater than τ
Trong pseudo-code của phương pháp Relief ở trên, hàm diff() tính khoảng cách giữa các giá trị của một số thuộc tính với hai thực thể Đối với các thuộc tính rời rạc, giá trị khoảng cách này nhận cả giá trị 1 và 0 (1 nếu các giá trị là khác biệt và 0 nếu các giá trị là như nhau), tuy nhiên đối với các thuộc tính liên tục thì giá trị khoảng cách nhận giá trị trong khoảng [-1;1]
Phương pháp Relief có thể ứng dụng được với cả dữ liệu rời rạc và dữ liệu liên tục Tuy nhiên phương pháp cũng có một số nhược điểm đó là: (1) không hiệu quả đối với
dữ liệu chỉ có hai lớp, (2) không “nhậy” với các dữ liệu thừa
3.5 Phương pháp lai
Các chiến lược tìm kiếm khác nhau yêu cầu số lượng các tài nguyên khác nhau và cũng cho các kết quả khác nhau Ý tưởng cho sự xuất hiện của phương pháp lai là chúng ta liệu có thể tận dụng các ưu điểm cũng như tránh các nhược điểm của mỗi phương pháp? Focus là một giải thuật chọn lựa thuộc tính tiến, ABB là giải thuật chọn lựa thuộc tính lùi Do đó, khi số lượng thuộc tính liên quan là quá ít thì giải thuật Focus là một lựa chọn phù hợp, tuy nhiên khi số lượng thuộc tính liên quan là nhiều thì ABB lại là lựa chọn tốt hơn Tuy nhiên, khi chúng ta không có thông tin gì về số lượng thuộc tính liên quan chúng ta lại cần tới sự kết hợp của cả hai phương pháp – phương pháp lai Một phương pháp lai khác là việc kết hợp LVF và ABB, phương pháp này được đặt tên là QBB (quick Branch and Bound) Phương pháp này chạy giải
thuật LVF n lần, sau đó sử dụng các tập con được chọn từ việc thực hiện giải thuật