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

Báo cáo " 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 " pptx

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 (465.97 KB, 13 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

Đồng Thị Ngọc Lan

Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: PGS.TS Nguyễn Hà Nam
Năm bảo vệ: 2011

Abstract: Tổng quan về khai phá dữ liệu và trích chọn thuộc tính. 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 và
giải thuật di truyền. Trình bày phương pháp đề xuất và hướng giải quyết của luận văn.
Trình bày quá trình thực nghiệm và đánh giá kết quả thực nghiệm.

Keywords: Công nghệ thông tin; Thuật toán phân lớp; Cơ sở dữ liệu

Content
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 mẫu hình có tính chính quy 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
(Kownledge Discovery in Database – KDD) để 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[14]. Trong đó, khai phá dữ liệu là một bước đặc biệt 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 mẫu hay các mô hình từ dữ liệu.
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. Luận văn chủ yếu tập trung vào tìm hiểu 3 nhiệm vụ chính sau:
Giảm chiều dữ liệu:Giảm chiều dữ liệu là việc làm giảm chiều của không gian tìm kiếm
dữ liệu, giảm chi phí thu thập và lưu trữ dữ liệu, nâng cao hiệu quả của việc khai phá dữ liệu
và làm đơn giản hóa các kết quả khai phá dữ liệu. Trong nhiệm vụ làm giảm chiều dữ liệu
chúng ta cần phân biệt hai khái nhiệm sau:
 Trích chọn thuộc tính (Feature Extraction):

2
 Chọn lựa thuộc tính (Feature Selection):
Phân cụm và phân lớp:Phân lớp và phân cụm là hai nhiệm vụ có mối quan hệ tương
đối gần nhau trong khai phá dữ liệu. Một lớp là một tập các đối tượng có cùng một số đặc
điểm hoặc mối quan hệ nào đó, tất cả các đối tượng trong lớp này được phân vào trong cùng
một lớp tên nhằm mục đích là để phân biệt với các lớp khác.Một cụm là một tập các đối tượng
tương tự nhau về mặt vị trí.Các cụm thường được 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 đó, trích chọn ra các luật IF-THEN để đưa ra các thông tin có giá trị là
một cách diễn giải đơn giản và dễ hiểu nhất đối với người 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 thường rất lớn nhưng 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. 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. Do đó chúng ta cần giải quyết
vấn này đối với các bài toán phân lớp.
1.3 Phƣơng pháp lựa chọn thuộc tính
Có thể định nghĩa lựa chọn thuộc tính là một quá trình tìm ra một tập con các thuộc tính
từ M tập thuộc tính của tập dữ liệu N ban đầu, như vậy phải xác định tiêu chuẩn lựa chọn
thuộc tính. 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, điều
kiện dừng và xác nhận kết quả.
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, Embedded.
Các chiến lược tìm kiếm bao gồm: forward, backward, floating, branch and bound,
randomized. Ướ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

3
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 [3].
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: tìm
kiếm, đánh giá, chọn lựa mô hình.
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).
1.4.1 Tìm kiếm toàn bộ
a. Phương pháp Focus

b. Phương pháp AAB
1.4.2 Tìm kiếm theo kinh nghiệm
1.4.3 Tìm kiếm xác suất
(a). Phương pháp LVF
(b). Phương pháp LVF
1.4.4. Phƣơng pháp trọng số thuộc tính
1.4.5. Phƣơng pháp lai
1.4.6. Phƣơng pháp lớn dần

Chƣơ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) 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) được đánh giá là một trong 10
phương pháp khai phá dữ liệu kinh điển. Random Forest đượ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). Hình 3.1 [30] dưới đây thể hiện phương pháp phân lớp
random forest.
2.2 Bootstrap và Bagging
2.2.1 Bootstrap
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

4
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.
2.2.2. Bagging

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 luyệ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 (classification).
2.3 Random forest
Tóm tắt cuả giải thuật RF cho phân lớp đƣợc diễn giải nhƣ sau:
• Lấy ra K mẫu bootstrap từ tập huấn luyện.
• Đối với mỗi mẫu bootstrap xây dựng một cây phân lớp không đƣợc tỉa
(unpruned tree) theo hƣớng dẫn sau: Tại mỗi nút thay vì chọn một phân chia
tốt nhất trong tất cả các biến dự đoán, ta chọn ngẫu nhiên một mẫu m của
các biến dự đoán sau đó chọn một phân chia tốt nhất trong các biến này.
• Đƣa ra các dự đoán bằng cách tổng hợp các dự đoán của K cây.
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âyquyết định. Kết quả của
Random Forest, qua thực nghiệm cho thấy, là tốt hơn khiso sánh với thuật toán Adaboost.
Trong đó Random Forest có một số thuộc tính mạnh như:
(1) Độ chính xác của nó tương tự Adaboost, trong một số trường hợp còn tốt hơn.
(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 hoặc boosting.
(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ủathuật toán khá
lâu và phải sử dụng nhiều tài nguyên của hệ thống.

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 người 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 người học trong việc tổng hợp các kết quả.

5
Ngoà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
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).
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ữ liệ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
2.5 Thuật toán di truyền
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 thể 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].
CHƢƠNG 3: PHƢƠNG PHÁP ĐỀ XUẤT
3.1 Giới thiệu
Chương này luận văn trình bày phương pháp học máy nhằm tìm ra bộ thuộc tính tối
ưu từ tập các thuộc tính của bộ số liệu cho trước, đó là sử dụng giải thuật tựa giải thuật di
truyền (Genetic-Algorithm) kết hợp với thuật toán rừng ngẫu nhiên (Random Forest).
Chương này mô tả phương pháp đề xuất như là cách tiếp cận theo wrapper để tìm ra các thuộc
tính tối ưu, loại bỏ các thuộc tính dư thừa.

6
3.2 Cơ sở lí luận
Ta thấy các toán tử trong giải thuật di truyền đều mang tính ngẫu nhiên, thuật toán di
truyền cần xác định cỡ quần thểvà khởi tạo quần thể ban đầu một cách ngẫu nhiên, xác định
xác suất lai ghép và xác suất đột biến . Xác suất đột biến cần là xác suất thấp. Để khắc phục
việc hạn chế của vấn đề chọn ngẫu nhiên, luận văn đề xuất phương án:
- Tạo ra các bộ thuộc tính con từ tập thuộc tính ban đầu bằng phương pháp kết hợp việc
chọn ngẫu nhiên với việc phân bố đều các thuộc tính.
- Không thực hiện việc lai ghép, đột biến để tạo ra các bộ thuộc tính mới mà thực hiện việc
đánh giá các bộ thuộc tính, dựa vào đó đánh giá các thuộc tính để chọn ra các thuộc tính
có độ phù hợp cao.
- Dùng thuật toán học để làm tiêu chí đánh giá độ thích hợp của các bộ thuộc tính.
Cụ thể, phương pháp đề xuất được trình bày chi tiết ở phần tiếp theo.
3.3 Kiến trúc hệ thống



Hình 4.3: Kiến trúc cơ bản của hệ thống
4.4 Phƣơng pháp đề xuất.
Bƣớc 1: Tạo ra m bộ thuộc tính từ tập n thuộc tích ban đầu.
- Mỗi bộ chứa 2*n/m thuộc tính. Gồm:
o n/m thuộc tính đều nhau
o n/m thuộc tính ngẫu nhiên
Bƣớc 2: Tính thang điểm ƣớc lƣợng cho từng bộ thuộc tính
- Dùng RF tính thang điểm ước lượng cho các bộ thuộc tính.
=> Được tập các giá trị ước lượng f(i) (i=1, ,m)
Bƣớc 3: Tính ranking theo trọng số của từng thuộc tính.
- Trọng số của mỗi thuộc tính i được tính theo công thức:

k
ij
= 0 nếu thuộc tính thứ i không được chọn trong bộ thuộc tính thứ j
k
ij
= 1 nếu thuộc tính thứ i được chọn trong bộ thuộc tính thứ j
Bƣớc 4: Xây dựng tập mới gồmp% thuộc tính tốt nhất

7
Quay lại B1. Điều kiện dừng a) số thuộc tính < ngưỡng cho phép.
b) Số vòng lặp xác định
4.5 Hoạt động của hệ thống
Tập dữ liệu ban đầu được phân chia ngẫu nhiên thành hai tập: Tập dữ liệu huấn luyện và Tập
dữ liệu kiểm tra.
a. Tập dữ liệu huấn luyện cho qua Phần 1
Dữ liệu huấn luyện là bảng có kích cỡ m x n, với n là số thuộc tính ban đầu và m là số bản
ghi. Khi cho bảng này qua Phần 1:

Bước 1: phương pháp đề nghị sẽ sinh ra các bảng con có kích cỡ m x k
i
; trong đó k
i
là số cột
(số thuộc tính) của bảng con thứ i (i=1,2…) và k
i
< n. Mỗi bảng là một tập con các thuộc tính
của bộ dữ liệu ban đầu.
Bước 2: Đánh giá độ thích nghi của mỗi bộ thuộc tính mới bằng việc áp dụng thuật toán học
máy random forest .
Bước 3: Sau đó, với mỗi thuộc tính của bộ thuộc tính ban đầu ta tính được độ phù hợp (trọng
số)w của mỗi thuộc tính theo công thức:

Với j=1, ,n tương ứng với n thuộc tính đầu tiên. Fitness
i
là độ phù hợp của bộ thuộc
tính thứ i trong m bộ thuộc tính mới. k nhận giá trị 1 nếu thuộc tính thứ j được chọn và nhận
giá trị 0 nếu thuộc tính j không được chọn trong bộ thuộc tính i.
Bước 4: Thực hiện sắp xếp n thuộc tính theo thứ tự giảm dần của trọng số w
j
. Lấy p% các
thuộc tính được theo thứ tự từ trên xuống dưới ta được một bộ thuộc tính mới gồm (n*p)/100
thuộc tính.
Bộ thuộc tính này lại lặp lại các bước trên cho đến khi thu được một bộ thuộc tính có
số thuộc tính đạt ngưỡng nào đó hoăc số lần lặp xác định. Kết thúc quá trình hoạt động ở Phần
1: thu được bộ thuộc tính có độ phù hợp cao nhất. Kết quả này được sử dụng để đưa vào Phần
2.
b. Hoạt động phần 2
Lấy tất cả bản ghi của bộ số liệu ban đầu nhưng chỉ với các thuộc tính vừa tìm được ở

Phần 1, chia làm hai phần: huấn luyện và kiểm tra. Tập dữ liệu huấn luyện mới được sử dụng
để huấn luyện cho RF.
Sau khi huấn luyện xong, cho tập dữ liệu kiểm tra vào RF này để đánh giá chất lượng
hệ thống.Để kiểm tra tính ổn định của hệ thống, tiến hành kiểm thử nhiều lần. Tức là mỗi lần
kiểm thử là một lần chia bộ số liệu ngẫu nhiên thành các tập huấn luyện và kiểm thử khác
nhau.


8
CHƢƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ
4.1 Môi trƣờng thực nghiệm
Tất cả các thực nghiệm được thực hiện trên máy Laptop với bộ xử lý Intel (R) Core
(TM) i7 -2620 M CPU @ 2.70 GHz 2.69 GHz, RAM 4GB.
Chương trình thực nghiệm của tôi được viết bằng ngôn ngữ R. Gói random forest lấy
từ www.r-project.org, các mô đun là hoàn toàn tự xây dựng, không sử dụng hay kế thừa lại
của bất cứ nguồn nào.
4.2 Mô tả chƣơng trình
Luận văn đã sử dụng R để xây dựng danh sách các hàm như sau:
Tên hàm
Diễn giải
Innit()
Khởi tạo các tham số cho chương
trình, đọc dữ liệu từ các file .csv
vào biến. Chuẩn hóa lại dữ liệu
theo cấu trúc xác định trước.
RF_Run<-
function
(train,test,TreeN
um)
- Tính thời gian chạy RF bao

gồm thời gian huấn luyện và
thời gian kiểm thử.
- Tính % đoán nhận(phân lớp)
đúng của RF với tham số tùy
chọn TreeNum là số lượng cây
của RF.
fitness<-function
(inpData,CrV,in
d)
Tính độ phù hợp của bộ dữ liệu
inpData với hệ số kiểm chứng
chéo là CrV.
proccess<-
function
(InpData,m,p)
- Hàm proccess có chức năng
lựa chọn ra tập các thuộc tính
tối ưu nhất từ tập dữ liệu đầu
vào InpData.
- m là tham số xác định số bộ
thuộc tính trong mỗi lần phân
chia.
- p xác định số thuộc tính loại bỏ
sau mỗi lần chọn lựa. (đây là
điều kiện dừng của thuật toán)
RF_Proccess<-
function
(train,test,TreeN
um,RunNum)
- Tính % đoàn nhận đúng, thời

gian chạy của RunNum lần
chạy RF với số lượng cây là
TreeNum trên bộ thuộc tính
ban đầu và bộ thuộc tính tối ưu
mới tìm được.

9
- Xác định giá trị trung bình, giá
trị lớn nhất, nhỏ nhất, độ lệch
chuẩn, thời gian trung bình của
các lần chạy trên 2 bộ dữ liệu
đó để vẽ đồ thị so sánh.
Ghi kết quả vào file Output.
4.3 Kết quả thực nghiệm
4.3.1 Bộ dữ liệu ung thƣ dạ dày(Stomach)
4.3.1.1 Mô tả bộ dữ liệu Stomach
Bộ dữ liệu Stomach Cancer gồm 137 bản ghi, mỗi bản ghi có 119 thuộc tính. Các bản
ghi trong bộ dữ liệu được phân thành hai lớp ký hiệu là normal (bệnh nhân bình thường) và
cancer (bệnh nhân bị ung thư).
4.3.1.2 Kết quả và phân tích thực nghiệm trên bộ dữ liệu Stomach

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.

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.

10
4.3.1.3 Nhận xét
Ta thấy tỉ lện đoán nhận của RF với bộ thuộc tính mới tăng lên rõ ràng, ước tính tăng khoảng

5%, trung bình thuật toán RF cho kết quả đoán nhận là 78%, còn RF mới cho kết quả là 83%.
Ta cũng thấy thời gian huấn luyện và thời gian kiểm tra đều giảm đi đáng kể. Tỉ lệ đoán nhận
trên bộ thuộc tính mới tăng lên cho thấy bộ thuộc tính mới đã loại bỏ được một số thuộc tính
nhiễu, thuộc tính dư thừa. Còn thời gian giảm đi là vì số lượng thuộc tính đã giảm xuống
tương đối nhiều, cụ thể từ 119 thuộc tính ban đầu, sau khi lựa chọn bộ thuộc tính mới còn là
36 thuộc tính, như vậy số thuộc tính đã giảm khoảng 69% số thuộc tính ban đầu. Điều đó
chứng tỏ phương pháp thực nghiệm mà luận văn đề xuất cho hiệu quả tương đối tốt. Tuy
nhiên, để tìm ra một bộ thuộc tính mới chúng ta đã tiêu tốn một khoảng thời gian tương đối
lớn. Với bộ dữ liệu Stomach chúng ta mất khoảng 20 phút để tìm ra được một bộ thuộc tính
tối ưu hơn, và với các bộ dữ liệu lớn hơn thì thời gian đó lại tăng lên, nhưng chúng ta chỉ mất
thời gian 1 lần tìm bộ thuộc tính tối ưu. Sau đó, tất cả các bài toán sử dụng bộ dữ liệu này khi
thực thi trên bộ thuộc tính mới sẽ giảm thời gian tính toán trên tất cả các lần chạy. Và từ đó,
thì thời gian làm việc sẽ giảm đi đáng kể.
4.3.2 Bộ dữ liệu ung thƣ ruột kết Colon Turmo
4.3.2.1 Mô tả dữ liệu
Colon Turmo[1] là bộ dữ liệu gồm 2000 genes được chọn lựa từ 6500 genes, thu thập
từ 62 bệnh nhân ung thư (2000 x 62)
4.3.2.2 Kết quả thực nghiệm

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

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.

11

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.
4.3.2.2 Nhận xét

Kết quả thực nghiệm 20 lần trên bộ dữ liệu Colon Tumor với số cây lần lượt là
100,300,500 cũng giống như kết quả thực nghiệm với bộ dữ liệu Stomach. Rõ ràng so tỉ lệ
đoán nhận của RF với bộ thuộc tính mới cao hơn tương đối so với bộ thuộc tính cũ, ước tính
tăng khoảng 10%, trung bình thuật toán RF cho kết quả đoán nhận là 78%, còn RF mới cho
kết quả là 89%. Còn thời gian giảm đi là vì số lượng thuộc tính đã giảm xuống tương đối
nhiều, cụ thể từ 2000 thuộc tính ban đầu, sau khi lựa chọn bộ thuộc tính mới còn là 600 thuộc
tính, như vậy số thuộc tính đã giảm khoảng 70% số thuộc tính ban đầu. Điều đó chứng tỏ
phương pháp thực nghiệm mà luận văn đề xuất cho hiệu quả tương đối tốt.
KẾT LUẬN
Trong khuôn khổ của luận văn tôi đã tìm hiểu cơ sở lý thuyết và một số thuật toán áp
dụng giải bài toán trích chọn thuộc tính phù hợp bằng cách giảm chiều dữ liệu. Tôi cũng đã
tập trung nghiên cứu về thuật toán Random Forest và phương pháp tiền xử lý dữ liệu. Từ
những tìm hiểu này tôi đề xuất hướng cải tiến nhằm tìm ra bộ thuộc tính tối ưu nhỏ nhất để
tăng hiệu quả của thuật toán phân lớp.
Từ những kết quả thực nghiệm trên bộ dữ liệu Colon Turmo, chúng ta thấy kết quả
tương đổi ổn định và tốt. Tuy nhiên phương pháp này có nhược điểm là thời gian chạy
chương trình hơi lâu. Nếu muốn kết quả dự đoán chính xác hơn thì việc thay đổi một số tham
số còn tiêu tốn thời gian hơn nữa.
Để giải quyết hạn chế của phương pháp học máy được đề xuất ở trên trong thời gian
tới tôi sẽ chú trọng tìm hiểu, cải tiến nhằm tăng tốc độ phân lớp của giải thuật. Đồng thời, tôi
cũng tiến hành thử nghiệm phương pháp trên nhiều bộ dữ liệu khác nhau nhằm đánh giá độ
chính xác và ổn định của phương pháp đối với từng loại dữ liệu cụ thể. Tìm hiểu một số
phương pháp phân lớp khác như cây quyết định hoặc phương pháp hỗ trợ véc tơ (SVM),… để
thay thế thuật toán random forest khi đánh giá kết quả dự đoán. Rồi tiến hành so sánh giữa các
phương pháp này với nhau. Qua đó, có thể đóng góp thêm một chọn lựa cho các nhà phát
triển ứng dụng khi phát triển các ứng dụng liên quan đến phân lớp dữ liệu.

References

12

Tài liệu Tiếng Việt
[1] Nguyễn Hà Nam (2009), "Tối ưu hóa KPCA bằng GA để chọn các thuộc tính đặc trưng
nhằm tăng hiệu quả phân lớp của thuật toán Random Forest", Tạp chí Khoa học ĐHQGHN,
Khoa học Tự nhiên và Công nghệ, số 25, tr. 84-93.
[2] Nguyễn Đình Thúc (2001), Lập trình tiến hóa, Nhà xuất bản giáo dục, Hà Nội.
[3] Huỳnh Phụng Toàn, Nguyễn Hữu Lâm, Nguyễn Minh Trung, Đỗ Thanh Nghị (2012),
“Rừng ngẫu nhiên cải tiến cho phân loại dữ liệu gien”, Tạp chí khoa học Đại học Cần Thơ
2012:22b 9-17, Cần Thơ.
[4] Nguyễn Văn Tuấn (2007), Phân tích số liệu và tạo biểu đồ bằng R-Hướng dẫn thực hành,
NXB KHKT, Hà Nội.
Tài liệu Tiếng Anh
[5] Blum, A. L. and Langley (1997), Selection of Relevant Features and Examples in
Machine Learning, Artificial Intelligence, pp. 245-271.
[6] L. Breiman (2002), Manual On Setting Up, Using, And Understanding Random Forests
V3.1, Available:

[7] L. Breiman (2001), "Random Forests", Machine Learning Journal Paper, vol. 45.
[8] A. C. Leo Breiman, Random Forests, Available:

[9] R. O. Duda, P. E. Hart, D. G. Stork (2001), Pattern Classification (2nd Edition), John
Wiley & Sons Inc.
[10] E. F. Ian H.Witten (2005), Data Mining: Practical Machine Learning Tools and
Techniques, Second Edition ed.: Morgan KauFmann Publishers.
[11 ] Isabelle Guyon (2006), Feature Selection, pp. 12-30.
[12] M. K. Jiawei Han (2006), Data Mining:Concepts and Techniques, Second Edition ed.
Diane Cerra.
[13] Jacek Jarmulak and Susan Craw (1999), Genetic Algorithms for Feature Selection and
Weighting, IJCAI 99 workshop.
[14] Krzysztof J.Cios, Witold Deddrycz, Roman W.Swiniarski, Lukasz A.Kurgan (2007),
Data Mining A Knowledge Discovery Approach, Springer.

[15] YongSeog Kim and Filipppo Meczenc(2005), Feature Selection in Data Mining.
[16] Ron Kohavi and George H. John (1996), Wrapper for Feature Subset Selection, AIJ
special issuse on relevance.
[17] Huan Liu and Hiroshi Motoda (2008), Computational Methods of Feature Selection,
Chapman & Hall/CRC.

13
[18] F. Livingston (2005), "Implementation of Breiman's Random Forest Machine Learning
Algorithm", Machine Learning Journal Paper.
[19] Luis Carlos Molina et at (2000), Feature Selection for Algorithms: A Survey and
Experimental Evaluation.
[20] Ha Nam Nguyen, Syng Yup Ohn (2005), A Learning Algorithm based for Searching
Optimal Combined Kernal Function in Support Vector Machine.
[21] Sancho Salcedo –Sanz etc (2000), Feature Selection via Genetic Optimization.
[22] Padhraic Smyth (2007), Cross-Validation Methods, CS 175, Fall.
[23] P. Spector (2008), Data Manipulation with R, Springer.
[24] M. G. Dan Steinberg, N. Scott Cardell (2004), A Brief Overview to Random Forests,
Salford Systems.
[25] Taylor & Francis Group, Computational Methods of Feature Selection, LLC
CRC Press.
[26] L. Torgo (2003), Data Mining with R: learning by case studies, LIACC-FEP.
[27] X. F. Lipo Wang(2005), Data Mining with Computational Intelligence, Springer.
[28] Xindong Wu, Vipin Kumar, J. Ross Quinlan, Joydeep Ghosh, Qiang Yang, Hiroshi
Motoda, Geoffrey J. McLachlan, Angus Ng, Bing Liu, Philip S. Yu, Zhi-Hua Zhou, Michael
Steinbach, David J. Hand, Dan Steinberg (2009), The Top Ten Algorithms in Data Mining,
Chapman & Hall/CRC.
[29] X. Su, Bagging and Random Forests, Available:

[30] Jihoon Yang and Vasant Honavar, Feature Subset Selection Using a Genetic Algorithm,
Artifical Intelligence Research Group.

[31] Dataset Available (2003):
[32] Genetic Algorithm:

×