Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,08 MB
Nội dung
lOMoARcPSD|11424851 TRƢỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP TỐT NGHIỆP ĐỀ TÀI: KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH VÀ ỨNG DỤNG Giảng viên hƣớng dẫn: Ths Trần Hùng Cƣờng Sinh viên thực hiện: Nguyễn Bá Nguyện Lớp: Khoa học máy tính Khóa: Hà Nội, Tháng năm 2013 lOMoARcPSD|11424851 LỜI MỞ ĐẦU Trong thời đại ngày nay, yếu tố định thành công lĩnh vực gắn liền với việc nắm bắt, thống kê khai thác thông tin hiệu Dữ liệu ngày lớn nên việc tìm thơng tin tiềm ẩn chúng khó khăn Khai phá tri thức lĩnh vực nghiên cứu mới, mở thời kỳ việc tìm thơng tin hữu ích Nhiệm vụ lĩnh vực khai phá tri thức sở liệu, khai phá liệu sở liệu hệ thống phân tích tự động mà q trình tƣơng tác thƣờng xuyên ngƣời với sở liệu đƣợc trợ giúp nhiều phƣơng pháp công cụ tin học Em xin bày tỏ biết ơn sâu sắc tới Ths Trần Hùng Cƣờng ngƣời trực tiếp hƣớng dẫn, bảo tận tình, cung cấp tài liệu phƣơng pháp nghiên cứu khoa học để em hoàn thành luận văn Em xin gửi lời cảm ơn tới thầy cô giáo dạy dỗ trình em theo học Trƣờng Trong suốt trình nghiên cứu, cố gắng nhƣng chắn luận không tránh khỏi thiếu sót, mong q thầy góp ý để luận văn đƣợc hồn chỉnh Em xin chân thành cảm ơn! Ký tên Nguyện Nguyễn Bá Nguyện lOMoARcPSD|11424851 TÓM TẮT NỘI DUNG Nội dung luận văn em xin trình bày bao gồm ba chƣơng: Chƣơng một: giới thiệu chung cơng nghệ khai phá trí thức, khái niệm bản, ý nghĩa tầm quan trọng việc khai phá tri thức Chƣơng hai: trình bày phƣơng pháp khai phá liệu định, khái niệm định, thuật toán xây dựng định: CLS, ID3, C4.5, rút gọn luật định đánh giá thuật toán xây dựng định Chƣơng ba: cài đặt chƣơng trình hỗ trợ đinh đinh dựa thuật toán C4.5 lOMoARcPSD|11424851 MỤC LỤC LỜI MỞ ĐẦU TÓM TẮT NỘI DUNG MỤC LỤC DANH SÁCH HÌNH VẼ PHẦN MỞ ĐẦU CHƢƠNG 1: GIỚI THIỆU CHUNG VỀ KHAI PHÁ TRI THỨC 1.1 Phát tri thức khai phá liệu 1.2 Quá trình phát tri thức từ sở liệu 1.2.1 Hình thành định nghĩa toán 1.2.2 Thu thập xử lý liệu 1.2.3 Khai thác liệu rút tri thức 10 1.2.4 Phân tích đánh giá tri thức 10 1.2.5 Sử dụng tri thức phát 10 1.3 Khai phá liệu 11 1.3.1 Các quan niệm khai phá liệu 11 1.3.2 Quá trình khái phá liệu 12 1.3.3 Kiến trúc hệ thống khai phá liệu 14 1.4 Các kỹ thuật khai phá liệu 15 1.4.1 Phân lớp liệu 15 1.4.2 Phân cụm liệu 16 1.4.3 Cây định 16 1.4.4 Luật kết hợp 16 1.4.5 Hồi quy 16 1.4.6 Mạng Nơron 16 1.4.7 Giải thuật di truyền 17 lOMoARcPSD|11424851 CHƢƠNG 2: CÁC PHƢƠNG PHÁP KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH 18 2.1 2.2 Cây định 18 2.1.1 Giới thiệu 18 2.1.2 Các kiểu định 18 2.1.3 Ưu điểm định 19 2.1.4 Phân lớp liệu định 19 2.1.5 Xây dựng định 21 2.1.6 Rút luật từ định 22 Các thuật toán xây dựng định 22 2.2.1 Thuật toán CLS 22 2.2.2 Thuật toán ID3 23 2.2.3 Thuật toán C4.5 25 2.2.4 Cắt tỉa định 31 2.2.5 Đánh giá kết luận thuật toán xây dựng định 33 CHƢƠNG 3: CẶT ĐẶT CHƢƠNG TRÌNH KHAI PHÁ DỮ LIỆU SỬ DỤNG CÂY QUYẾT ĐỊNH 36 3.1 Bài toán thực tế 36 3.2 Cài đặt thuật toán 36 3.3 Hình ảnh demo 40 KẾT LUẬN 44 TÀI LIỆU THAM KHẢO 45 lOMoARcPSD|11424851 DANH SÁCH HÌNH VẼ Hình 1 Quá trình khai phá liệu từ sở liệu Hình Quá trình khai phá liệu 12 Hình Kiến trúc hệ thống khai phá liệu 14 Hình 1: Cây định phân lớp mức lương 18 Hình 2 Xây dựng mơ hình 20 Hình Sử dụng mơ hình 21 Hình Giao diện mở chương trình 40 Hình Load liệu tạo định 41 Hình 3 Tiến hành cắt tỉa 42 Hình Hình ảnh định 42 Hình Rút luật từ định 43 Hình Phân tích liệu 43 lOMoARcPSD|11424851 PHẦN MỞ ĐẦU Trong nhiều năm qua, với phát triển công nghệ thông tin ứng dụng công nghệ thông tin nhiều lĩnh vực đời sống xã hội, lƣợng liệu đƣợc quan thu thập lƣu trữ ngày nhiều lên Ngƣời ta lƣu trữ liệu cho ẩn chứa giá trị định Tuy nhiên theo thống kê có lƣợng nhỏ liệu (khoảng từ 5% đến 10%) ln đƣợc phân tích, số cịn lại họ khơng biết phải làm làm với liệu này, nhƣng họ tiếp tục thu thập lƣu trữ hy vọng liệu cung cấp cho họ thơng tin q giá cách nhanh chóng để đƣa định kịp thời vào lúc Chính vậy, phƣơng pháp quản trị khai thác sở liệu truyền thống ngày không đáp ứng đƣợc thực tế làm phát triển khuynh hƣớng kỹ thuật Kỹ thuật phát tri thức khai phá liệu (KDD - Knowledge Discovery and Data Mining) Kỹ thuật phát tri thức khai phá liệu đƣợc nghiên cứu, ứng dụng nhiều lĩnh vực khác giới, Việt Nam kỹ thuật tƣơng đối mẻ nhiên đƣợc nghiên cứu bắt đầu đƣa vào số ứng dụng thực tế Vì vậy, nƣớc ta vấn đề phát tri thức khai phá liệu thu hút đƣợc quan tâm nhiều ngƣời nhiều công ty phát triển ứng dụng công nghệ thông tin Trong phạm vi đề tài nghiên cứu khoa học em, em trình bày nội dung sau: Chƣơng 1: Giới thiệu kiến thức tổng quan khám phá tri thức khai phá liệu Chƣơng 2: Nghiên cứu kỹ thuật khai phá liệu định Chƣơng 3: Xây dựng ứng dụng demo cho kỹ thuật khai phá liệu định lOMoARcPSD|11424851 CHƢƠNG 1: GIỚI THIỆU CHUNG VỀ KHAI PHÁ TRI THỨC 1.1 Phát tri thức khai phá liệu Phát tri thức (Knowledge Discovery ) sở liệu qui trình nhận biết mẫu mơ hình liệu với tính năng: hợp thức, mới, khả ích, hiểu đƣợc Còn khai thác liệu (data mining) ngữ tƣơng đối mới, đời vào khoảng năm cuối của thập kỷ 1980 Có nhiều định nghĩa khác khai phá liệu Giáo sƣ Tom Mitchell đƣa định nghĩa khai phá liệu nhƣ sau: “Khai phá liệu việc sử dụng liệu lịch sử để khám phá qui tắc cải thiện định tƣơng lai.” Với cách tiếp cận ứng dụng hơn, tiến sĩ Fayyad phát biểu: ”Khai phá liệu thƣờng đƣợc xem việc khám phá tri thức sở liệu, q trình trích xuất thơng tin ẩn, trƣớc chƣa biết có khả hữu ích, dƣới dạng quy luật, ràng buộc, qui tắc sở liệu.” Còn nhà thống kê xem " khai phá liệu nhƣ q trình phân tích đƣợc thiết kế thăm dò lƣợng cực lớn liệu nhằm phát mẫu thích hợp và/ mối quan hệ mang tính hệ thống biến sau hợp thức hố kết tìm đƣợc cách áp dụng mẫu phát đƣợc cho tập liệu" Nói tóm lại: khai phá liệu bƣớc quy trình phát tri thức gồm có thụât toán khai thác liệu chuyên dùng dƣới số quy định hiệu tính tốn chấp nhận đƣợc để tìm mẫu mơ hình liệu 1.2 Quá trình phát tri thức từ sở liệu Quá trình phát tri thức chia thành bƣớc nhƣ sau: lOMoARcPSD|11424851 Hình thành định nghĩa tốn Thu thập tiền xử lý liệu KHAI PHÁ DỮ LIỆU (Triết xuất tri thức) Phân tích đánh giá tri thức Sử dụng tri thức phát đƣợc Hình 1 Quá trình khai phá liệu từ sở liệu 1.2.1 Hình thành định nghĩa tốn Đây bƣớc tìm hiểu lĩnh vực ứng dụng hình thành toán, bƣớc định cho việc rút tri thức hữu ích, đồng thời lựa chọn phƣơng pháp khai phá liệu thích hợp với mục đích ứng dụng chất liệu 1.2.2 Thu thập xử lý liệu Trong bƣớc liệu đƣợc thu thập dạng thơ (nguồn liệu thu thập từ kho liệu hay nguồn thông tin internet) Trong giai đoạn liệu đƣợc tiền xử lý để biến đổi cải thiện chất lƣợng liệu cho phù hợp với phƣơng pháp khai phá liệu đƣợc chọn lựa bƣớc Bƣớc thƣờng chiếm nhiều thời gian trình khám phá tri thức Các giải thuật tiền xử lý liệu bao gồm : Xử lý liệu bị mất/ thiếu: Các dạng liệu bị thiếu đƣợc thay giá trị thích hợp Khử trùng lắp: đối tƣợng liệu trùng lắp bị loại bỏ Kỹ thuật không đƣợc sử dụng cho tác vụ có quan tâm đến phân bố liệu lOMoARcPSD|11424851 Giảm nhiễu: nhiễu đối tƣợng tách rời khỏi phân bố chung bị loại khỏi liệu Chuẩn hoá: miền giá trị liệu đƣợc chuẩn hoá Rời rạc hoá: dạng liệu số đƣợc biến đổi giá trị rời rạc Rút trích xây dựng đặc trƣng từ thuộc tính có Giảm chiều: thuộc tính chứa thông tin đƣợc loại bỏ bớt 1.2.3 Khai thác liệu rút tri thức Đây bƣớc quan trọng tiến trình khám phá tri thức Kết bƣớc trích đƣợc mẫu và/hoặc mơ hình ẩn dƣới liệu Một mơ hình biểu diễn cấu trúc tổng thể thành phần hệ thống hay hệ thống sở liệu, hay miêu tả cách liệu đƣợc nảy sinh Còn mẫu cấu trúc cục có liên quan đến vài biến vài trƣờng hợp sở liệu 1.2.4 Phân tích đánh giá tri thức Bƣớc thứ tƣ hiểu tri thức tìm đƣợc, đặc biệt làm sáng tỏ mô tả dự đốn.Trong bƣớc này, kết tìm đƣợc đƣợc biến đổi sang dạng phù hợp với lĩnh vực ứng dụng dễ hiểu cho ngƣời dùng 1.2.5 Sử dụng tri thức phát Trong bƣớc này, tri thức khám phá đƣợc đƣợc củng cố, kết hợp lại thành hệ thống, đồng thời giải xung đột tiềm tri thức Các mơ hình rút đƣợc đƣa vào hệ thống thông tin thực tế dƣới dạng môdun hỗ trợ việc đƣa định Các giai đoạn q trình khám phá tri thức có mối quan hệ chặt chẽ với bối cảnh chung hệ thống Các kỹ thuật đƣợc sử dụng giai đoạn trƣớc ảnh hƣởng đến hiệu giải thuật đƣợc sử dụng giai đoạn Các bƣớc q trình khám phá trithức đƣợc lặp lặp lại số lần, kết thu đƣợc đƣợc lấy trung bình tất lần thực 10 lOMoARcPSD|11424851 Gain( X ) | T | U (Info(T)-Info x (T )) |T | (2.13) Tƣơng tự thay đổi tiêu chuẩn (2.13) Nếu phép kiểm tra có N giá trị đầu vào tiêu chuẩn (2.13) đƣợc tính nhƣ trƣờng hợp chia N tập hợp ban đầu thành (N+1) tập hợp Giả sử phép thử X có giá trị O1,O2,….On đƣợc lựa chọn theo tiểu chuẩn (2.13), ta cần xử lý nhƣ với liệu bị thiếu Giả sử mẫu từ tập hợp T với đầu Oi có liên quan đến tập hợp Ti khả mẫu thuộc tập hợp Ti Giả sử mẫu Ti có số xác định xác suất thuộc tập hợp Ti Nếu mẫu có giá trị thuộc tính L có trọng số Nếu trƣờng hợp ngƣợc lại, mẫu liên quan đến tập T1,T2,…Tn với xác xuất tƣơng ứng : T1 , T2 | T | U | T | U , , Tn | T | U Ta dễ dàng thấy đƣợc tổng xác xuất n T i 1 Ti U 1 Tóm lại giải pháp đƣợc phát biểu nhƣ sau: xác suất xuất giá trị bị thiếu tỷ lệ thuận với xác suất xuất giá trị không thiếu 2.2.4 Cắt tỉa định Qua tìm hiểu thuật toán xây dựng định trên, ta thấy việc xây dựng cách phát triển nhánh đầy đủ theo chiều sâu để phân lớp hoàn toàn mẫu huấn luyện; nhƣ thuật toán CLS thuật tốn ID3 đơi gặp khó khăn trƣờng hợp liệu bị nhiễu (Noisy Data) liệu bị thiếu 31 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 (Missing Data) không đủ để đại diện cho quy luật; tức tạo nút có số mẫu nhỏ Trong trƣờng hợp này, thuật toán phát triển ta dẫn đến tình mà ta gọi tình trạng "Over fitting" định Vẫn đề Over fitting khó khăn việc nghiên cứu ứng dụng định Để giải tình trạng ngƣời ta sử dụng phƣơng pháp cắt tỉa định Có hai phƣơng pháp cắt tỉa định a) Tiền cắt tỉa (Prepruning): Chiến thuật tiến cắt tỉa nghĩa dừng sớm việc phát triển trƣớc vƣơn đến điểm mà việc phân lớp mẫu huấn luyện đƣợc hồn thành Nghĩa q trình xây dựng cây, nút khơng đƣợc tách thêm bƣớc nhƣ kết phép tách rơi vào ngƣỡng gần nhƣ chắn Nút trở thành nút đƣợc gán nhãn nhãn lớp phổ biến tập mẫu nút b) Hậu cắt tỉa (Postpruning): Chiến thuật ngƣợc với chiến thuật tiền cắt tỉa Nó cho phép phát triển đầy đủ sau cắt tỉa Nghĩa xây dựng sau thực cắt bỏ nhánh khơng hợp lý Trong q trình xây dựng theo chiến thuật hậu cắt tỉa cho phép tình trạng Over fitting xẩy Nếu nút mà bị cắt trở thành nút nhãn đƣợc gán nhãn lớp phổ biến trƣớc Trong thực tế, phƣơng pháp hậu cắt tỉa phƣơng pháp thành cơng cho việc tìm giả thuyết xác cao Chiến thuật hậu cắt tỉa đƣợc tiến hành thông qua việc tính tốn lỗi nhƣ sau: Giả sử ta gọi: E(S) lỗi tĩnh (Static error hay expected error) nút S; BackUpError(S) lỗi từ nút S (Back Up Error); Error(S) lỗi nút S Các giá trị đƣợc tính nhƣ sau: Error(S) = Min(E(S), BackUpError(S)) E(S) = (N - n + 1) / (N + 2) 32 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Trong đó: N tổng số mẫu nút S n số mẫu lớp phổ biến S Trong trƣờng hợp tổng quát, thuộc tính lớp có K giá trị (K lớp) thì: E(S) = (N-n+K-1) / (N+K) BackUpError(S) = Pi Error(Si ) i Trong đó: Si nút S Pi tỷ lệ số mẫu Si số mẫu S Nhƣ nút có lỗi Error(Si) = E(Si) nút khơng có nút dẫn đến khơng có lỗi BackUpError Nếu BackUpError(S) >= E(S) chiến thuật hậu cắt tỉa định cắt nút S (tức cắt bỏ S) Tóm lại, việc cắt tỉa nhằm: tối ƣu hố kết Tối ƣu kích cỡ độ xác việc phân lớp cách cắt bỏ nhánh không phù hợp (over fitted branches) Để thực việc cắt tỉa có kỹ thuật sau đây: - Sử dụng tập hợp tách rời mẫu học để đánh giá tính hữu dụng việc hậu cắt tỉa nút Sử dụng kỹ thuật cắt tỉa có thuật tốn CART, gọi tắt chi phí phức tạp (Cost - Complexity prunning) - Áp dụng phƣơng pháp thống kê để đánh giá cắt bỏ nhánh có độ tin cậy mở rộng tiếp nhánh có độ xác cao Kỹ thuật cắt tỉa đƣợc gọi cắt tỉa bi quan thƣờng đƣợc sử dụng để cắt tỉa đƣợc xây dựng theo thuật toán ID3 C4.5 - Kỹ thuật mô tả độ dài tối thiểu - MDL (Minimum Description Length) (với kỹ thuật không cần kiểm tra mẫu) Kỹ thuật không cần thiết phải kiểm tra mẫu thƣờng đƣợc sử dụng thuật toán SLIQ, SPRINT 2.2.5 Đánh giá kết luận thuật toán xây dựng định 33 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Các thuật tốn xây dựng định vừa đƣợc trình bày có điểm mạnh điểm yếu riêng - Đầu tiên ta xét đến thuật toán CLS thuật toán đời sớm Nó áp dụng cho CSDL có thuộc tính nhỏ, giá trị thuộc tính dạng phân loại hay rời rạc Còn CSDL lớn có chứa thuộc tính mà giá trị liên tục CLS làm việc khơng hiệu quả.Thuật tốn cho kết khác với tập liệu đầu vào Bởi vì, thuật tốn chƣa có tiêu chí để lựa chọn thuộc tính q trình xây dựng Nhƣng thuật toán đơn giản, dễ cài đặt, phù hợp việc hình thành ý tƣởng giải nhiệm vụ đơn giản - Thuật toán ID3: thuật toán ID3, Quinlan khắc phục đƣợc hạn chế thuật toán CLS (ID3 đƣợc xem phiên cải tiến CLS) Thuật toán làm việc có hiệu quả, cho kết tối ƣu thuật toán CLS Khi áp dụng thuật toán ID3 cho tập liệu đầu vào thử nhiều lần cho kết Bởi vì, thuộc tính ứng viên đƣợc lựa chọn bƣớc trình xây dựng đƣợc lựa chọn trƣớc Tuy nhiên thuật toán chƣa giải đƣợc vấn đề thuộc tính số, liên tục, - số lƣợng thuộc tính cịn bị hạn chế giải hạn chế với vấn đề liệu bị thiếu bị nhiễu Thuật toán C4.5: Để tiếp tục khắc phục nhƣợc điểm thuật toán ID3, Quinlan đƣa thuật toán C4.5(C4.5 cải tiến cho thuật toán ID3 cọi phiên sau ID3) Trong thuật toán giải đƣợc vấn đề làm việc với thuộc tính số(liên tục), thuộc tính có nhiều giá trị, vấn đề liệu bị thiếu bị nhiễu Trong C4.5 thực việc phân ngƣỡng với thuộc tính số phép tách nhị phân đƣa vào đại lƣợng GainRatio thay cho đại lƣợng Gain ID3 Để giải đƣợc vấn đề thuộc tính có nhiều giá trị Ngồi C4.5 cịn có bƣớc cắt tỉa nhánh khơng phù hợp Tuy nhiên yếu điểm thuật tốn làm việc khơng hiệu với CSDL lơn chƣa giải đƣợc vấn đề nhớ Mặc dù có nhiều cải tiến, nhiều thuật toán xây dựng định đời, nhƣng nói chung vấn cịn nhiều vấn đề khó khăn phức tạp nhiều thách thức KPDL định Nhƣ vấn đề liệu bị thiếu giá 34 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 trị thuộc tính CSDL Vấn đề CSDL lớn số lƣợng thuộc tính số lƣợng ghi, vấn đề nhớ…Những vấn đề làm đau đầu nhà khoa học Trên thực tế thuật toán xây dựng định vấn đƣợc cải tiến, nghiên cứu phát triển 35 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 CHƢƠNG 3: CẶT ĐẶT CHƢƠNG TRÌNH KHAI PHÁ DỮ LIỆU SỬ DỤNG CÂY QUYẾT ĐỊNH 3.1 Bài toán thực tế Trong sống ngày, ngƣời phải định liên quan đến sinh hoạt cá nhân từ ăn gì, uống gì, làm gì, nào, đâu, định bình thƣờng, định đƣợc suy tính kỹ càng, định theo cảm xúc tức thời Tuy nhiên, nhà quản lý hay ngƣời làm công việc liên quan đến: phân loại thƣ điện tử, dự báo thời tiết, đầu tƣ chứng khoán, đầu tƣ tài chính, định đƣa quan trọng, định đƣợc lựa chọn phải định có độ tin lớn an toàn Từ thực tiễn trên, đề xuất xây dựng chƣơng trình hỗ trợ định, giúp ngƣời dùng có đƣợc định đáng tin cậy, an tồn nhanh chóng 3.2 Cài đặt thuật tốn Thuật tốn xây dựng định đƣợc áp dụng: Thuật toán C4.5 Thuật toán C4.5 học định từ tập ví dụ huấn luyện (training example) hay gọi liệu huấn luyện (training data) Đầu vào: Một tập hợp ví dụ Mỗi ví dụ bao gồm thuộc tính mơ tả tình huống, hay đối tƣợng đó, giá trị phân loại Đầu ra: Cây định có khả phân loại đắn ví dụ tập liệu huấn luyện, hy vọng phân loại cho ví dụ chƣa gặp tƣơng lai Thuật toán C4.5 đƣợc thực qua bƣớc sau: 36 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 3.2.1 Tính độ hỗn loạn: Entropy Đầu vào: số giá trị dƣơng số giá trị âm bảng tập thuộc tính Đầu ra: giá trị Entropy bảng thuộc tính tƣơng ứng //Tính độ hỗn loạn Entropy private double entropy(int tot, int xau) { int tong = tot + xau; double tyleTot = (double)tot / tong; double tyleXau = (double)xau / tong; if (tyleTot tyleTot if (tyleXau tyleXau != 0) = -(tyleTot) * System.Math.Log(tyleTot, 2); != 0) = -(tyleXau) * System.Math.Log(tyleXau, 2); double _entropy = tyleTot + tyleXau; return _entropy; } 3.2.2 Tính: GainRatio Đầu vào: Giá trị Entropy tồn bảng, thuộc tính cần xét, danh sách giá trị, danh kết tƣơng ứng thuộc tính Đầu ra: giá trị GainRatio thuộc tính private double _tinhGainRatio(double enTropy, string attr, List listValue, List attrList, List data, List resultList) { double splitInfo = 0.0; double Gain; double sum = 0.0; List tem = this.laygiatricot_khonglap(attr, attrList, data); for (int i = 0; i < tem.Count(); i++) { int positives = 0, negatives = 0; this.tinhsogtritotxau(attr, attrList, data, tem[i], resultList, out positives, out negatives); double entropy = this.entropy(positives, negatives); sum += -((double)(positives + negatives) / listValue.Count()) * entropy; //Tính splitInfo splitInfo += ((double)(positives + negatives) / listValue.Count()) * System.Math.Log(((double)(positives + negatives) / listValue.Count()), 2); } Gain = enTropy + sum; 37 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 return Gain / splitInfo;//tra ve gia tri Gain ratio } 3.2.3 Xây dựng Function C45_builder(tập_ví_dụ, tập_thuộc_tính) begin if ví dụ tập_ví_dụ nằm lớp then return nút đƣợc gán nhãn lớp else if tập_thuộc_tính rỗng then return nút đƣợc gán nhãn tuyển tất lớp tập_ví_dụ else begin Chọn thuộc tính P, lấy làm gốc cho tại; Xóa P khỏi tập_thuộc_tính; Với giá trị V P begin Tạo nhánh gán nhãn V; Đặt vào phân_vùng V ví dụ tập_ví_dụ có giá trị V thuộc tính P; Gọi C45_builder (phân_vùng V, tập_thuộc_tính), gắn kết vào nhánh V end end end private void xaydungcay(ref Node nodegoc, string val, ref List dulieu, ref List listcot, ref List listketluan) { //thay đổi giá trị value node string backupVal = val; if (val != "") val = "(" + val + ") "; int pos = sokqtot(listketluan); //nếu đồng gán nhãn if (pos == listketluan.Count || pos == 0) { Node temNode; if (pos == 0) { temNode = new Node(val + "==> [Kết luận = " + _negative + "]", nodegoc.level + 1); temNode.value = 0; } else { 38 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 temNode = new Node(val + "==> [Kết luận = " + _positive + "]", nodegoc.level + 1); temNode.value = 1; } temNode.edge_value = backupVal; temNode.isLeaves = true; nodegoc.addChild(temNode); return; }//chưa đồng tiếp tục phân lớp else { //tính entropy thuộc tính double entropyx = this.entropy(pos, listketluan.Count - pos); //tính độ đo gain ratio gán vào mảng temp double[] temp = new double[listcot.Count]; if (temp.Length == 0) return; for (int i = 0; i < listcot.Count; i++) { List listValue = dulieucot(listcot[i], listcot, dulieu); temp[i] = -(this._tinhGainRatio(entropyx, listcot[i], listValue, listcot, dulieu, listketluan)); } //tìm thuộc tính có gain ratio max để phân lớp double max = temp[0]; int maxIdx = 0; for (int i = 0; i < temp.Length; i++) { if (temp[i] > max) { max = temp[i]; maxIdx = i; } } //tìm thêm vào nodegoc Node temNode = new Node(val + listcot[maxIdx], nodegoc.level + 1); temNode.edge_value = backupVal; temNode.attr = listcot[maxIdx]; temNode.value = temp[maxIdx]; nodegoc.addChild(temNode); //danh sách lớp phân theo thuộc tính này, dựa vào giá trị khác để phân lớp List valueList = laygiatricot_khonglap(listcot[maxIdx], listcot, dulieu); foreach (string temval in valueList) { //tạo data ứng với yêu cầu //tạo result ứng với yêu cầu List newData = new List(); List newResultList = new List(); List newAttrList = new List(); //lọc liệu từ data theo giá trị value newData = _getAllValueRows(temval, dulieu, maxIdx); 39 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 newResultList = _getResultList(temval, dulieu[maxIdx], listketluan); foreach (string attrListItem in listcot) { if (attrListItem != listcot[maxIdx]) { newAttrList.Add(attrListItem); } } //đệ quy gọi lại hàm với nhánh liệu thuộc tính this.xaydungcay(ref temNode, temval, ref newData, ref newAttrList, ref newResultList); } } } 3.3 Hình ảnh demo Hình Giao diện mở chương trình 40 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Hình Load liệu tạo định 41 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Hình 3 Tiến hành cắt tỉa Hình Hình ảnh định 42 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Hình Rút luật từ định Hình Phân tích liệu 43 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 KẾT LUẬN Những nghiên cứu khai phá liệu ứng dụng nhiều lĩnh vực khác nhằm khai thác nguồn liệu phong phú đƣợc lƣu trữ hệ thống thông tin Khai phá liệu đƣợc áp dụng nhiều việc tƣ vấn, dự báo , giáo dục Trong khn khổ khóa luận tốt nghiệp này, em nghiên cứu, phân tích, đánh giá thuật toán phân lớp liệu dựa định Tiêu biểu thuật toán CLS, ID3 C4.5 Các thuật tốn có cách thức lƣu trữ liệu xây dựng định dựa độ đo khác Do thuật tốn có phạm vi ứng dụng vào sở liệu có kích thƣớc khác C4.5 thuật toán xử lý đầy đủ vấn đề q trình phân lớp liệu: lựa chọn thuộc tính tốt nhất, lƣu trữ phân chia liệu, xử lý giá trị thiếu, tránh vừa, cắt tỉa cây,…Với lý C4.5 trở thành thuật tốn phổ biến ứng dụng vừa nhỏ Quá trình triển khai, cài đặt thử nghiệm với đánh giá hiệu mơ hình phân lớp C4.5 đƣợc tiến hành Và thu đƣợc nhiều kết có ý nghĩa thực tiến, nhƣ kết gợi mở hƣớng nghiên cứu 44 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 TÀI LIỆU THAM KHẢO [1] Anurag Srivastava, Eui- Hong Han, Vipin Kumar, Vieet Singh Parallel Formulations of Decision-Tree Classification Algorithm Kluwer Academic Publisher, 1999 [2] Anurag Srivastava, Vineet Singh, Eui- Hong (Sam) Han, Vipin Kumar An Efficient, Scalable, Parallel Classifier for Data mining [3] Ron Kohavi, J Ross Quinlan Decision Tree Discovery, 1999 [4] Vanden Berghen Frank (2003), C4.5 – Classification Tree, Universit Libre de bruxelles [5] Vũ Tiến Thành – Lƣu Công Tố - Thuật toán định C4.5 [6] Huỳnh Trâm Võ - Học liệu mở Việt Nam - Tiếp cận ký hiệu: Giải thuật quy nạp định ID3 [7] Lê Văn Dực (2006), Hệ hỗ trợ định, NXB Đại học Quốc gia TP Hồ Chí Minh [8] Khoa khoa học & Kỹ thuật máy tính - Slide & giảng Data mining – Trƣờng Đại học quốc gia TP Hồ Chí Minh [9] http://vi.wikipedia.org/wiki/Khai_phá_dữ_liệu tháng 3/2013 [10] Cây định - http://vi.wikipedia.org/wiki/Cây_quyết_định tháng 3/2013 [11] http://en.wikipedia.org/wiki/C4.5_algorithm tháng 3/2013 45 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) ... CÁC PHƢƠNG PHÁP KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH 18 2.1 2.2 Cây định 18 2.1.1 Giới thiệu 18 2.1.2 Các kiểu định 18 2.1.3 Ưu điểm định ... thiệu kiến thức tổng quan khám phá tri thức khai phá liệu Chƣơng 2: Nghiên cứu kỹ thuật khai phá liệu định Chƣơng 3: Xây dựng ứng dụng demo cho kỹ thuật khai phá liệu định lOMoARcPSD|11424851 CHƢƠNG... thác liệu (data mining) ngữ tƣơng đối mới, đời vào khoảng năm cuối của thập kỷ 1980 Có nhiều định nghĩa khác khai phá liệu Giáo sƣ Tom Mitchell đƣa định nghĩa khai phá liệu nhƣ sau: ? ?Khai phá liệu