Hướng tiếp cận này làm tăng hiệu năng thu nhận tri thức trong các ngành như tin sinh, xử lý dữ liệu web, xử lý tiếng nói, hình ảnh,...Phương pháp trích chọn có một số ưu điểm nổi trội sa
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐỒNG THỊ NGỌC LAN
NGHIÊN CỨU, XÂY DỰNG PHƯƠNG PHÁP TRÍCH CHỌN THUỘC TÍNH NHẰM LÀM TĂNG HIỆU QUẢ
PHÂN LỚP ĐỐI VỚI DỮ LIỆU ĐA CHIỀU
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI, 2012
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐỒNG THỊ NGỌC LAN
NGHIÊN CỨU, XÂY DỰNG PHƯƠNG PHÁP TRÍCH CHỌN THUỘC TÍNH NHẰM LÀM TĂNG HIỆU QUẢ
PHÂN LỚP ĐỐI VỚI DỮ LIỆU ĐA CHIỀU
Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Nguyễn Hà Nam
HÀ NỘI, 2012
Trang 3MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT 3
DANH MỤC CÁC BẢNG 4
DANH MỤC HÌNH VẼ 5
MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ TRÍCH CHỌN THUỘC TÍNH 8
1.1 Giới thiệu khai phá dữ liệu và trích chọn thuộc tính 8
1.2 Lựa chọn thuộc tính và bài toán phân lớp 10
1.3 Phương pháp lựa chọn thuộc tính 11
1.3.1 Tìm kiếm 13
1.3.2 Đánh giá 14
1.3.3 Các mô hình lựa chọn thuộc tính 15
1.4 Một số thuật toán lựa chọn thuộc tính 18
1.4.1 Tìm kiếm toàn bộ 18
1.4.2 Tìm kiếm theo kinh nghiệm 20
1.4.3 Tìm kiếm xác suất 20
1.4.4 Phương pháp trọng số thuộc tính 23
1.4.5 Phương pháp lai 24
1.4.6 Phương pháp lớn dần 25
CHƯƠNG 2: THUẬT TOÁN RANDOM FOREST VÀ GIẢI THUẬT DI TRUYỀN 27
2.1 Giới thiệu thuật toán Random Forest 27
2.2 Phương pháp Bootstrap và Bagging 28
2.2.1 Phương pháp Bootstrap [29] 28
2.2.2 Phương pháp Bagging [29] 28
2.3 Thuật toán Random Forest 29
2.4 Một số đặc điểm của RF 32
2.4.1 OOB 32
2.4.2 Thuộc tính quan trọng 32
2.5 Giải thuật di truyền [32] 33
2.5.1 Giới thiệu 33
2.5.2 Nội dung giải thuật di truyền 34
CHƯƠNG 3: PHƯƠNG PHÁP ĐỀ XUẤT 36
3.1 Giới thiệu 36
3.2 Cơ sở lí luận của phương pháp đề xuất 37
Trang 43.3 Kiến trúc hệ thống đề xuất 37
3.4 Nội dung phương pháp đề xuất .38
3.5 Hoạt động của hệ thống đề xuất 39
3.6 Sơ đồ khối phương pháp đề xuất 43
CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 45
4.1 Môi trường thực nghiệm 45
4.2 Mô tả chương trình 45
4.3 Kết quả thực nghiệm 46
4.3.1 Bộ dữ liệu ung thư dạ dày(Stomach) 46
4.3.1.1 Mô tả bộ dữ liệu Stomach 46
4.3.1.2 Kết quả và phân tích thực nghiệm trên bộ dữ liệu Stomach 47
4.3.1.3 Nhận xét 54
4.3.2 Bộ dữ liệu ung thư ruột kết Colon Turmo 55
4.3.2.1 Mô tả dữ liệu 55
4.3.2.2 Kết quả thực nghiệm với bộ dữ liệu Colon Turmo 56
4.3.2.3 Nhận xét: 60
KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 67
Trang 5DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
KDD Knowledge Discovery in Database LDA Linear discriminant analysis PCA Principal components analysis OOB Out- of- Bag
RF Random Forest
tt Thuộc tính
Trang 6DANH MỤC CÁC BẢNG
Bảng 4.1 Bộ dữ liệu Stomach 46 Bảng 4.2 Kết quả đoán nhận của RF khi chạy 20 lần trên Stomach với số cây lần lượt bằng
100,300,500,800,1000 .47 Bảng 4.3 Giá trị trung bình, độ lệch chuẩn khi chạy RF 20 lần trên bộ dữ liệu Stomach với số cây lần lượt bằng 100,300,500,800,1000 .48 Bảng 4.4 Thời gian (phút) huấn luyện và kiểm thử khi chạy RF 20 lần trên bộ dữ liệu Stomach với số cây lần lượt bằng 100,300,500,800,1000 .48 Bảng 4.5 Thời gian (phút) trung bình,nhỏ nhất, lớn nhất khi huấn luyện và kiểm tra RF 20 lần trên Stomach với
số cây lần lượt bằng 100,300,500,800,1000 .49 Bảng 4.6 Kết quả đoán nhận của RF khi chạy 20 lần trên Stomach tối ưu với số cây lần lượt bằng
100,300,500,800,1000 .50 Bảng 4.7 Giá trị trung bình, độ lệch chuẩn khi chạy RF 20 lần trên Stomach tối ưu với số cây lần lượt bằng 100,300,500,800,1000 .51 Bảng 4.8 Thời gian (phút) huấn luyện, kiểm thử khi chạy RF 20 lần trên Stomach tối ưu với số cây lần lượt bằng 100,300,500,800,1000 .51 Bảng 4.9 Thời gian trung bình,nhỏ nhất, lớn nhất khi huấn luyện và kiểm tra RF 20 lần trên Stomach tối ưu với
số cây lần lượt bằng 100,300,500,800,1000 .52 Bảng 4.10 Bộ dữ liệu ColonTumor 56 Bảng 4.11 Kết quả đoán nhận của RF khi chạy 20 lần trên Colon Tumor với số cây lần lượt bằng 100,300,500 56 Bảng 4.12 Giá trị trung bình, độ lệch chuẩn khi chạy RF 20 lần trên bộ dữ liệu Colon Tumor với số cây lần lượt bằng 100,300,500 .57 Bảng 4.13 Thời gian (phút) huấn luyện và kiểm thử khi chạy RF 20 lần trên bộ dữ liệu Colon Trumor với số cây lần lượt bằng 100,300,500 .57 Bảng 4.14 Thời gian (phút) trung bình,nhỏ nhất, lớn nhất khi huấn luyện và kiểm tra RF 20 lần trên Colon Tumor với số cây lần lượt bằng 100,300,500 .58 Bảng 4.15 Kết quả đoán nhận của RF khi chạy 20 lần trên Colon Tumor tối ưu với số cây lần lượt bằng
100,300,500 .59 Bảng 4.16 Giá trị trung bình, độ lệch chuẩn khi chạy RF 20 lần trên Colon Tumor tối ưu với số cây lần lượt bằng 100,300,500 .59 Bảng 4.17 Thời gian (phút) huấn luyện, kiểm thử khi chạy RF 20 lần trên Colon Tumor tối ưu với số cây lần lượt bằng 100,300,500 .59 Bảng 4.18 Thời gian trung bình,nhỏ nhất, lớn nhất khi huấn luyện và kiểm tra RF 20 lần trên Colon Tumor tối
ưu với số cây lần lượt bằng 100,300,500 60
Trang 7DANH MỤC HÌNH VẼ
Hình 1.1: Các thành phần chính của lựa chọn thuộc tính[19] 13
Hình 1.2: Mô hình Filter [16] 16
Hình 1.3: Mô Hình Wrapper [16] 17
Hình 2.1: Random Forest[29] 27
Hình 2.2.1 Ví dụ về phương pháp bootstrap[29] 28
Hình 2.3 Các bước trong Random Forest[3] 31
Hình 2.4.1 Sử dụng OOB ước lượng lỗi[7] 32
Hình 3.1: Mô hình đề xuất theo phương pháp wrapper 36
Hình 3.3: Kiến trúc cơ bản của hệ thống 38
Hình 3.5: Mô tả kiểm chứng chéo[22] 41
Hình 3.6: Sơ đồ khối phương pháp đề xuất .43
Hình 4.1 Thời gian lựa chọn được bộ thuộc tính mới và độ phù hợp của bộ thuộc tính mới .50
Hình 4.2 Biểu đồ so sánh kết quả chạy RF 20 lần trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 100 .52
Hình 4.3 Biểu đồ so sánh kết quả chạy RF 20 lần trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 300 .52
Hình 4.4 Biểu đồ so sánh kết quả chạy RF 20 lần trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 500 .53
Hình 4.5 Biểu đồ so sánh kết quả chạy RF 20 lần trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 800 .53
Hình 4.6 Biểu đồ so sánh kết quả chạy RF 20 lần trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 1000 .53
Hình 4.7 Biểu đồ so sánh kết quả chạy RF 20 lần trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 100,300,500,800,1000 .54
Hình 4.8 Biểu đồ so sánh thời gian chạy trung bình của 20 lần chạy RF trên bộ dữ liệu mới và bộ dữ liệu ban đầu với số cây bằng 100,300,500,800,1000 .54
Hình 4.9 Thời gian lựa chọn được bộ thuộc tính mới .58
Hình 4.10 Kết quả chạy RF 20 lần trên bộ thuộc tính Colon Tumor ban đầu và sau khi tối ưu với số cây là 100 61
Hình 4.11 Kết quả chạy RF 20 lần trên bộ thuộc tính Colon Tumor ban đầu và sau khi tối ưu với số cây là 300 61
Hình 4.12 Kết quả chạy RF 20 lần trên bộ thuộc tính Colon Tumor ban đầu và sau khi tối ưu với số cây là 300 62
Hình 4.13 Kết quả chạy RF 20 lần trên bộ thuộc tính Colon Tumor ban đầu và sau khi tối ưu với số cây lần lượt là 100,300,500 62
Hình 4.14 Biểu đồ so sánh thời gian huấn luyện trung bình của 20 lần chạy RF trên bộ dữ liệu Colon Tumor mới và bộ dữ liệu Colon Tumor ban đầu với số cây bằng 100,300,500 .63
Hình 4.15 Biểu đồ so sánh thời gian kiểm tra trung bình của 20 lần chạy RF trên bộ dữ liệu Colon Tumor mới và bộ dữ liệu Colon Tumor ban đầu với số cây bằng 100,300,500 .63
Trang 8Hiện nay phần lớn các thuật toán phân lớp đã phát triển chỉ có thể giải quyết được một lượng số liệu giới hạn cũng như một độ phức tạp dữ liệu biết trước Trong khi đó nhờ sự phát triển mạnh mẽ của khoa học kỹ thuật khối lượng dữ liệu mà chúng ta thu thập được ngày càng phong phú và đa dạng Hơn nữa tuỳ thuộc vào từng loại dữ liệu
và ứng dụng cụ thể mà mỗi thuật toán có độ tốt xấu không giống nhau Các nghiên cứu cho thấy có rất nhiều hướng cải tiến các thuật toán phân lớp như áp dụng các thuật toán kết hợp (ensemble method), các thuật toán dựa vào phương pháp nhân (kernel-based method), hoặc áp dụng các phương pháp trích chọn thuộc tính (feature extraction/ selection method) Trong các phương pháp kể trên phương pháp trích chọn thuộc tính trở nên nổi trội và có một số ưu điểm phù hợp trong việc xử lý dữ liệu có số lượng thuộc tính lớn (vài nghìn đến vài trăm nghìn thuộc tính) nhưng đồng thời chỉ có một số lượng khá nhỏ các mẫu phân tích (vài chục hoặc vài trăm) Trong khai phá dữ liệu thì phương pháp trích chọn đóng một vai trò quan trọng để trích chọn và chuẩn bị
dữ liệu Hướng tiếp cận này làm tăng hiệu năng thu nhận tri thức trong các ngành như tin sinh, xử lý dữ liệu web, xử lý tiếng nói, hình ảnh, Phương pháp trích chọn có một
số ưu điểm nổi trội sau: Thứ nhất, phương pháp này giúp giảm số lượng các thuộc tính của dữ liệu, điều này giúp giảm thời gian tính toán của thuật toán phân lớp Thứ hai, phương pháp trích chọn đặc trưng cũng giúp tìm ra các thuộc tính đặc trưng giúp cho việc nhận dạng đối tượng hiệu quả hơn Thứ ba, nó giúp loại bỏ các thuộc tính thừa và những thuộc tính gây nhiễu có ảnh hưởng đến kết quả đoán nhận Vì những lí do đó,
luận văn đã chọn đề tài “Nghiên cứu, xây dựng phương pháp trích chọn thuộc tính nhằm làm tăng hiệu quả phân lớp đối với dữ liệu đa chiều” với mong muốn tìm
hiểu và nghiên cứu về lĩnh vực này
Mục tiêu nghiên cứu
Mục tiêu của đề tài là nhằm nghiên cứu và tìm hiểu các phương pháp trích chọn thuộc tính - một công việc quan trọng trong việc chuẩn bị và xử lý số liệu trong khai
Trang 9phá dữ liệu Dựa vào đó xây dựng mô hình lựa chọn thuộc tính tối ưu giúp giảm kích
cỡ của dữ liệu theo hướng chỉ giữ lại các thuộc tính đặc trưng, loại bỏ những thuộc tính không liên quan và những thuộc tính nhiễu nhằm tăng tốc các thuật toán phân lớp cải thiện chất lượng dữ liệu và vì vậy sẽ tăng hiệu suất của việc khai phá dữ liệu
Đối tượng, phạm vi, phương pháp nghiên cứu
Đối tượng nghiên cứu của luận văn là tìm hiểu về các phương pháp lựa chọn thuộc tính Bài toán được phát biểu như sau: đối với bộ số liệu lớn thu được gồm hàng trăm đến hàng nghìn bản ghi và mỗi bản ghi lại gồm hàng nghìn các thuộc tính Các bản ghi được phân thành các lớp cho trước Yêu cầu đặt ra là tìm các thuộc tính hữu ích, tối ưu nhất, loại ra các thuộc tính ít liên quan để vẫn đảm bảo việc phân lớp đúng các bản ghi Luận văn đi sâu nghiên cứu giải thuật di truyền [32] và thuật toán Random Forest [8] Từ tìm hiểu đó, luận văn đề xuất một thuật toán tựa giải thuật di truyền với mong muốn thuật toán đề xuất lựa chọn được các thuộc tính hữu ích để nâng cao kết quả dự đoán của các thuật toán phân lớp cụ thể là thuật toán Random
Forest
Bố cục luận văn
o Mở đầu: Phần mở đầu giới thiệu tên luận văn và trình bày lí do chọn đề
tài của luận văn cũng như xác định mục tiêu, đối tượng, phạm vi và phương pháp nghiên cứu của luận văn
o Chương 1:
Trình bày các vấn đề cơ sở lý thuyết của luận văn, tổng quan về khai phá
dữ liệu và trích chọn thuộc tính
o Chương 2:
Trình bày nội dung chính của thuật toán phân lớp sử dụng trong luận văn
là thuật toán Random Forest
o Chương 3:
Trình bày phương pháp đề xuất và hướng giải quyết của luận văn
o Chương 4:
Trình bày quá trình thực nghiệm và đánh giá kết quả thực nghiệm
o Kết luận: Phần này trình bày những vấn đề đã được giải quyết trong
luận văn, những vấn đề còn tồn tại và hướng giải quyết trong thời gian
tới
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ TRÍCH CHỌN
THUỘC TÍNH
1.1 Giới thiệu khai phá dữ liệu và trích chọn thuộc tính
Khai phá dữ liệu là một khái niệm ra đời từ những cuối những năm 80 của thế
kỷ trước Nó bao hàm một loạt các kỹ thuật nhằm phát hiện các thông tin có giá trị tiềm ẩn trong tập các dữ liệu lớn Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các quy luật trong tập dữ liệu Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) [14] để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn Trong đó, khai phá dữ liệu
là một bước đặc biệt quan trọng trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt
để chiết xuất ra các đặc trưng từ dữ liệu [14]
Trong khai phá dữ liệu thì phương pháp trích chọn thuộc tính đóng một vai trò quan trọng trong tiền xử lý số liệu Phương pháp trích chọn sẽ giúp giảm kích cỡ của không gian dữ liệu đặc trưng, loại bỏ những thuộc tính không liên quan và những thuộc tính nhiễu Phương pháp này có ảnh hưởng ngay lập tức đến các ứng dụng như thuật toán tăng tốc độ khai phá dữ liệu, cải thiện chất lượng dữ liệu và vì vậy tăng hiệu xuất khai phá dữ liệu, kiểm soát được kết quả của thuật toán
Các kĩ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính:
- Kĩ thuật khai phá dữ liệu mô tả: có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Các kĩ thuật này gồm có:
phân cụm (clustering), tóm tắt (summerization), trực quan hóa (visualiztion), phân tích sự phát triển và độ lệch (Evolution and deviation analyst), phân tích luật kết hợp (association rules)
- Kĩ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời Các kĩ thuật này gồm có: phân lớp
(classification), hồi quy (regression)
Tuy nhiên, luận văn tập trung tìm hiểu 3 nhiệm vụ chính sau [12]:
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 phân biệ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
Trang 11(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 giả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 tên lớp 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 tạo ra nhằm mục đích để sau đó tiến hành phân lớp các đối tượng
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 đó, việc tìm ra các luật IF-THEN nhằm đư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 nhất đối với người sử dụng
Có thể phân loại chọn luật thành 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 chọn luật còn lại là việc khai phá các luật quan hệ (association 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 [27] 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 giai đoạn trong chu trình phát hiện tri thức và khai phá dữ liệu Các giai đoạn khác trong chu trình này bao gồm: a)
Trang 12Kho 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
1.2 Lựa chọn 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à
Trang 13thu 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 vì những lí do sau: Có nhiều thuộc tính 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 là khác nhau 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 Thêm vào
đó, với sự có mặt của dữ liệu thừa hoặc dữ 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 sẽ 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 Sử dụng lựa 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 phần tiếp theo chúng ta sẽ đi sâu vào tìm hiểu các phương pháp để lựa chọn thuộc tính
1.3 Phương pháp lựa chọn thuộc tính
Quá trình làm giảm bớt số chiều của mẫu và theo đó còn gọi là nén tập dữ liệu, thông qua trích chọn đặc trưng (trích chọn thuộc tính và lựa chọn thuộc tính) là bước
cơ bản nhất trong việc tiền xử lý dữ liệu Lựa chọn thuộc tính có thể coi là một phần vốn có của trích chọn thuộc tính ví dụ như phương pháp phân tích thành phần cơ bản hoặc thậm chí là một thiết kế xử lý thuật toán ví dụ như trong thiết kế cây quyết định Tuy nhiên, lựa chọn thuộc tính thường là một bước cô lập riêng biệt trong một chuỗi các xử lý [14]
Trang 14Có thể định nghĩa lựa chọn thuộc tính là một quá trình tìm ra M thuộc tính từ tập
N thuộc tính ban đầu, như vậy phải xác định tiêu chuẩn lựa chọn thuộc tính [19] Theo cách này, kích cỡ của không gian đặc trưng được rút ngắn tối đa theo một tiêu chuẩn định lượng nhất định Khi kích cỡ của một lĩnh vực được mở rộng, số phần tử của tập
N sẽ tăng lên, vì vậy việc tìm ra một tập đại diện tốt nhất thường gặp khó khăn và có nhiều vấn đề liên quan đến tập được chọn Nhìn chung, một thuật toán lựa chọn gồm 4 bước cơ bản: Sinh tập con, lượng giá tập con, kiểm tra điều kiện dừng và xác nhận kết
quả
Quá trình sinh tập con là một thủ tục tìm kiếm, về cơ bản nó sinh ra những tập con dùng cho việc lượng giá Gọi N là số các đại diện (đặc trưng) của tập dữ liệu gốc ban đầu, thì tổng số các tập con có thể được sinh ra sẽ là 2n
2n tập này sẽ liệt kê toàn
bộ các tập con của không gian tìm kiếm Mỗi tập con được sinh ra bằng thuật toán cần được lượng giá trị bằng một tiêu chuẩn lượng giá trị nhất định và được so sánh với tập con tốt nhất đã tìm được trước nó Nếu không có điều kiện dừng phù hợp, thuật toán này có thể sẽ chạy đến khi duyệt hết các tập con trong không gian tìm kiếm Điều kiện
dừng của một quá trình sinh phải rơi vào một trong số các trường hợp sau:
- Toàn bộ các phần tử của tập hợp đều được chọn
- Các phần tử chưa chọn bị lặp lại
- Sinh thêm một tập con nữa cũng không cho kết quả tốt hơn
- Đã chọn đủ số tập con thoả mãn điều kiện tiêu chuẩn
Tập con tốt nhất được chọn ra phải được lượng giá trong những trường hợp khác
nhau và nó cùng với tập gốc phải biểu diễn được với dữ liệu thực tế
Lựa chọn các thuộc tính có thể tiến hành theo hai cách: cách thứ nhất là xếp loại các thuộc tính theo một tiêu chuẩn nào đó và lấy ra k thuộc tính đầu tiên, do đó cách này là dựa vào ngưỡng để chọn thuộc tính Cách thứ hai là chọn ra tập con nhỏ nhất
mà không làm giảm đi quá trình học, do đó với cách này tự động xác định số lượng thuộc tính
Lựa chọn thuộc tính có thể dựa vào các mô hình, các chiến lược tìm kiếm, thước
đo chất lượng thuộc tính và ước lượng Có ba loại mô hình như Filter, Wrapper, và Embedded
Các chiến lược tìm kiếm bao gồm: mở rộng, thu nhỏ, động, nhánh cận, ngẫu nhiên Ước lượng của việc chọn lựa thuộc tính bao gồm hai nhiệm vụ: một là so sánh hai giai đoạn: trước và sau khi lựa chọn thuộc tính Hai là so sánh hai thuật toán lựa chọn thuộc tính [2]
Tóm lại lựa chọn thuộc tính được xem như là sự tổng hợp của ba thành phần chính: phương pháp tìm kiếm, kỹ thuật đánh giá, chọn lựa mô hình Hình 1.1 dưới đây thể hiện lựa chọn thuộc tính theo 3 thành phần nói trên [19]
Trang 15Hình 1.1: Các thành phần chính của lựa chọn thuộc tính[19]
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 kiế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
Đánh giá
Đo lường chính xác
Đo lường đồng nhất
Đo lường thông tin
Đo lường phụ thuộc
Đo lường khoảng cách
Tìm kiếm kinh nghiệm
Trang 16Giả sử ban đầu chúng ta 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ì thời gian trung bình để 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 chiến lược 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)
1.3.2 Đánh giá
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 cách đánh giá Ví dụ, đánh giá có thể được đo lường theo những khía cạnh: các thuộc tính được chọn lựa có làm tăng độ chính xác của bộ phân lớp hay không và các thuộc tính được chọn lựa có giúp làm đơn giản quá trình học hay không… Sau đây là một số độ đo thường được sử dụng trong lựa chọn thuộc tính
a Độ đo 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 người đó 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
b Độ đo khoảng cách
Kiểu độ đo này cũng được biết đến như là độ đo khác biệt hoặc độ đo phân biệt
Độ đo 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
c Độ đo phụ thuộc
Độ đo này cũng được biết đến như là độ đo mối quan hệ, độ đo mối liên hệ Độ
đo 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
Trang 17giá 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 được chọn thuộc về lớp C
1.3.3 Các mô hình lựa chọn thuộc tính
Về cơ bản có thể phân loại các phương pháp lựa chọn thuộc tính theo các cách tiếp cận khác nhau là Filter , Wrapper và Embedded [16] Các mô hình này được trình bày chi tiết trong tài liệu [16,5]
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 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ó đượ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 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 độ đo khoảng cách và độ đo 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
a Mô hình Fitler
Trong ngữ cảnh của khai phá dữ liệu thì thông thường bộ dữ liệu 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 đó Dưới đây, chúng ta sẽ xem xét mô hình chọn lựa thuộc tính Filter Các giai đoạn của mô hình Filter được thể hiện trong hình 1.2 [16] dưới đây
Trang 18Hình 1.2: Mô hình Filter [16]
Mô hình Filter 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ư thô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
Mô hình chọn lựa thuộc tính Filter có một số đặc điểm sau: 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; Các độ đo 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à do tính chất giản đơn của các độ đo cũng như độ phức tạp thời gian của các độ đo 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) cho nên kết quả của phân lớp đôi khi có độ chính xác không cao
b 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 trongcá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
Trang 19thuộc tính liên quan và loại bỏ các thuộc tính nhiễu thì chúng ta có thể nâng cao hiệu quả phân lớp mà cụ thể là nâng cao độ chính xác của bộ phân lớp [16]
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 1.3 [16] dưới đây thể hiện mô hình Wrapper
độ chính xác dự báo trên bộ dữ liệu kiểm tra
Độ 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)
c Mô hình Embedded
Mô hình cuối cùng là Embedded [5, 11, 25 ] Mô hình này khác với hai mô hình trên ở cách mà module lựa chọn thuộc tính và module học tương tác vớinhau Mô hình Embedded là sự tích hợp, nhúng kỹ thuật lựa chọn thuộc tính vào trong quá trình xây
Trang 20dựng mô hình học Module lựa chọn thuộc tính và module học được lồng vào nhau Embedded cũng sử dụng kết quả của mobule học để đánh giá mức độ quan trọng của các thuộc tính tuy nhiên nó sử dụng ngay các tính chất bên trong của thuật toán học chứ không chỉ dựa vào kết quả Để thực hiện được mô hình embedded người phát triển cần tìm hiểu cấu trúc của thuật toán học, xác định các tham số có thể sử dụng cho việc đánh giá mức độ quan trọng của thuộc tính Nói cách khác, các thuộc tính được xếp hạng ngay trong quá trình thực thi của việc học, không phải sau khi việc học hoàn thành như thuật toán Wrapper Thực nghiệm cho thấy, trong nhiều trường hợp Embedded mang lại hiệu quả cao hơn hai mô hìnhtrên, đồng thời có thời gian thực thi
ít hơn
1.4 Một số thuật toán lựa chọn thuộc tính
Các thuật toán lựa chọn thuộc tính được xét dưới góc độ chiến lược tìm kiếm nào được sử dụng trong giải thuật đó: Tìm kiếm toàn bộ, Tìm kiếm theo kinh nghiệm
và Tìm kiếm xác suất Ngoài ra 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) Các thuật toán này được trình bày chi tiết trong các tài liệu [5, 15, 17, 25]
1.4.1 Tìm kiếm toàn bộ
a Phương pháp Focus
Phương pháp này do Almuallim và Dietterich đưa ra vào năm 1991[17] Phương pháp này xem xét tất cả các kết hợp có thể của N các thuộc tính, bắt đầu từ một tập con rỗng các thuộc tính: (1𝑁) là tập con thứ nhất, (2𝑁) là tập con thứ hai, Khi Focus tìm 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 (𝑚 𝑖𝑁
1 ) 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à giả mã của phương pháp Focus [17]
Focus
Input:F – all feature in data D,
U – inconsistency rate as evaluation meansure
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
Trang 21b Phương pháp AAB
Được Liu đưa ra năm 1998, ABB là viết tắt của cụm từ automated Branch and Bound algorithm [17] Chữ tự động (automated) ở đây có nghĩa là cận (bound) được xác đị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
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ì gố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
Dưới đây thể hiện giả mã của giải thuật ABB [17]
ABB Algorithm
Input : S – all feature x in data D,
U – inconsistency rate as evaluation measure,
Q – an empty queue, S1,S2 – subsets
Initialize :
L = {S}s
δ = CalU(S,D)
ABB(S,D)
For each feature x in S {
S1=S-X /*remove one feature 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
Trang 221.4.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à giả mã của phương pháp tìm kiếm theo kinh nghiệm Wrap1[17]
1.4.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 sẽ tìm hiểu 2 phương pháp tìm kiếm theo xác suất là (a) Phương pháp LVF (Las Vegas algorithm for Filter feature selection) và (b) LVW (Las Vegas algorithm for Wrapper feature selection) [5]
(a) 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
Trang 23thủ 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 giả mã của phương pháp LVF [5]
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*/
C best =N
for maxTries loops begin
S=randomSet(seed) C=#(S) /*the cardinality of S*/
If(C<C best ^CalU(S,)<γ)
S best =S
C best =C L={S} /*L is reinitialized*/
Elseif(C=C best ^CalU(S,D)<γ)
L=append(S,L)
end Output:L /*all equivalently good subsets found by LVF*/
Kết quả của hai thủ tục trong giải thuật LVF là một tập con thuộc tính tối ưu Đo lường được sử dụng để đánh giá trong LVF là tỷ lệ lỗi không ổn định (inconsistency) Giải thuật LVF này có hai tham số quan trọng đó là: Tỷ lệ lỗi của dữ liệu khi sử dụng tất cả các thuộc tính, số lượng tối đa các tập con thuộc tính được tạo ra ngẫu nhiên Trong giả mã 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%
Trang 24(b) Phương pháp LVW
LVF 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ủ tụ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 LVW Giả mã của phương pháp LVW được thể hiện dưới đây [5]
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*/
Trang 251.4.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[25], 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ể 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 giả mã của phương pháp Relief[25]
Input: x - features
m - number of instances sampled
τ - adjustable relevance threshold
initialize: w = 0
for i 1 to m begin randomly select an instance i
findnearest_hit H and nearest_miss J
for j 1 to N
w(j) = w(j) – diff(j, I,H)2/m + diff(j, I,J)2/m
end Output: w greater than τ
Trong giả mã của phương pháp Relief ở trên, hàm diff() tính sự 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á
Trang 26trị 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 [5, 25]
1.4.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) [25] Phương pháp này chạy giải thuật LVF với số lần xác định, sau đó sử dụng các tập con được chọn từ việc thực hiện giải thuật LVF như là đầu vào của giải thuật ABB nhằm tìm ra tập con tốt nhất Giá trị của số lần chạy ảnh hưởng tới kết quả của LVF Như chúng ta đã biết, nếu LVF chạy lâu hơn (nhiều lần chạy) có nghĩa là sẽ được các tập con thuộc tính tốt hơn, cho tới khi chúng ta tìm được tập con tối ưu Tuy nhiên, số lượng các tập con được chọn lựa cũng nhỏ hơn khi LVF chạy nhiều lần hơn Một mặt chúng ta muốn giảm số lượng các thuộc tính trong mỗi tập con(các tập con này là kết quả của việc chạy giải thuật LVF), một mặt chúng ta muốn số lượng các tập con này không quá bé do đó chúng ta có thể giảm thiểu nguy cơ mất các tập con tối ưu Vì thế chúng ta cần tìm ra một “điểm chuyển” tốt để cân bằng giữa hai yếu tố ở trên điều này cũng có nghĩa là QBB có thể nhanh chóng tìm ra các tập con tối ưu với xác suất cao
Dưới đây minh họa giả mã của giải thuật QBB[25]
QBB
Input:num-the number of loop in LVF
γ – an allowed inconsistency rate
D – a dataset with N features
Initialize :listLLVF=LABB={}
L LVF =LVF(D,γ,num) /*run LVF with num loops*/
for each S’ LLVF
S=ABB(S ’ ,D)
Trang 27L ABB =append(S,L ABB)
Output:Smin /*the minimum subset in L ABB*/
1.4.6 Phương pháp lớn dần
Với kích cỡ dữ liệu ngày càng trở lên lớn hơn, tất cả các phương pháp chọn lựa thuộc tính đều phải đối mặt với vấn đề quá tải dữ liệu do những hạn chế của bộ nhớ máy tính cũng như tốc độ tính toán Do đó cần thiết phải có một giải pháp xử lý đối với vấn đề đặt ra này Một câu hỏi đặt ra là liệu chúng ta có thực sự cần quá nhiều dữ liệu cho mỗi phương pháp chọn lựa thuộc tính để chọn ra các thuộc tính liên quan? Hay là chúng ta chỉ cần xử lý với lượng dữ liệu ít hơn? Câu trả lời cho câu hỏi này vẫn còn nhiều tranh luận Chúng ta sử dụng tỷ lệ lỗi như một ví dụ cụ thể Nếu chúng
ta tính toán tỷ lệ lỗi chung cho một bộ dữ liệu là E, thì bất kỳ một việc giảm chiều dữ liệu nào cũng sẽ dẫn đến một sự tối ưu tuy nhiên có thể dẫn đến sự sai lệch trong tỷ lệ lỗi Một mặt chúng ta gặp vấn đề đối với dữ liệu có kích cỡ quá lớn, do đó chúng ta muốn giảm dữ liệu tới một kích cỡ phù hợp Mặt khác chúng ta lại cần tất cả các
dữ liệu hiện có để đo lường chất lượng của các thuộc tính được chọn lựa
Chúng ta biết rằng chỉ một vài phần trong bộ bộ dữ liệu lớn có thể đại diện cho toàn bộ bộ dữ liệu trong một chừng mực nào đó Tuy nhiên, câu hỏi đặt ra ở đây là phần nào trong bộ dữ liệu và độ lớn của phần đấy là bao nhiêu thì phù hợp Thay vì việc tìm kiếm chính xác phần dữ liệu này, chúng ta có thể ngẫu nhiên chọn lựa một phần p nào đó, sau đó sử dụng phần này để tìm một tập con thuộc tính thỏa mãn các tiêu chí đánh giá nào đó Sau đó kiểm chứng tập con này trên phần còn lại của bộ dữ liệu (toàn bộ bộ dữ liệu trừ đi phần dữ liệu lấy ra) Có hai khả năng có thể: (1) Tập con thỏa mãn các tiêu chí đánh giá trên phần còn lại của dữ liệu Điều này
có nghĩa là nhiệm vụ đã hoàn thành; và (2) Có một vài tiêu chí đánh giá chưa được thỏa mãn trên phần còn lại của dữ liệu Điều này có nghĩa là phần dữ liệu mà chúng
ta lấy ra ở trên chưa phải là phần dữ liệu mà chúng ta mong muốn Nếu gặp phải khả năng thứ hai chúng ta có thể giải quyết như sau: Thêm dữ liệu từ bộ dữ liệu ban đầu vào bộ dữ liệu đã chọn ở trên và thực hiện lại việc chọn lựa thuộc tính trên bộ
dữ liệu này Quá trình này sẽ dừng lại khi tất cả các tiêu chí đánh giá được thỏa mãn Thêm một câu hỏi ở đây đó là giá trị của p bao nhiêu là phù hợp Một cách trực quan, kích cỡ của p không nên quá to cũng như quá nhỏ Nếu kích cỡ của p quá nhỏ, thì ngay sau lần thử nghiệm đầu tiên sẽ có rất nhiều tiêu chí đánh giá chưa được thỏa mãn Do đó, sẽ thực hiện việc thêm các thực thể từ bộ dữ liệu còn lại vào p và
có thể điều này dẫn đến kích cỡ của p sẽ lớn gần bằng kích cỡ của bộ dữ liệu ban đầu Nếu kích cỡ của p quá lớn (gần bằng kích cỡ của bộ dữ liệu ban đầu) chúng ta vẫn phải đương đầu với vấn đề quá tải dữ liệu cộng với một vài vấn đề về tiêu chí đánh giá có thể chưa được thỏa mãn Một cách đơn giản có thể giải quyết được việc này đó là chọn p theo tỷ lệ % của bộ dữ liệu, ví dụ chọn p=10%, hoặc một
Trang 28cách khác là chọn p tỷ lệ với số lượng thuộc tính của bộ dữ liệu Một tỷ lệ % phù hợp được xác định thông qua tiến hành thực nghiệm Ý tưởng về việc chọn lựa dữ liệu được thể hiện trong giải thuật được đặt tên là LIV được Lui và Setiono đề xuất
và năm 1998[17, 15, 25]
LVI
Input:maxTries –the maximum number of loops
U – the inconsistency measure D0 – p% of D chosen randomly
Initialize :D1 =D-D 0
loop
S LVF =LVF(D 0 ,γ,S) if(Callncon(SLVF,D1+D0,inconData)<γ)
return(S LVF ) else
Trang 29CHƯƠNG 2: THUẬT TOÁN RANDOM FOREST VÀ GIẢI
THUẬT DI TRUYỀN
2.1 Giới thiệu thuật toán Random Forest
Random Forest (rừng ngẫu nhiên) [6, 7, 8, 18, 24, 29] là phương phân lớp thuộc tính được phát triển bởi Leo Breiman tại đại học California, Berkeley Breiman cũng đồng thời là đồng tác giả của phương pháp CART (Classification and Regression Trees)[9] được đánh giá là một trong 10 phương pháp khai phá dữ liệu kinh điển Random Forest (RF) được xây dựng dựa trên 3 thành phần chính là: (1) CART, (2) học toàn bộ, hội đồng các chuyên gia, kết hợp các mô hình, và (3) tổng hợp bootstrap (bagging) Về bản chất RF sử dụng kỹ thuật có tên gọi là bagging Kỹ thuật này cho phép lựa chọn một nhóm nhỏ các thuộc tính tại mỗi nút của cây phân lớp để phân chia thành các mức tiếp theo Do đó, RF có khả năng phân chia không gian tìm kiếm rất lớn thành các không gian tìm kiếm nhỏ hơn, nhờ thế thuật toán có thể thực hiện việc phân loại một cách nhanh chóng và dễ dàng
Hình 2.1 [29] dưới đây thể hiện phương pháp phân lớp Random Rorest
Hình 2.1: Random Forest[29]
RF sử dụng công thức Gini [9, 29] như là một hàm điều kiện để tính toán việc phân chia cây tại mỗi nút Số lượng cây là không hạn chế và không sử dụng bất cứ kỹ thuật nào để hạn chế việc mở rộng cây [1]
Hiện nay, Random Forest đang được sử dụng khá phổ biến bởi những điểm vượt trội của nó so với các thuật toán khác: xử lý được với dữ liệu có số lượng các thuộc tính lớn, có khả năng ước lượng được độ quan trọng của các thuộc tính, thường có độ chính
Trang 30xác cao hơn, quá trình học nhanh Trong Random Forest, mỗi node trong cây chỉ chọn một tập nhỏ các thuộc tính để quyết định một lần phân chia, cơ chế này làm cho RF thực thi với tập dữ liệu có số lượng thuộc tính lớn trong thời gian nhanh hơn nhiều các thuật toán khác Chúng ta có thể chỉ định số lượng các thuộc tính được dùng cho mỗi lần phân chia, giá trị mặc định là sqrt(p) cho thuật toán phân lớp, và p/3 với các bài toán hồi quy, với p là số lượng tất cả các thuộc tính Các cây lớn nhất có thể sẽ được tạo ra và không bị cắt xén Số lượng các cây con dùng để tạo nên cây tổng thể cần được đặt đủ lớn để đảm bảo tất cả các thuộc tính đều được sử dụng một số lần Việc lựa chọn số lượng các cây phụ thuộc vào số lượng các thuộc tính, số lượng cây quá lớn hoặc quá nhỏ đều làm giảm độ chính xác của mô hình cây tổng thể Node gốc của các cây sử dụng một tập hợp các mẫu gọi là mẫu boot-strapp để xây dựng cây Tất cả các mẫu còn lại, được gọi là mẫu out-of-bag dùng cho việc tính toán mức độ hiệu quả của thuật toán Thông thường các mẫu out-of-bag chiếm một phần ba tổng số mẫu Việc sử dụng ước lượng out-of-bag giúp quản lý tỉ lệ lỗi, độ mạnh và mối liên hệ giữa các thuộc tính.
2.2 Phương pháp Bootstrap và Bagging
2.2.1 Phương pháp Bootstrap [29]
Là một phương pháp rất nổi tiếng trong thống kê được giới thiệu bởi Bradley Efron vào năm 1979 Phương pháp này chủ yếu dùng để ước lượng lỗi chuẩn (standard errors), độ lệch (bias) và tính toán khoảng tin cậy (confidence interval) cho các tham
số Phương pháp này được thực hiện như sau: Từ một quần thể ban đầu lấy ra một mẫu
L = (x1, x2, xn) gồm n thành phần, tính toán các tham số mong muốn Trong các bước tiếp theo lặp lại b lần việc tạo ra mẫu Lb cũng gồm n phần từ từ L bằng cách lấy lại mẫu với sự thay thế các thành phần trong mẫu ban đầu sau đó tính toán các tham số mong muốn Hình 2.2.1[29] dưới đây thể hiện một ví dụ sử dụng phương pháp bootstrap trong việc tính toán giá trị trung bình
Hình 2.2.1 Ví dụ về phương pháp bootstrap[29]
2.2.2 Phương pháp Bagging [29]
Phương pháp này được xem như là một phương pháp tổng hợp kết quả có được
từ các bootstrap Tư tưởng chính của phương pháp này như sau: Cho một tập huấn
Trang 31luyện D={(xi, yi): i=1,2,…,n} và giả sử chúng ta muốn có một một dự đoán nào đó đối với biến x
Một mẫu gồm B tập dữ liệu, mỗi tập dữ liệu gồm n phần tử được chọn lựa ngẫu nhiên
từ D với sự thay thế (giống như bootstrap) Do đó B=(D1, D2, ….,DB) trông giống như là một tập các tập huấn luyện được nhân bản;
Tập huấn một máy hoặc một mô hình đối với mỗi tập Db (b=1, 2, …,B) và lần lượt thu thập các kết quả dự báo có được trên mỗi tập Db;
Kết quả tổng hợp cuối cùng được tính toán bằng cách trung bình hóa (regression) hoặc thông qua số phiếu bầu nhiều nhất
Dưới đây là thể hiện chi tiết của phương pháp bagging
Xây dựng B boostrap của L ký kiệu: L1, L2, ….,LB;
Áp dụng giải thuật học cho mỗi Lb (b=1:B) để có tính toán dự đoán hb
Gọi Tb = L\Lb là các điểm dữ liệu không xuất hiện trong Lb (out of bag points)
Đối với mỗi điểm dữ liệu x, chúng ta sẽ quan sát giá trị y tương ứng và tính toán các
dự đoán 𝑦 (𝑥), 𝑦1 (𝑥),…, 𝑦2 (𝑥) 𝑘
Tính toán trung bình dự đoán ℎ(𝑥)
Ước lượng sai lệch (bias) và phương sai (variance)
Một phân lớp tổng hợp có thể xem như một xấp xỉ tới giá trị trung bình thực sự của f
có được bằng cách thay đổi các phân bổ xác suất p với các bootstrap
Bagging làm việc tốt với các giải thuật học không ổn định (neutral networks, Decision trees và Regression trees, Subset selection in logistic/linear Regression) Tuy nhiên bagging cũng có thể làm giảm độ chính xác của các giải thuật học ổn định (K-nearest neighbors) (do sự thay đổi trong dữ liệu của tập huấn luyện)
2.3 Thuật toán Random Forest
Trong Random Forest [8], kết quả của việc phát triển một tập hợp các cây sẽ làm cải thiện một cách đáng kể độ chính xác phân lớp, mỗi cây trong tập hợp sẽ “bỏ
Trang 32phiếu” cho lớp phổ biến nhất Để phát triển các tập hợp cây này thông thường các véc
tơ ngẫu nhiên được tạo ra, các véc tơ này sẽ chi phối sự phát triển của mỗi cây trong các tập nói trên Đối với cây thứ k trong tập các cây, một véc tơ ngẫu nhiên Θk được tạo ra, véc tơ này độc lập với các véc tơ được tạo ra trước đó Θ1, Θ2, …, Θk-1 nhưng
sự phân bố của các véc tơ này là tương tự nhau Một cây được phát triển dựa vào tập tập huấn và véc tơ Θk kết quả là được một phân lớp h(x, Θk) trong đó x là véc tơ đầu vào Sau khi một số lượng lớn các cây được tạo ra các cây này “bỏ phiếu” cho lớp phổ biến nhất Chúng ta gọi những quá trình này là random forest
Random forest được định nghĩa như sau [7]: Một random forest là một phân lớp bao gồm một tập các phân lớp có cấu trúc cây {h(x, Θk), k=1,… trong đó {Θk} là những véc tơ độc lập, tương tự nhau được phân bố một cách ngẫu nhiên và mỗi cây sẽ bỏ một phiếu bầu cho lớp phổ biến nhất ở véc tơ đầu vào x
Ý tưởng chính của giải thuật Random Forest:
• Ở mỗi lần phân chia cây một tập ngẫu nhiên m thuộc tính được lấy ra và chỉ
m thuộc tính này tham gia vào việc phân chia cây Thông thường m = 𝒑
hoặc p/3 trong đó p là tổng số các thuộc tính
• Đối với mỗi cây phát triển dựa trên một mẫu boostrap, tỷ lệ lỗi của các phần tử không thuộc vào bootstrap là được kiểm soát Tỷ lệ lỗi này được
gọi là tỷ lệ lỗi “out-of-bag” (OOB)
Mô tả thuật toán RF: [8 ]
1 Chọn T là số lượng các cây thành phần sẽ được xây dựng
2 Chọn m là số lượng các thuộc tính sẽ được dùng để phân chia tại mỗi node của cây, m thường nhỏ hơn p rất nhiều, p là tổng số các thuộc tính Giá trị m được giữ không đổi trong suốt quá trình dựng cây
3 Dựng T cây quyết định Trong đó mỗi cây được hình thành như sau:
a) Xây dựng tập mẫu khởi động ( bootstrap ) với n mẫu, hình thành từ việc hoán vị tập các mẫu ban đầu Mỗi cây sẽ được dựng từ tập khởi động này
b) Khi xây dựng cây, tại mỗi node sẽ chọn ra m thuộc tính, và sử dụng m thuộc tính này để tìm ra cách phân chia tốt nhất
c) Mỗi cây được phát triển lớn nhất có thể và không bị cắt xén
4 Sau khi xây dựng được Random Forest, để phân lớp cho đối tượng T, thu thập kết quả phân lớp đối tượng này trên tất cả các cây quyết định và sử dụng kết quả được chọn nhiều nhất làm kết quả cuối cùng của thuật toán Tỉ lệ lỗi của cây tổng thể phụ thuộc vào độ mạnh của từng cây quyết định thành phần và mối quan hệ qua lại giữa các cây đó
Hình vẽ 2.3[3] dưới đây thể hiện các bước trong Random Rorest Để phân lớp một đối tượng mới Random Rorest căn cứ vào số phiếu mà các cây trong rừng bỏ cho đối tượng đó thuộc về lớp nào
Trang 33Hình 2.3 Các bước trong Random Forest[3]
Quá trình học của Random Forest bao gồm việc sử dụng ngẫu nhiên giá trị đầu vào, hoặc kết hợp các giá trị đó tại mỗi node trong quá trình dựng từng cây quyết định Trong đó Random Forest có một số thuộc tính mạnh như[8]:
(1) Độ chính xác của RF tương đối cao
(2) Thuật toán giải quyết tốt các bài toán có nhiều dữ liệu nhiễu
(3) Thuật toán chạy nhanh hơn so với bagging
(4) Có những sự ước lượng nội tại như độ chính xác của mô hình phỏng đoán hoặc độ mạnh và liên quan giữa các thuộc tính
(5) Dễ dàng thực hiện song song
(6) Tuy nhiên để đạt được các tính chất mạnh trên, thời gian thực thi của thuật toán khá lâu và phải sử dụng nhiều tài nguyên của hệ thống
Tính chất thứ 4 được quan tâm rất nhiều và là tính chất được sử dụng để giải quyết bài toán trích chọn thuộc tính Sau khi thực hiện học sẽ thu được một danh sách các thuộc được xếp hạng dựa theo một trong hai tiêu chí Tiêu chí thứ nhất là thu được sau quá trình kiểm tra độ chính xác sử dụng các mẫu out-of-bag Tiêu chí thứ hai là mức độ dầy đặc tại các node khi phân chia thuộc thuộc tính, và được tính trung bình trên tất cả các cây
Qua những tìm hiểu trên về giải thuật RF ta có nhận xét rằng RF là một phương pháp phân lớp tốt do: (1) Trong RF các sai số (variance) được giảm thiểu do kết quả của RF được tổng hợp thông qua nhiều bộ học (learner), (2) Việc chọn ngẫu nhiên tại mỗi bước trong RF sẽ làm giảm mối tương quan (correlation) giữa các bộ phân lớp trong việc tổng hợp các kết quả
Trang 34Ngoài ra, chúng ta cũng thấy rằng lỗi chung của một rừng các cây phân lớp phụ thuộc vào lỗi riêng của từng cây trong rừng cũng như mỗi tương quan giữa các cây
2.4 Một số đặc điểm của RF
2.4.1 OOB
Nhắc lại ở trên khi tập mẫu được rút ra từ một tập huấn luyện của một cây với
sự thay thế (bagging), thì theo ước tính có khoảng 1/3 các phần từ không có nằm trong mẫu này [7] Điều này có nghĩa là chỉ có khoảng 2/3 các phần tử trong tập huấn luyện tham gia vào trong các tính toán của chúng ta, và 1/3 các phần tử này được gọi là dữ liệu out-of-bag Dữ liệu out-of-bag được sử dụng để ước lượng lỗi tạo ra từ việc kết hợp các kết quả từ các cây tổng hợp trong random forest cũng như dùng để ước tính độ quan trọng thuộc tính (variable important)
Trong random forest OOB được tính như sau: Giả sử có một phương pháp cho việc xây dựng một bộ phân lớp từ bất kỳ tập huấn luyện nào Cho một tập huấn luyện
T ban đầu, sử dụng phương pháp bootstrap xây dựng được tập huấn luyện Tk, sau đó
xây dựng các bộ phân lớp h(x, Tk) và sử dụng các bộ phân lớp này “bỏ phiếu” để xây dựng một tập tham số dự báo Đối với mỗi cặp y, x trong tập huấn luyện, việc tổng
hợp các lá phiếu chỉ được thực hiện trên những bộ phân lớp đối với những tập Tk
không chứa y, x Chúng ta gọi tính toán trên là out-of-bag classifier Sử dụng dữ liệu
out-of-bag để ước tính tỷ lệ lỗi trong RF là việc tính toán tỉ lệ lỗi của out-of-bag classifier trên tập huấn luyện Tk Cách tính trên có thể được hiểu một cách đơn giản như sau: Gửi các “đối tượng” trong OOB xuống cây và “đếm” số các dự đoán đúng, ta gọi kết quả của tính toán này là ROOB
Hình 2.4.1[7] dưới đây thể hiện sử dụng dữ liệu OOB để ước lượng lỗi trong RF
Hình 2.4.1 Sử dụng OOB ước lượng lỗi[7]
2.4.2 Thuộc tính quan trọng
Việc thực hiện các tính toán để xác định thuộc tính quan trọng trong RF cũng gần như tương tự việc sử dụng OOB để tính toán lỗi trong RF Cách thực hiện như sau: Giả sử chúng ta cần xác định “thuộc tính quan trọng” của thuộc tính thứ thứ m Đầu tiên tính ROOB, sau đó hoán vị ngẫu nhiên các giá trị của thuộc tính m trong dữ
Trang 35liệu OOB, lần lượt “gửi” các giá trị này xuống cây và “đếm” số các dự đoán đúng ta gọi việc tính toán này đối với thuộc tính là Rperm
Độ quan trọng thuộc tính được tính như sau:
Trong trường hợp giá trị của thuộc tính quan trọng trên mỗi cây là độc lập thì chúng ta có thể tính được lỗi chuẫn (standard error) của ROOB – Rperm
Ngoài độ quan trọng thuộc tính, trong RF cũng cần chú ý đến độ quan trọng GINI (GINI important) Chỉ số GINI tại nút N được định nghĩa là tổng bình phương xác suất mỗi lớp tại nút N [28] Chỉ số GINI được tính như sau:
Trong một số giải thuật như CART, SLIQ và RF chỉ số GINI được sử dụng như
là một tiêu chỉ để phân nhánh trong cây Các giải thuật này cố gắng cực tiểu hóa giá trị chỉ số GINI tại nút dựa vào việc phân nhánh trong cây theo công thức sau [8]:
1
( )
k i split
cả các cây đưa ra một độ quan trọng thuộc tính nhanh, và điều này là rất đồng nhất với
đo lường độ quan trọng hoán vị [28]
Trong chương tiếp theo luận văn đề xuất một mô hình học máy nhằm tăng hiệu quả các thuật toán phân lớp nói chung và của giải thuật RF nói riêng
2.5 Giải thuật di truyền [32]
2.5.1 Giới thiệu
Thuật toán di truyền [2, 32] là thuật toán tối ưu ngẫu nhiên dựa trên cơ chế chọn lọc tự nhiên và tiến hóa di truyền Thuật toán di truyền được ứng dụng đầu tiên trong hai lĩnh vực chính: tối ưu hóa và học máy Trong lĩnh vực tối ưu hóa thuật toán di truyền được phát triển nhanh chóng và ứng dụng trong nhiều lĩnh vực khác nhau như tối ưu hàm, xử lý ảnh, bài toán hành trình người bán hàng, nhận dạng hệ thống và điều khiển Thuật toán di truyền cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu Quan niệm này có thể xem như một tiên đề đúng, không chứng minh được, nhưng phù hợp với thực tế khách quan Quá trình tiến hóa
(4) (3)
Trang 36thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước bởi tính kế thừa và đấu tranh sinh tồn [2]
2.5.2 Nội dung giải thuật di truyền
Bài toán dành cho giải thuật di truyền là tìm kiếm trên không gian các giả thuyết ứng cử để xác định giả thuyết tốt nhất Trong giải thuật di truyền “giả thuyết tốt nhất” được định nghĩa như là một giả thuyết tối ưu hóa một đại lượng số được định nghĩa
trước cho bài toán sắp tới, được gọi là độ thích nghi của giả thuyết Ví dụ, nếu tác vụ
học hỏi là bài toán xấp xỉ một hàm chưa biết cho tập mẫu huấn luyện gồm dữ liệu đầu vào và dữ liệu đầu ra, thì độ thích nghi có thể được định nghĩa như là độ chính xác của giả thuyết trên dữ liệu huấn luyện này Nếu tác vụ là học chiến lược chơi cờ, độ thích nghi có thể là số ván thắng của chiến lược này khi đấu với các chiến lược khác trong quần thể hiện tại
Mặc dù các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể, nhưng chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cập nhật liên tục tập giả thuyết – được gọi là quần thể Ở mỗi lần lặp, tất cả các cá thể trong quần thể được ước lượng tương ứng với hàm thích nghi Rồi quần thể mới được tạo ra bằng cách lựa chọn có xác suất các cá thể thích nghi tốt nhất từ quần thể hiện tại Một
số trong những cá thể được chọn được đưa nguyên vẹn vào quần thể kế tiếp Những cá thể khác được dùng làm cơ sở để tạo ra các cá thể con bằng cách áp dụng các tác động
di truyền: lai ghép và đột biến
Nội dung của giải thuật di truyền mẫu được phát biểu như sau [32]:
GA (Fitness, Fitness_threshold, p, r, m)
// Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giài thuật tìm kiếm
// p: Số cá thể trong quần thể giả thuyết
// r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi bước
// m: Tỉ lệ cá thể bị đột biến
while [max Fitness(h)] < Fitness_threshold do
𝐏𝐫 hi = Fitness (hi )
Fitness (hj)
p j=1
2 Lai ghép: chọn lọc theo xác suất
2
rp
(5)
Trang 373 Đột biến: Chọn m% cá thể của P S với xác suất cho mỗi cá thể là như nhau Ứng với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể hiện của nó
5 Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
}
Quần thể gồm p cá thể Ở mỗi lần lặp, quần thể kế tiếp P S được hình thành từ việc lựa chọn theo xác suất các giả thuyết hiện tại theo độ thích nghi của chúng và bằng cách thêm vào các giả thuyết mới Các giả thuyết mới được tạo ra bằng cách áp dụng toán tử lai ghép cho cặp giả thuyết thích nghi nhất và bằng cách tạo ra các đột biến điểm đơn trong thế hệ giả thuyết kết quả Quá trình này được lặp cho đến khi các giả thuyết thích hợp được phát hiện
Một thuật giải di truyền mẫu được mô tả ở trên, các đầu vào cho thuật giải này bao gồm hàm tính độ thích nghi để tính hạng cho các giả thuyết ứng cử, một giá trị ngưỡng được định nghĩa cấp độ thích nghi có thể chấp nhận để kết thúc thuật giải, kích thước quần thể, và các tham số quyết định các quần thể kế tiếp được tạo ra như thế nào: phần quần thể bị thay thế ở mỗi thế hệ và tỉ lệ đột biến
Lưu ý trong thuật giải này, ở mỗi bước lặp qua vòng lặp chính tạo ra một thế hệ mới các giả thuyết dựa vào quần thế hệ hiện tại Trước tiên, một số giả thuyết được chọn từ quần thể hiện tại để đưa vào thế hệ kế tiếp Những giả thuyết này được chọn theo xác suất, ở đây xác suất của giả thuyết được tính bởi [32]:
kế tiếp, các cá thể thêm vào được tạo ra dùng toán tử lai ghép Lai ghép, được định nghĩa một cách dễ hiểu là lấy hai giả thuyết từ thế hệ hiện tại và tạo ra hai giả thuyết con bằng cách kết hợp các phần của hai giả thuyết cha Các giả thuyết cha được chọn theo xác suất từ quần thể hiện tại, sử dụng hàm xác suất được định nghĩa ở trên Sau khi các cá thể mới được tạo ra từ hoạt động lai ghép này, quần thế thế hệ mới bây giờ
có đủ số lượng thành viên mong muốn Lúc này, một phân số m nào đó các cá thể này
được chọn một cách ngẫu nhiên và tất cả các đột biến ngẫu nhiên được thực hiện để thay đổi các cá thể này
(6)