ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG VĂN TRÌU TÌM HIỂU PHƯƠNG PHÁP TÌM THUỘC TÍNH TỐI ƯU NHẰM TĂNG HIỆU QUẢ PHÂN TÍCH TRONG PHÂN TÍCH DỮ LIỆU LỚN Ngành: Công n
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG VĂN TRÌU
TÌM HIỂU PHƯƠNG PHÁP TÌM THUỘC TÍNH TỐI ƯU NHẰM TĂNG HIỆU QUẢ PHÂN TÍCH TRONG PHÂN
TÍCH DỮ LIỆU LỚN
LUẬN VĂN THẠC SỸ - NGÀNH CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2015
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG VĂN TRÌU
TÌM HIỂU PHƯƠNG PHÁP TÌM THUỘC TÍNH TỐI
ƯU NHẰM TĂNG HIỆU QUẢ PHÂN TÍCH TRONG PHÂN
TÍCH DỮ LIỆU LỚN
Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã Số: 60480103
LUẬN VĂN THẠC SỸ - NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN HÀ NAM
HÀ NỘI - 2015
Trang 30
Mục lục
Giới thiệu 1
Chương 1 Giới thiệu Khai phá dữ liệu 3
1.1 Tổng quan Khai phá dữ liệu 3
1.2 Tổng quan trích chọn thuộc tính 5
2.3 Kết luận 7
Chương 2 Họ thuật toán k-Láng giềng gần nhất và Thuật toán Di truyềnError! Bookmark not defined.
2.1 Họ thuật toán k-Láng giềng gần nhất Error! Bookmark not defined.
2.1.1 Khái niệm Error! Bookmark not defined.
2.1.2 Thuật toán Láng giềng gần nhất (NN) Error! Bookmark not defined.
2.1.3 Thuật toán k-Láng giềng gần nhất (kNN) Error! Bookmark not defined.
2.1.4 Thuật toán Đánh trọng số k-Láng giềng gần nhất (WkNN) Error! Bookmark not
defined
2.1.5 Thuật toán Hàm nhân k-Láng giềng gần nhất (Kernel k-NN) Error! Bookmark not
defined
2.2 Thuật toán Di truyền (GA) Error! Bookmark not defined.
2.2.1 Giới thiệu Error! Bookmark not defined.
2.2.2 Thuật toán Di truyền (GA) Error! Bookmark not defined.
2.3 Kết luận Error! Bookmark not defined.
Chương 3 Mô hình GA_Kernel k-NN và kết quả thực nghiệmError! Bookmark not defined.
3.1 Giới thiệu Error! Bookmark not defined.
3.2 Mô hình GA_Kernel k-NN Error! Bookmark not defined.
3.2.1 Kiến trúc GA_Kernel k-NN Error! Bookmark not defined.
3.2.2 Môi trường thực nghiệm Error! Bookmark not defined.
3.2.3 Mô tả chương trình Error! Bookmark not defined.
3.3 Kết quả thực nghiệm Error! Bookmark not defined.
3.3.1 Dữ liệu sử dụng Error! Bookmark not defined.
3.3.2 Kết quả chạy trên bộ dữ liệu Arcene Error! Bookmark not defined.
3.3.3 Kết quả chạy trên bộ dữ liệu DLBCL (Diffuse large B-cell lymphoma) Error!
Bookmark not defined
3.4 Kết luận Error! Bookmark not defined.
Trang 4Kết luận Error!
Bookmark not defined.
Tài liệu tham khảo 8
Giới thiệu
Khoa học kỹ thuật phát triển, đi cùng với nó là sự phát triển không ngừng của dữ liệu về kích thước và chủng loại Nhiệm vụ khai phá dữ liệu nói chung cũng như nghiên cứu các thuật toán phân lớp nói riêng trở nên ngày càng bức thiết và đóng vai trò trung tâm trong việc giải quyết các bài toán cụ thể Thực tế cho thấy, chúng ta chỉ có thể tìm ra một số thuật toán phù hợp với một số loại dữ liệu cụ thể và bị giới hạn về kích thước dữ liệu Kết quả của thuật toán phụ thuộc rất nhiều vào việc xử lý dữ liệu thô Trong khai phá dữ liệu, phương pháp trích chọn đóng vai trò quan trọng trong tiền xử lý số liệu, đặc biệt đối với ngành tin sinh học, xử lý dữ liệu âm thanh, hình ảnh, dữ liệu mạng xã hội Đặc điểm chung của những lĩnh vực này là kích thước rất lớn (hàng trăm, hàng trăm nghìn thuộc tính) nhưng chỉ một số ít thuộc tính có giá trị dùng để phân tích Trích chọn thuộc tính giúp tìm ra các thuộc tính có ích, loại bỏ các thuộc tính dư thừa Phương pháp tác động trực tiếp đến kết quả của thuật toán như tăng tốc độ xử lý, cải thiện dữ liệu, tăng hiệu xuất khai phá
Thuật toán k-Láng giềng gần nhất (kNN) [10] là một trong những kỹ thuật
cơ bản, đơn giản và trực giác nhất trong lĩnh vực phân tích thống kê Bộ phân
lớp dựa trên thuật toán kNN là một bộ học lười (lazy learner), không cần thực
hiện quá trình học cho mô hình Nó cần sử dụng tất cả các đối tượng dữ liệu trong tập tham chiếu để ra quyết định gán nhãn lớp cho một quan sát mới Thực
nghiệm cho thấy, thuật toán kNN đơn giản, nhưng thường cho kết quả khá tốt
Tuy nhiên hiệu quả của thuật toán hạn chế do nền tảng xây dựng dựa trên dữ liệu tuyến tính Để có thể áp dụng thuật toán này vào dữ liệu phi tuyến, đã có nhiều nghiên cứu ứng dụng các kỹ thuật khác nhau để có thể biến đổi dữ liệu tuyến tính thành dữ liệu phi tuyến Hướng tiếp cận trong luận văn này là sử dụng một phép biến đổi từ không gian ban đầu sang một không gian mới sau đó áp
dụng thuật toán kNN Việc tính toán trên không gian phi tuyến là công việc của
Trang 52
thuật toán Hàm nhân – k Láng giềng gần nhất (Kernel - k Nearest Neighbor)
[12]
Thuật toán Di truyền (GA) [1] là kỹ thuật tìm kiếm tối ưu ngẫu nhiên phỏng theo quá trình thích nghi tiến hóa của các quần thể sinh vật Tư tưởng của thuật toán GA là mô phỏng sự phát triển tự nhiên, kế thừa và đấu tranh sinh tồn của sinh vật Thực tế chỉ có những sinh vật liên tục tiến hóa để thích nghi với hoàn cảnh sẽ tồn tại và phát triển GA xét đến toàn bộ các lời giải bằng cách, trước tiên chọn tập các lời giải sau đó loại bỏ những lời giải không thích hợp và chọn những lời giải thích hợp hơn để tiến hành lai ghép và đột biến nhằm mục đích tạo ra nhiều lời giải mới có độ thích nghi ngày càng cao GA giúp tìm ra lời giải tối ưu hay tốt nhất trong điều kiện thời gian và không gian cho phép
Trong luận văn này tôi đưa ra một cách tiếp cận mới, kết hợp thuật toán
GA và Kernel k-NN theo mô hình Wrapper GA giúp tìm ra các tập thuộc tính
và Kernel k-NN trả về kết quả của hàm mục tiêu trong GA Hay nói một cách
khác, GA đã chọn một tập thuộc tính được coi là tốt nhất trong quần thể các thuộc tính, tập thuộc tính tốt được hiểu trong ngữ cảnh hiện tại là các thuộc tính được trích chọn giúp phân lớp tốt nhất dựa trên kết quả của hàm tính khoảng
cách trong thuật toán Kernel k-NN GA đã giúp tăng độ chính xác phân lớp nhờ việc tối ưu dữ liệu đầu vào cho thuật toán Kernel k-NN
Nội dung của luận văn được chia thành các chương như sau:
Chương 1: Giới thiệu Khai phá dữ liệu
Chương 2: Cơ sở lý thuyết
Chương 3: Mô hình GA_Kernel k-NN và kết quả thực nghiệm
Kết luận: Tóm lược kết quả đạt được của luận văn
Trang 6Chương 1 Giới thiệu Khai phá dữ liệu
1.1 Tổng quan Khai phá dữ liệu
Khai phá dữ liệu là một khái niệm ra đời 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 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 (Knowledge 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 [11] 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
Ở một góc độ nào đó, khái niệm khai phá dữ liệu và khai phá tri thức
nhiều khi được coi là một Tuy nhiên, nếu xét kỹ thì khai phá dữ liệu chỉ là một khâu quan trọng trong khai phá tri thức Một quá trình phát hiện tri thức trong cơ sở dữ liệu bao gồm các giai đoạn chính sau :
(1) Làm sạch dữ liệu (Data Cleaning): Khử nhiễu và các dữ liệu mâu thuẫn (2) Tích hợp dữ liệu (Data Integration): Kết hợp nhiều nguồn dữ liệu khác
nhau
(3) Lựa chọn dữ liệu (Data Selection): Chắt lọc lấy những dữ liệu liên quan
đến nhiệm vụ phân tích sau này
(4) Biến đổi dữ liệu (Data Transformation): Biến đổi dữ liệu thu được về
dạng thích hợp cho quá trình khai phá
(5) Khai phá dữ liệu (Data Mining): Sử dụng những phương pháp thông
minh để khai thác dữ liệu nhằm thu được các mẫu mong muốn
(6) Đánh giá kết quả (Pattern Evaluation): Sử dụng các độ đo để đánh giá
kết quả thu được
(7) Biểu diễn tri thức (Knowledge Presentation): Sử dụng các công cụ biểu
diễn trực quan để biểu diễn những tri thức khai phá được cho người dùng
Trang 74
Quá trình này có thể được lặp lại nhiều lần, một hay nhiều giai đoạn trước có thể được lặp lại dựa trên phản hồi từ kết quả của các giai đoạn sau
Một số phương pháp khai phá dữ liệu tiêu biểu:
Phân lớp (Classification) : Khai thác một hàm đã được huấn luyện
trước để phân loại một đối tượng dữ liệu vào một trong các lớp được định nghĩa trước
Hồi qui (Regression) : Khai thác một hàm đã được huấn luyện trước
để ánh xạ một đối tượng dữ liệu thành một giá trị thực là kết quả dự báo
Phân cụm (Clustering) : Giải quyết vấn đề tìm kiếm, phát hiện số
lượng hữu hạn các cụm mô tả một tập hợp dữ liệu ban đầu không có nhãn Đó là quá trình tìm cách nhóm các đối tượng đã cho vào các cụm, sao cho các đối tượng trong cùng một cụm tương tự nhau (similar), và các đối tượng khác cụm thì không tương tự nhau (dissimilar)
Hình 1.1: Quá trình phát hiện tri thức trong cơ sở dữ liệu
Kho dữ liệu
Dữ liệu chuyển dạng
Dữ liệu
Làm sạch và
tích hợp
Lựa chọn và chuyển dạng
Dữ liệu khái phá
Đánh giá và trình diễn
Tri thức
Mẫu
Trang 8 Tổng hợp (Summarization) : Quá trình bao gồm các phương pháp để
tìm một mô tả xúc tích cho một tập (hoặc một tập con) dữ liệu
Mô hình hóa ràng buộc (Dependency Modeling) : Tìm một mô hình
cục bộ mô tả các ràng buộc quan trọng giữa các biến hoặc giữa các giá trị của một đặc trưng trong một tập dữ liệu hoặc trong một phần của tập dữ liệu
Phát hiện biến đổi và độ lệch (Change and Deviation Detection):
Khai phá những biến đổi quan trọng nhất trong tập dữ liệu
Trong giai đoạn tiền xử lý số liệu, việc trích chọn thuộc tính đóng vai trò quan trọng
1.2 Tổng quan trích chọn thuộc tính
Về cơ bản việc trích chọn thuộc tính có ích sẽ bao gồm hai công đoạn cơ bản gồm công đoạn xây dựng dữ liệu và công đoạn trích chọn thuộc tính Xây dựng dữ liệu là tạo ra bộ các thuộc tính, một công việc rất quan trọng trong việc phân tích số liệu Yêu cầu đặt ra phải đảm bảo không để mất quá nhiều thông tin
có ích đồng thời không được quá tốn kém chi phí tài nguyên và thời gian Công đoạn trích chọn nhằm tìm ra thuộc tính đại diện phù hợp yêu cầu phân tích, loại
bỏ thuộc tính dư thừa, thuộc tính nhiễu, tăng hiệu suất và kết quả khai phá dữ liệu Có rất nhiều phương pháp và các hướng tiếp cận khác nhau, tựu chung lại đều hướng đến mục tiêu :
Tăng tốc độ thuật toán
Giảm không gian lưu trữ dữ liệu
Tăng kết quả phân lớp, đoán nhận
Giúp biểu diễn, minh họa dữ liệu dễ dàng hơn
Để đánh giá độ tốt của một tập con đặc trưng phụ thuộc vào yêu cầu cụ thể khi phân tích dữ liệu, mọi công việc trong toàn bộ quá trình cũng đều hướng mục tiêu đạt được yêu cầu cụ thể trên Về cơ bản chúng ta có thể phân loại các phương pháp trích chọn theo hai cách tiếp cận khác nhau là Filter và Wrapper được trình bày trong các tài liệu [3, 13] Lược đồ thực hiện [2] được giản hóa trong hai hình vẽ dưới đây
Trang 96
Hình 1.2 : Hướng tiếp cận Filter
Theo mô hình Filter, các thuộc tính được chọn độc lập với thuật toán khai phá
dữ liệu Ngược lại, mô hình Wrapper các thuộc tính được chọn phụ thuộc theo một nghĩa nào đó với thuật toán khai phá dữ liệu
Hình 1.3 : Hướng tiếp cận Wrapper
Mô hình Filter đánh giá mỗi cá thể bằng một vài tiêu chuẩn hay độ đo nào đó, rồi chọn ra tập con các thuộc tính được đánh giá cao nhất Nhìn chung, Filter coi tiến trình của trích chọn thuộc tính như tiến trình thực thi trước, sau đó mới sử dụng thuật toán để phân lớp
Mô hình Wrapper sử dụng một thuật toán tìm kiếm để đánh giá tập con các
thuộc tính coi như là một nhóm hơn là một cá thể riêng lẻ Cốt lõi của mô hình Wrapper là một thuật toán máy học cụ thể Nó đánh giá độ tốt của những tập
con đặc trưng tùy theo độ chính xác học của tập con, điều này xác định thông
qua một tiêu chí nào đó Những thuật toán tìm kiếm cũng sử dụng hàm đánh
giá kinh nghiệm (heuristics) để hướng dẫn việc tìm kiếm tập trung vào các đối tượng có triển vọng
Công việc cần thực hiện trong thuật toán trích chọn bao gồm :
Dữ liệu Trích lọc tập con của danh sách các thuộc tính
Thuật toán phân lớp
Dữ liệu huấn luyện Tập thuộc tính
Dữ liệu
huấn
luyện
Dữ liệu
kiểm tra
Đánh giá thuộc tính
Thuật toán phấn lớp (Kiểm chứng)
Thuật toán phân lớp (Dự đoán)
Đánh giá kết quả
Tìm kiếm thuộc tính
Thuộc tính phân lớp
Tập thuộc tính lựa chọn Đánh giá kết quả
Tính toán các giả thiết Tập các thuộc
tính lựa chọn
Trang 10- Phương pháp để sinh ra tập thuộc tính đặc trưng : (Có thể hiểu tương ứng với các chiến lược tìm kiếm) Đầu ra của bộ sinh sẽ xác định thuật toán trích chọn đặc trưng Có hai chiến lược để sinh tập con :
Đầy đủ (Complete) : Áp dụng chiến lược tìm kiếm vét cạn để sinh tập con Đối với hầu hết các hệ thông máy thực, chiến lược này không phù hợp do đỏi hỏi tài nguyên quá lớn
Kinh nghiệm (Heuristically) : Để giảm bớt không gian tìm kiếm, kết quả thu được ở mức chấp nhận được, chiến lược sinh tập con đặc trưng dựa vào kinh nghiệm nào đó, có ba kỹ thuật điển hình là lựa chọn tiến (Forward Selection), lược bỏ lùi (Backward Elimination)
và lựa chọn hai hướng (Bi – direction Selection)
- Định nghĩa hàm đánh giá : (đưa ra các tiêu chí để có thế xác định một thuộc tính hay nhóm thuộc tính là tốt hay không tốt) Bộ đánh giá của những mô hình thuật toán khác nhau là khác nhau Bộ đánh giá mô hình Filter thường là các hàm đánh giá, trong khi mô hình Wrapper là độ học chính xác đạt được bởi quá trình thực thi thuật toán học máy điều khiển trên hệ thống học
Hàm đánh giá : hàm đánh giá thường dùng như xấp xỉ chất lượng (Approxination Quality), độ quan trọng (Feature Importance), trọng
số của thuộc tính (Feature Weight)
Học chính xác : mô hình Wrapper, dữ liệu chia ngẫu nhiên thành hai tập, tập huấn luyện và tập kiểm tra Độ chính xác đạt được trong trường hợp này là giá trị ngẫu nhiên Để tăng cường độ ổn định mô hình Wrapper chúng ta thường sử dụng kỹ thuật kiểm tra chéo (Cross Validation)
- Ước lượng hàm đánh giá đó : kiểm chứng lại xem hàm đánh giá có thực sự phù hợp và hiệu quả với bộ dữ liệu không
2.3 Kết luận
Trích chọn thuộc tính giúp tìm ra những đặc trưng tốt nhất, đồng thời loại
bỏ nhiễu, giảm bớt chiều trong dữ liệu Hai mô hình phổ biến trong phương pháp trích chọn thuộc tính đặc trưng là Filter và Wrapper Mỗi mô hình đều có những ưu điểm và nhược điểm riêng Tùy từng yêu cầu và trường hợp cụ thể mà
ta có thể áp dụng một trong hai mô hình này
Trang 118
Tài liệu tham khảo
Tiếng Việt
[1] Bùi Văn Bình – CNCK, Giới thiệu về Giải Thuật di truyền (GA)
http://www.epu.edu.vn/cnck/Default.aspx?BT=14258
[2] 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
Tiếng Anh
[3] A.L Blum, P Langley, “Selection of Relevant Features and Examples in Machine Learning”, Artificial Intelligence Vol 97 (1997) 245
[4] Alexander Statnikov, Constantin F Aliferis, Ioannis Tsamardinos, Douglas
Hardin, Shawn Levy, “A comprehensive evaluation of multicategory classification methods for microarray gene expression cancer diagnosis, Bioinformatics”, 21(5), 2005, 631-643
[5] Binh Tran, Bing Xue, and Mengjie Zhang, “Improved PSO for Feature Selection on High-Dimensional Datasets”, page 503, Simulated Evolution
and Learning 10th International Conference, SEAL 2014
Hu, Qing-Song Xu, Yi-Zeng Liang (2012), “Kernel k-nearest neighbor
Laboratory Systems 114 (2012) 19–23
[7] Hechenbichler Klaus, Schliep Klaus (2004), “Weighted k-Nearest-Neighbor Techniques and Ordinal Classification”, Discussion Paper 399, SFB 386,
Ludwig-Maximilians University Munich
[8] Huazhen Wang, Cheng Wang∗ , Bing Lv, Xiaoming Pan (2015), “Improved Variable Importance Measure of Random Forest via Combining of Proximity Measure and Support Vector Machine for Stable Feature Selection” Journal
of Information & Computational Science 12:8 (2015) 3241–3252