Tải bản đầy đủ (.pdf) (74 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.84 MB, 74 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
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
1

MỤ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
2

3.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








3

DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT

VIẾT TẮT

TỪ
GA
Genetic-Algorithm
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


4

DANH 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
5

DANH 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

6

MỞ ĐẦU
 Lí do chọn đề tài
Ngày nay, trong xu hƣớng hội nhập quốc tế, thời đại thông tin bùng nổ, chúng ta
đang “ngập lụt” trong dữ liệu nhƣng lại “đói” về tri thức, cho nên vấn đề tin học hoá
và hiện đại hoá công nghệ thông tin ở nƣớc ta ngày càng trở nên cấp thiết và mang tính
thời đại. Một trong các vấn đề cấp thiết đó là làm sao phân tích và xử lý một khối
lƣợng thông tin khổng lồ liên tục đƣợc cập nhật để đáp ứng các yêu cầu về phát triển
mọi mặt văn hoá, kinh tế, chính trị, xã hội của đất nƣớc. Vì lý do đó mà việc chọn
đƣợc các thuộc tính đặc trƣng nhằm tăng hiệu quả phân lớp đối với dữ liệu đa chiều
đang là một xu thế tất yếu nhằm giải quyết vấn đề chắt lọc ra những thông tin hữu ích
hay chắt lọc tri thức từ khối dữ liệu khổng lồ mà chúng ta có.
Hiệ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
7

phá 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.


8

CHƢƠ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
9

(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)
10

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 [27].

Nếu xem xét các quá trình 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 [12, 10,
28, 23]: 1) Kho dữ liệu (Data warehousing) - 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.
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à
11

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 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].
12


Có 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à 2
n
. 2
n
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].
13




















Hình 1.1: Các thành phần chính của lựa chọn thuộc tính[19]
1.3.1 Tìm kiếm
Lựa chọn thuộc tính có thể đƣợc xem 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 (A
1
, A
2
, A
3
). 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 A
1
đƣợc chọn. Do đó, sẽ có tất cả 2
N
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 (2
N
), 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
Mô hình
Lai ghép

Bao bọc
Lọc
Chiến lược tìm kiếm
Tìm kiếm toàn
bộ
Tìm kiếm xác
suất
Tìm kiếm
kinh nghiệm
14

Giả 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|c
1
) và
P(X|c
2
), 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

15

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 đƣợ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.

16


Hì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
17

thuộ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.


Hình 1.3: Mô Hình Wrapper [16]
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.
Độ 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
18

dự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
19

b. 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

20

1.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].
Wrap1
Input :x – features
LA – learning algorithm
Initialize :set S={} /*L stores selected features*/
C = induceClassifier(x,LA)
S = findAllFeatures(C) /*Find all features in C*/
Output: S
Trong phƣơng pháp Wrap1, từ một tập dữ liệu N thuộc tính chúng ta áp dụng
một giải thuật học trên bộ dữ liệu đó nhằm tìm ra một bộ phân lớp (các tham số) có kết
quả phân lớp tốt nhất. Sau đó, áp dụng bộ phân lớp này đối với tất cả các thuộc tính
trong bộ dữ liệu cần phân lớp.
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
21

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 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à 2
N
, 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=2
N
x p%.
22


(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*/
A
best
=estimate(D,F,LA)
for maxTries loops
begin
S=randomSet(seed)
A=estimate(D,S,LA)
If(A>A
best
)
S
best
=S
A

best
=A
L={S} /*L is reinitialized*/
elseif(A=A
best
)
L=append(S,L)
end
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á.

23

1.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á

×