Bài báo đề xuất một phương pháp học máy cho giải thuật phân lớp này nhằm tăng hiệu quả phân lớp của thuật toán. Cách tiếp cận này về cơ bản đã làm tăng khả năng phân lớp của giải thuật RF, phương pháp đề xuất còn cho thấy khả năng phân lớp tốt hơn một số phương pháp trích chọn đã được công bố. Như vậy, hướng cải tiến mà bài báo đề xuất là có khả thi và thu được kết quả tương đối cao. Mời các bạn cùng tham khảo!
Trang 1Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Một phương pháp trích trọn thuộc tính hiệu quả cho
dữ liệu có số chiều lớn
Hà Văn Sang1, Đồng Thị Ngọc Lan1 và Ngô Thị Thu Trang2
1Khoa Hệ thống thông tin Kinh tế, Học Viện Tài chính
2Khoa Viễn thông, Học viện Công nghệ Bưu chính Viễn thông Email: sanghv@hvtc.edu.vn, landn0101@gmail.com, trangntt1@gmail.com
Abstract— Phân lớp là một trong những bài toán cơ bản trong
khai phá tri thức và dữ liệu Một thách thức của bài toán phân
lớp là số lượng thuộc tính thường rất lớn, việc phân lớp sao cho
chính xác và hiệu quả hiện vẫn là một nghiên cứu thú vị cho các
nhà khoa học trong lĩnh vực khoa học máy tính Bài báo đi sâu
vào nghiên cứu giải thuật phân lớp thuộc tính random forest
(RF) Đây là một giải thuật đã được nhiều nghiên cứu chứng
minh là rất hiệu quả trong phân lớp thuộc tính đối với bộ dữ liệu
có số lượng thuộc tính lớn Trên cơ sở đó bài báo đề xuất một
phương pháp học máy cho giải thuật phân lớp này nhằm tăng
hiệu quả phân lớp của thuật toán Cách tiếp cận này về cơ bản đã
làm tăng khả năng phân lớp của giải thuật RF, phương pháp đề
xuất còn cho thấy khả năng phân lớp tốt hơn một số phương
pháp trích chọn đã được công bố Như vậy, hướng cải tiến mà bài
báo đề xuất là có khả thi và thu được kết quả tương đối cao
Keywords- randomforest, trích chọn thuộc tính, phân lớp dữ
liệu, khai phá dữ liệu.
I GIỚI THIỆU 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 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 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 và 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 lai ghé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 đặc trưng (feature extraction/ selection
method) Với các phương pháp kể trên phương pháp trích chọn
đặc trưng 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 này có ảnh hưởng ngay lập tức đến các ứng dụng như tăng tốc độ của các thuật toán khai phá dữ liệu, cải thiệu chất lượng dữ liệu và vì vậy tăng hiệu suất khai phá dữ liệu, kiểm soát được các kết quả của thuật toán
Trong bài báo này chúng tôi sẽ trình bày một đề xuất mới
để dựa vào đó xây dựng mô hình trích chọn đặc trưng 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 Cụ thể, phương pháp đề xuất sẽ chọn ra những thuộc tính tốt nhất để làm tăng năng suất của thuật toán phân lớp Random Forest
II CƠ SỞ LÝ THUYẾT
A Trích chọn thuộc tính
Trích chọn thuộc tính là một bước cơ bản nhất trong việc tiền xử lý dữ liệu, nó làm giảm bớt số chiều của mẫu Lựa chọn thuộc tính có thể 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 xử lý [7]
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 [8] 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 trích 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ả
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 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 mãi không dừng Đ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:
Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Trang 2Một phương pháp trích trọn thuộc tính hiệu quả cho
dữ liệu có số chiều lớn
Hà Văn Sang1, Đồng Thị Ngọc Lan1 và Ngô Thị Thu Trang2
1Khoa Hệ thống thông tin Kinh tế, Học Viện Tài chính
2Khoa Viễn thông, Học viện Công nghệ Bưu chính Viễn thông Email: sanghv@hvtc.edu.vn, landn0101@gmail.com, trangntt1@gmail.com
Abstract— Phân lớp là một trong những bài toán cơ bản trong
khai phá tri thức và dữ liệu Một thách thức của bài toán phân
lớp là số lượng thuộc tính thường rất lớn, việc phân lớp sao cho
chính xác và hiệu quả hiện vẫn là một nghiên cứu thú vị cho các
nhà khoa học trong lĩnh vực khoa học máy tính Bài báo đi sâu
vào nghiên cứu giải thuật phân lớp thuộc tính random forest
(RF) Đây là một giải thuật đã được nhiều nghiên cứu chứng
minh là rất hiệu quả trong phân lớp thuộc tính đối với bộ dữ liệu
có số lượng thuộc tính lớn Trên cơ sở đó bài báo đề xuất một
phương pháp học máy cho giải thuật phân lớp này nhằm tăng
hiệu quả phân lớp của thuật toán Cách tiếp cận này về cơ bản đã
làm tăng khả năng phân lớp của giải thuật RF, phương pháp đề
xuất còn cho thấy khả năng phân lớp tốt hơn một số phương
pháp trích chọn đã được công bố Như vậy, hướng cải tiến mà bài
báo đề xuất là có khả thi và thu được kết quả tương đối cao
Keywords- randomforest, trích chọn thuộc tính, phân lớp dữ
liệu, khai phá dữ liệu.
I GIỚI THIỆU 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 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 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 và 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 lai ghé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 đặc trưng (feature extraction/ selection
method) Với các phương pháp kể trên phương pháp trích chọn
đặc trưng 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 này có ảnh hưởng ngay lập tức đến các ứng dụng như tăng tốc độ của các thuật toán khai phá dữ liệu, cải thiệu chất
lượng dữ liệu và vì vậy tăng hiệu suất khai phá dữ liệu, kiểm soát được các kết quả của thuật toán
Trong bài báo này chúng tôi sẽ trình bày một đề xuất mới
để dựa vào đó xây dựng mô hình trích chọn đặc trưng 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 Cụ thể, phương pháp đề xuất sẽ chọn ra những thuộc tính tốt nhất để làm tăng năng suất của thuật toán
phân lớp Random Forest
II CƠ SỞ LÝ THUYẾT
A Trích chọn thuộc tính
Trích chọn thuộc tính là một bước cơ bản nhất trong việc tiền xử lý dữ liệu, nó làm giảm bớt số chiều của mẫu Lựa chọn thuộc tính có thể 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 xử lý [7]
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 [8] 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 trích 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ả
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 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 mãi không dừng Đ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, 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, 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, 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 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 [1]
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 Về
cơ bản có thể phân loại các phương pháp lựa chọn thuộc tính gồm có Filter, Wrapper và Embedded
Hướng tiếp cận Filter (Các thuộc tính được chọn độc lập với thuật toán khai phá dữ liệu)[13]
Hướng tiếp cận Wrapper (Các thuộc tính được chọn phụ thuộc theo 1 nghĩa nào đó với thuật toán khai phá dữ liệu)[13]
Để thực hiện được các thuật toán trích chọn chúng ta phải thực hiện được một số công việc sau:
- Phương pháp để sinh ra tập thuộc tính đặc trưng(tương ứng với các chiến lược tìm kiếm)
- Định nghĩa hàm đánh giá (Đưa ra tiêu chí để xác định
1 thuộc tính hay 1 nhóm thuộc tính là tốt hay xấu)
- Ước lượng hàm đánh giá (Kiểm chứng hàm đánh giá
có thực sự phù hợp và hiệu quả với bộ dữ liệu không)
B Thuật toán Random Forest
Random Forest (rừng ngẫu nhiên) [14, 15, 16] 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 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
Trong random forest, sự phát triển của một tập hợp các cây
đã 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ỏ phiế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 huấn luyệ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
Random forest được định nghĩa như sau [8]: 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
• Đố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)
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 người học trong việc tổng hợp các kết quả 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
III MÔ HÌNH ĐỀ XUẤT Bài báo sử dụng mô hình Wrapper với hàm mục tiêu để đánh giá ở đây là thuật toán toán Random Forest được biểu diễn như hình 3.1 dưới đây
Hình 3.1: Mô hình đề xuất
Kiến trúc của hệ thống gồm hai phần chính:
Trang 3Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Phần 1 được sử dụng để tìm ra bộ thuộc tính tốt nhất Một
cách tổng quát là hệ thống sinh ra các bộ thuộc tính con, sau đó
sử dụng thuật toán học máy RF để đánh giá các bộ thuộc tính
con này Quá trình này lặp đi lặp lại tới khi thỏa mãn điều kiện
dừng hệ thống sẽ thu được bộ thuộc tính tối ưu nhất
Phần 2 để kiểm chứng lại xem mô hình đưa ra có phù hợp
không
Thuật toán đề xuất
Chúng tôi đề xuất thuật toán để đánh giá và tìm ra tập các
thuộc tính tốt từ tập các thuộc tính ban đầu như sau:
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:
n/m thuộc tính đều nhau
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:
kij = 0 nếu thuộc tính thứ i không được chọn trong bộ thuộc
tính thứ j
kij = 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ồm p% thuộc tính tốt nhất
Quay lại B1 Điều kiện dừng:
a) Số thuộc tính < ngưỡng cho phép, hoặc bộ thuộc tính
mới có độ thích hợp không lớn hơn bộ thuộc tính vừa xác định
trước đó
b) Số vòng lặp xác định
Trên đây là hướng đề xuất để tìm ra bộ thuộc tính tối ưu nhỏ
nhất, cách làm này mục đích là để hạn chế số lượng thuộc tính
đầu ra Các thuộc tính ban đầu được phân chia đều để đảm bảo
tất cả các thuộc tính đều được chọn, rồi kết hợp với cách phân
chia các thuộc tính ngẫu nhiên để tạo được các bộ con thuộc
tính mới Sau đó dùng thuật toán học máy RF tính độ phù hợp
của các bộ thuộc tính Dựa trên các giá trị độ phù hợp vừa tính
được chúng ta tìm ra bộ thuộc tính có số lượng thuộc tính ít
hơn mà vẫn đảm bảo được mục tiêu của bài toán
IV KẾT QUẢ 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 Phương pháp học máy được thực hiện trên ngôn ngữ R, đây là ngôn ngữ chuyên dùng trong xác suất thống kê, có thể tải về từ địa chỉ www.r-project.org, gói random forest cũng được tải về từ địa chỉ này, các mô đun khác
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 Quá trình thực nghiệm và kết quả Chúng tôi đã sử dụng bộ dữ liệu có trên thực tế để kiểm nghiệm hệ thống là bộ dữ liệu mô tả về bệnh ung thư dạ dày Kết quả thực nghiệm được trình bày dưới đây
Bộ dữ liệu ung thư dạ dày (Stomach)
Bộ dữ liệu Stomach Cancer gồm 137 mẫu bao gồm các thông tin về gen của các bệnh nhân bị bệnh và không bị bệnh Trong đó có 67 mẫu của bệnh nhân bình thường và 70 mẫu của người bị bệnh Bộ dữ liệu này được cung cấp bởi Trung tâm nghiên cứu về bệnh ung thư của Đại học Quốc gia Seoul tại Seoul, Hàn Quốc [17]
Bộ dữ liệu là bảng hai chiều 137 x 119, 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ư)
Kết quả và phân tích thực nghiệm trên bộ dữ liệu Stomach Phần 1: Thực thi thuật toán RF trên bộ dữ liệu Stomach gốc 20 lần, mỗi lần chạy lại thực hiện kiểm chứng chéo 5 lần với số cây lần lượt là 100,300,500,800,1000 ta được kết quả như sau :
Bảng 4.1 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
Số cây Giá trịtrung
chuẩn
Giá trị nhỏ nhất
Giá trị lớn nhất
100 0.7765 0.02539685 0.73 0.82
300 0.781 0.0148324 0.76 0.81
500 0.7875 0.01996708 0.76 0.83
800 0.795 0.01538968 0.77 0.81
1000 0.796 0.0146539 0.76 0.82
Ta thấy số cây tăng lên thì độ chính xác phân lớp của RF cũng tăng lên, độ lệch chuẩn nhỏ dần, điều đó rõ ràng là đúng với tư tưởng của thuật toán, vì RF thực hiện phân lớp bằng phương pháp xây dựng cây, mỗi cây sẽ bỏ phiếu cho một phân lớp, số lượng cây càng lớn thì số phiều bầu cho phân lớp càng nhiều, do độ độ chính xác phân lớp càng cao Từ kết quả độ lệch chuẩn tính được chứng tỏ RF chạy tương đối ổn định
Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Trang 4Bảng 4.2 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
Số
cây
Thời
gian
huấn
luyện
trung
bình
Thời gian huấn luyện nhỏ nhất
Thời gian huấn luyện lớn nhất
Thời gian kiểm tra trung bình
Thời gian kiểm tra nhỏ nhất
Thời gian kiểm tra lớn nhất
100 0.379 0.366 0.402 0.0294 0.018 0.04
300 0.9621 0.946 0.986 0.0339 0.024 0.046
500 1.5574 1.502 1.846 0.0386 0.03 0.046
800 2.4123 2.366 2.482 0.0361 0.03 0.042
1000 3.0899 3.01 3.146 0.0391 0.032 0.048
Số lượng cây càng lớn thì thời gian huấn luyện và kiểm tra
càng tăng vì số cây càng lớn thì số phép toán thực hiện càng
nhiều nên thời gian thực hiện cũng tăng theo
Phần 2: Tiến hành lựa chọn bộ dữ liệu tối ưu từ bộ dữ
liệu Stomach ban đầu bằng phương pháp đề xuất ở trên Với
tập các thuộc tính ban đầu, chúng ta thực hiện chia thành m bộ
thuộc tính con bằng cách sử dụng hàm sample( , ,replace=True)
sao cho mỗi bộ chứa n/m thuộc tính phân phối đều và n/m
thuộc tính ngẫu nhiên, với n là tổng số thuộc tính, m là tham số
phân chia(cụ thể thực nghiệm chọn m=10) Mất khoảng 20
phút để lựa chọn được một bộ thuộc tính mới có độ chính xác
đoán nhận gần 84% Cụ thể, file kết quả BestDPos cho biết bộ
thuộc tính mới gồm 36 thuộc tính có vị trí tương ứng trong số
119 thuộc tính ban đầu là :
2 8 15 16 19 26 27 28 34
45 50 53 57 58 59 61 64 66 68
69 71 77 80 82 90 93 95
101 102 103 107 109 110 116 118 119
Với bộ thuộc tính mới tìm được ta lại thực hiện lại phần 1
đã trình bày ở trên được kết quả đoán nhận của RF khi chạy 20
lần trên bộ thuộc tính mới biểu diễn bởi bảng 4.3
Bảng 4.3 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
Số
cây
Giá trị
trung
bình Độ lệch
chuẩn Giá trịnhỏ nhất Giá trịlớn nhất
100 0.825288 0.009637 0.803843 0.846115
300 0.822774 0.007596 0.806182 0.836424
500 0.826391 0.008341 0.803342 0.842774
800 0.832055 0.007423 0.821053 0.846784
1000 0.833693 0.00556 0.824561 0.840769
Bảng 4.4 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
Số cây
Thời gian huấn luyện trung bình
Thời gian huấn luyện nhỏ nhất
Thời gian huấn luyện lớn nhất
Thời gian kiểm tra trung bình
Thời gian kiểm tra nhỏ nhất
Thời gian kiểm tra lớn nhất
100 0.1235 0.11 0.16 0.011 0 0.02
300 0.319 0.29 0.39 0.0165 0 0.03
500 0.5445 0.51 0.61 0.0205 0.01 0.05
800 0.8555 0.81 0.92 0.0275 0.01 0.05
1000 1.031 0.99 1.08 0.03 0.01 0.06 4.3 Nhận xét
So sánh bảng 4.1 với bảng 4.3 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%, thuật toán RF cho kết quả đoán nhận trung bình là 78% trên bộ dữ liệu ban đầu, còn RF chạy trên bộ dữ liệu sau khi lựa chọn các thuộc tính bằng thuật toán đề xuất cho kết quả đoán nhận trung bình là 83% Từ bảng 4.2 và 4.4 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à bài báo đưa ra 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ể
Bộ thuộc tính mới tìm được theo phương pháp đề xuất, đáp ứng được các mong muốn của chúng ta là nâng cao hiệu suất phân lớp và giảm thời gian học và thời gian kiểm thử Đặc biệt, trên các bảng 4.1, 4.3 ta thấy độ lệch chuẩn khi chạy
RF trên bộ thuộc tính mới chỉ bằng 1/4 đến 1/3 độ lệch chuẩn khi chạy RF trên bộ dữ liệu ban đầu, chứng tỏ chạy RF trên bộ
dữ liệu mới ổn định hơn trên bộ dữ liệu ban đầu Những điều vừa nhận xét được minh họa rõ nét hơn trên các hình 4.1-4.2 sau đây Các hình vẽ đó phản ánh cho chúng ta thấy chạy RF trên bộ dữ liệu mới cho kết quả cao hơn và ổn định hơn và chạy nhanh hơn khi chạy RF trên bộ dữ liệu Stomach ban đầu
Trang 5Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Hình 4.1 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.2 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
V KẾT LUẬN Trong bài báo này chúng tôi đã tập trung nghiên cứu, tìm hiểu
về thuật toán di truyền và Random Forest cùng với một số
phương pháp tiền xử lý dữ liệu khác Từ những tìm hiểu này,
bài báo đề xuất hướng cải tiến hiệu quả phân lớp của thuật toán
RF theo phương pháp tìm ra bộ thuộc tính tối ưu nhỏ nhất từ
một bộ thuộc tính rất lớn của dữ liệu ban đầu
Bài báo đã trình bày chi tiết các bước trong nội dung thuật toán
đề xuất, sau đó tiến hành thực nghiệm để chứng minh tính đúng
đắn của thuật toán Thực nghiệm đã sử dụng bộ dữ liệu được
lấy từ các công trình nghiên cứu trước đó là dữ liệu gen của các
bệnh nhân bị ung thư dạ dày (Stomach) Trong quá trình thực
nghiệm chúng tôi tiến hành chạy rất nhiều lần, sau đó đánh giá
kết quả nhận được giữa chương trình RF nguyên bản và
phương pháp đề xuất, có phân tích và vẽ biểu đồ so sánh Từ
đó, chúng ta thấy được kết quả thực nghiệm trên cả hai bộ dữ
liệu đều phản ánh rằng phương pháp đề xuất làm cho thuật toán
phân lớp RF chạy nhanh hơn, ổn định hơn và có khả năng đoán
nhận chính xác hơn Tuy nhiên, phương pháp đề xuất này có
nhược điểm là phải tiêu tốn một khoảng thời gian chạy để tìm
ra bộ thuộc tính tối ưu tương đối lớn Nhưng lại giảm được thời
gian huấn luyện và kiểm thử cho tất cả các lần sử dụng bộ dữ
liệu về sau này 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 làm thuật toá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 chúng 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, chúng 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ể Chúng tôi sẽ 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 véc tơ hỗ trợ (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 đó, chúng tôi hy vọng 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
TÀI LIỆU THAM KHẢO
[1] Nguễn Hà Nam, 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ệ 25 (2009) 84-93
[2] Nguyễn Đình Thúc, Lập trình tiến hóa, Nhà xuất bản giáo dục, 2001 [3] Huan Liu and Hiroshi Motoda, Computational Methods of Feature Selection, Chapman & Hall/CRC, 2008
[4] YongSeog Kim and Filipppo Meczenc, Feature Selection in Data Mining, 2005
[5] Jacek Jarmulak and Susan Craw, Genetic Algorithms for Feature Selection and Weighting, IJCAI 99 workshop, 1999
[6] Jihoon Yang and Vasant Honavar, Feature Subset Selection Using a Genetic Algorithm, Artifical Intelligence Research Group
[7] Krzysztof J.Cios, Witold Deddrycz, Roman W.Swiniarski, Lukasz A.Kurgan, Data Mining A Knowledge Discovery Approach, Springer, 2007
[8] Luis Carlos Molina et at, Feature Selection for Algorithms: A Survey and Experimental Evaluation, 2000
[9] Ron Kohavi and George H John, Wrapper for Feature Subset Selection, AIJ special issuse on relevance, 1996
[10] Sancho Salcedo –Sanz etc, Feature Selection via Genetic Optimization, 2000
[11] Ha Nam Nguyen, Syng Yup Ohn, A Learning Algorithm based for Searching Optimal Combined Kernal Function in Support Vector Machine, 2005
[12] Translation of Microarray Data into Clinically Relevant Cancer Diagnostic Tests Using Gege Expression Ratios in Lung Cancer And Mesothelioma, Cancer Research, 2002
[13] R Kohavi, G.H John, Wrappers for FeatureSubset Selection, Artificial Intelligence Vol 97(1997) 273
[14] L Breiman (2002), Manual On Setting Up, Using, And Understanding Random Forests V3.1, Available:
http://oz.berkeley.edu/users/breiman/Using_random_forests_V3.1.pdf [15] L Breiman (2001), "Random Forests", Machine Learning Journal Paper, vol 45
[16] A C Leo Breiman, Random Forests, Available:
http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm [17] Ha Nam Nguyen, Syng Yup Ohn (2005), A Learning Algorithm based for Searching Optimal Combined Kernal Function in Support Vector Machine
Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)