Untitled TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN Môn Khai phá dữ liệu Phân lớp dữ liệu số bằng giải thuật K NN Giáo viên hướng dẫn Nguyễn Mạnh Cường Nhóm 5 Lớp K.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN BÁO CÁO BÀI TẬP LỚN Mơn Khai phá liệu Phân lớp liệu số giải thuật K-NN Giáo viên hướng dẫn: Nguyễn Mạnh Cường Nhóm Lớp Kỹ thuật phần mềm – K7 Thành viên: Nguyễn Hà Anh Dũng Nguyễn Quang Long Nguyễn Thị Thảo Hà Nội, tháng năm 2016 Lời nói đầu Trong thời buổi đại ngày nay, cơng nghệ thơng tin ứng dụng không ngừng phát triển, lượng thông tin sở liệu thu thập lưu trữ tích lũy ngày nhiều lên Con người mà cần có thơng tin với tốc độ nhanh để đưa định dựa lượng liệu khổng lồ có Các phương pháp quản trị khai thác sở liệu truyền thống ngày khơng đáp ứng thực tế, thế, khuynh hướng kỹ thuật Kỹ thuật phát tri thức khai phá liệu nhanh chóng phát triển Khai phá liệu nghiên cứu, ứng dụng nhiều lĩnh vực khác nước giới Ở Việt Nam, kỹ thuật nghiên cứu dần đưa vào ứng dụng Khai phá liệu bước quy trình phất tri thức Hiện nay, người khơng ngừng tìm tịi kỹ thuật để thực khai phá liệu cách nhanh có kết tốt Trong tập lớn này, chúng em tìm hiểu trình bày kỹ thuật khai phá liệu để phân lớp liệu tổng quan khai phá liệu, với đề tài “ Phân lớp liệu số giải thuật K-NN” Trong trình làm tập lớn này, chúng em xin gửi lời cảm ơn đến thầy giáo Nguyễn Mạnh Cường Thầy tận tình hướng dẫn chi tiết cho chúng em, kiến thức thầy cung cấp hữu ích Chúng em mong nhận góp ý từ thầy Chúng em xin chân thành cảm ơn! Chương 1: Tổng quan Khai phá liệu 1.1 - Khái niệm Khai phá liệu ? Khai phá liệu trình xác định mẫu tiềm ẩn có tính hợp lệ, lạ, có ích hiểu khối liệu lớn - Khai phá tri thức từ CSDL ( Knowledge Discovery in Database) Khai phá tri thức từ CSDL gồm bước B1: Lựa chọn CSDL B2: Tiền xử lý B3: Chuyển đổi B4: Khai phá liệu B5: Diễn giải đánh giá Khai phá liệu bước trình khai phá tri thức từ CSDL - Các ứng dụng khai phá liệu Phát tri thức khai phá liệu liên quan đến nhiều ngành, nhiều lĩnh vực: thống kê, trí tuệ nhân tạo, sở liệu, thuật tốn, tính toán song song tốc độ cao, thu thập tri thức cho hệ chuyên gia, quan sát liệu Đặc biệt phát tri thức khai phá liệu gần gũi với lĩnh vực thống kê, sử dụng phương pháp 3 thống kê để mơ hình liệu phát mẫu, luật Ngân hàng liệu (Data Warehousing) cơng cụ phân tích trực tuyến (OLAP- On Line Analytical Processing) liên quan chặt chẽ với phát tri thức khai phá liệu Khai phá liệu có nhiều ứng dụng thực tế, ví dụ như: Bảo hiểm, tài thị trường chứng khốn: phân tích tình hình tài dự báo giá loại cổ phiếu thị trường chứng khoán Danh mục vốn giá, lãi suất, liệu thẻ tín dụng, phát gian lận, Thống kê, phân tích liệu hỗ trợ định Điều trị y học chăm sóc y tế: số thơng tin chuẩn đốn bệnh lưu hệ thống quản lý bệnh viện Phân tích mối liên hệ triệu chứng bệnh, chuẩn đoán phương pháp điều trị (chế độ dinh dưỡng, thuốc, ) Sản xuất chế biến: Quy trình, phương pháp chế biến xử lý cố Text mining Web mining: Phân lớp văn trang Web, tóm tắt văn bản, Lĩnh vực khoa học: Quan sát thiên văn, liệu gene, liệu sinh vật học, tìm kiếm, so sánh hệ gene thông tin di truyền, mối liên hệ gene số bệnh di truyền, Mạng viễn thơng: Phân tích gọi điện thoại hệ thống giám sát lỗi, cố, chất lượng dịch vụ, - Các bước trình khai phá liệu Quy trình phát tri thức thường tuân theo bước sau: Bước thứ nhất: Hình thành, xác định định nghĩa tốn Là tìm hiểu lĩnh vực ứng dụng từ hình thành tốn, xác định nhiệm vụ cần phải hoàn thành Bước định cho việc rút tri thức hữu ích cho phép 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 Bước thứ hai: Thu thập tiền xử lý liệu Là thu thập xử lý thơ, cịn gọi tiền xử lý liệu nhằm loại bỏ nhiễu (làm liệu), xử lý việc thiếu liệu (làm giàu liệu), biến đổi liệu rút gọn liệu cần thiết, bước thường chiếm nhiều thời gian tồn qui trình phát tri thức Do liệu lấy từ nhiều nguồn khác nhau, khơng đồng nhất, … gây nhầm lẫn Sau bước này, liệu quán, đầy đủ, rút gọn rời rạc hoá Bước thứ ba: Khai phá liệu, rút tri thức Là khai phá liệu, hay nói cách khác trích mẫu hoặc/và mơ hình ẩn liệu Giai đoạn quan trọng, bao gồm công đoạn như: chức năng, nhiệm vụ mục đích khai phá liệu, dùng phương pháp khai phá nào? Thông thường, toán khai phá liệu bao gồm: toán mang tính mơ tả - đưa tính chất chung liệu, toán dự báo - bao gồm việc phát suy diễn dựa liệu có Tuỳ theo tốn xác định mà ta lựa chọn phương pháp khai phá liệu cho phù hợp Bước thứ tư: Sử dụng tri thức phát Là hiểu tri thức tìm được, đặc biệt làm sáng tỏ mơ tả dự đốn Các bước lặp lặp lại số lần, kết thu được lấy trung bình tất lần thực Các kết trình phát tri thức đưa vào ứng dụng lĩnh vực khác kết dự đốn 1.2 Một số kỹ thuật Khai phá liệu a Kỹ thuật khai phá luật kết hợp Trong khai phá liệu, mục đích luật kết hợp tìm mối quan hệ đối tượng khối lượng lớn liệu Để khai phá luật kết hợp có nhiều thuật toán, dùng phổ biến thuật toán Apriori Đây thuật toán khai phá tập phổ biến liệu giao dịch để phát luật kết hợp dạng khẳng định nhị phân sử dụng để xác định, tìm luật kết hợp liệu giao dịch Ngồi ra, cịn có thuật tốn FP-growth, thuật tốn Partition,… b Kỹ thuật phân lớp Trong kỹ thuật phân lớp gồm có thuật toán: - Phân lớp định (giải thuật ID3, J48): phân lớp liệu dựa việc lập nên định, nhìn vào định định liệu thuộc phân lớp - - Phân lớp dựa xác suất (Naïve Bayesian): dựa việc giả định thuộc tính độc lập mạnh với qua việc sử dụng định lý Bayes Phân lớp dựa khoảng cách (giải thuật K – láng giềng): làm láng giềng làm, liệu phân vào lớp k đối tượng gần với liệu Phân lớp SVM: phân lớp liệu dựa việc tìm siêu phẳng “tốt nhất” để tách lớp liệu không gian nhiều chiều c Kỹ thuật phân cụm Phân cụm liệu cách phân bố đối tượng liệu vào nhóm/ cụm cho đối tượng cụm giống phần tử khác cụm, gồm có số phương pháp phân cụm như: + Phân cụm phương pháp K-mean: tìm tâm cụm mà khoảng cách tâm đến đối tượng, liệu khác ngắn + Phân cụm đồ thị Ngồi ra, khai phá liệu có nhiều kỹ thuật, kỹ thuật đơn giản khai phá liệu mà chúng em tìm hiểu Chương 2: Giải thuật K láng giềng gần (K-NN) 2.1 Tổng quan K-NN Bài toán phân loại liệu toán thường gặp sống kĩ thuật, có nhiều cách tiếp cận giải thuật đưa để giải tốn phân lớp Một số thuật tốn láng giềng gần k-NN(k-Nearest Neighbors) Thuật toán K- láng giềng gần ( viết tắt K-NN) thuật toán có mục đích phân loại lớp cho mẫu ( Query Point) dựa thuộc tính mẫu sẵn có ( Training Data) , mẫu nằm trọng hệ gọi không gian mẫu Một đối tượng phân lớp dựa vào K láng giềng K số nguyên dương xác định trước thực thuật toán Người ta thường dùng khoảng cách Euclidean để tính khoảng cách đối tượng với mẫu mới, sau chuẩn đốn mẫu thuộc phân lớp dựa vào số k láng giềng xác định trước có khoảng cách gần mẫu so với mẫu khác 2.2 Mô tả thuật tốn K-NN Các mẫu mơ tả n – chiều thuộc tính số Mỗi mẫu đại diện cho điểm chiều không gian n – chiều Theo cách tất mẫu lưu trữ mơ hình khơng gian n – chiều Các bước thực Thuật tốn K-NN mơ tả sau: Xác định giá trị tham số K ( số láng giềng gần nhất) Tính khoảng cách đối tượng cần phân lớp (Query Point) với tất đối tượng mẫu có sẵn (Trainning Data) ( Thường sử dụng khoảng cách Euclidean) Sắp xếp khoảng cách theo thứ tự tăng dần xác định K láng giềng gần với Query Point Lấy tất lớp K láng giềng gần xác định Dựa vào phần lớn lớp láng giềng gần để xác định lớp cho Query Ponit Minh họa K-NN: Trong hình đây, Trainning Data mô tả dấu (+) dấu (-), đối tượng cần xác định lớp cho (Query Point) hình mặt cười đỏ Nhiệm vụ ta ước lượng lớp Query Point dựa vào việc lựa chọn số láng giềng gần với Nói cách khác ta muốn biết liệu Query Point phân vào lớp (+) hay lớp (-) Ta thấy rằng: Có Nearest Neightbor: Kết (–) :Query Point xếp vào lớp dấu (–) láng giềng gần với có đối tượng thuộc lớp (–) nhiều lớp (+) có đối tượng.) 2.3 - Đánh giá ưu, nhược điểm thuật toán Ưu điểm: + Tư tưởng đơn giản, thích hợp với hệ thống nhỏ + Dễ hiểu, dễ cài đặt - Nhược điểm + Giải thuật K-NN thích hợp cho việc phân loại liệu giải thuật khơng có khả phân tích liệu để tìm thơng tin có giá trị Trong q trình K-NN hoạt động, phải tính toán "khoảng cách" từ liệu cần xác định loại đến tất liệu tập huấn luyện (training set) ==> Nếu tập huấn luyện lớn, điều làm cho thời gian chạy chương trình lâu 2.4 Ví dụ minh họa Bây ta vào chi tiết cách thức hoạt động giải thuật k-NN Đầu tiên, phải chuẩn bị tập huấn luyện(training set) mà tất liệu tập biết trước thuộc lớp Người dùng đưa vào liệu chưa biết thuộc lớp K-NN so sánh liệu với tất liệu tập huấn luyện chọn k liệu gần giống Trong k liệu đó, k-NN xem xét xem lớp lớp chiếm đa số > đưa kết luận tập liệu cần xác định thuộc loại Ví dụ tham khảo “Machine learning in action” Petter Harington Ta phân loại xem phim thuộc thể loại phim hành động hay phim tình cảm Việc phân loại phim xác định cách đếm số lượng cú đá số lượng nụ hôn phim Ở đây, tập huấn luyện(training set), tập chứa số phim biết số lượng cú đá, nụ hôn phim đó, loại phim cho bảng sau: Tên phim California Man He isn't really into dudes Beautiful Woman Kevin Longblade Robo Slayer 3000 Amped II Anh Số lượng cú đá Số lượng nụ hôn 104 100 101 99 98 18 81 10 90 Loại phim Tình cảm Tình cảm Tình cảm Hành động Hành động Hành động ??? Ta biết số lượng cú đá, số lượng nụ hôn phim Nhiệm vụ ta xác định xem phim ? thuộc thể loại nào? Đầu tiên xác định xem giống phim “Anh” với phim khác Để làm điều đó, ta sử dụng Euclidean distance Euclidean distance việc tìm khoảng cách hai điểm khơng gian, ví dụ cho điểm P1(x1,y1) P2(x2,y2) Euclidean distance tính theo cơng thức: d= √ (x −x ) +( y − y ) 2 2 Để áp dụng euclidean distance vào trường hợp này, coi phim biểu diễn điểm tọa độ Oxy với số lượng cú đá tọa độ x số lượng nụ hôn tọa độ y Điều có nghĩa phim “ California Man” biểu diễn điểm (3, 104); phim “He isn't really into dudes” biểu diễn điểm (2, 100), Gọi d euclidean distance thì: “California Man”: d = √ (18−3)2 +(90 −104 )2 =20.5 “He isn't really into dudes”: d= √ (18−2)2 +(90−100)2 = 18.7 “Beautiful Woman”: d = “Kevin Longblade”: d = “Robo Slayer 3000”: d = “Amped II”: d = √ (18−1)2 +( 90− 81)2 =19.2 √ (18−101)2 +( 90−10 )2 = 115.3 √ (18−99 )2+(90 −5)2 = 117.4 √ (18−98 )2+(90 −2)2 Sau tính tốn ta bảng: Tên phim California Man He isn’t really into dudes Beautiful Woman Kevin Longblade Robo Slayer 3000 Amped II = 118.9 Euclidean distance 20.5 18.7 19.2 115.3 117.4 118.9 Chúng ta có khoảng cách euclidean từ phim chưa biết lớp tới phim tập huấn luyện, tìm k láng giềng gần cách xếp phim theo thứ tự euclidean distance từ nhỏ đến lớn Giả sử k = láng giềng gần nhất, phim “California Man”, “He isn't really into dudes” “Beautiful Woman” Thuật toán k-NN lấy loại phim chiếm ưu láng giếng gần để làm loại phim cho phim cần xác định lớp Vì phim thể loại Tình cảm ==> Phim “Anh” thuộc thể loại phim tình cảm 10 Chương 3: Thực giải thuật K-NN Weka 3.1 Tổng quan Weka Weka (viết tắt Waikato Environment for Knowledge Analysis) phần mềm học máy Đại học Waikato, New Zealand phát triển Java Weka phần mềm tự phát hành theo Giấy phép công cộng GNU Theo KDNuggets (2005): Weka sản phẩm khai thác liệu sử dụng nhiều hiệu năm 2005 Những tính bật Weka: Hỗ trợ nhiều thuật toán máy học khai thác liệu Được tổ chức theo dạng mã nguồn mở Độc lập với môi trường ( sử dụng máy ảo java JVM) Dễ sử dụng, kiến trúc dạng thư viện dễ dàng việc xây dựng ứng dụng thực nghiệm Các chức Weka: 11 Các chức Weka Explorer thể thẻ (tab) hình chính, bao gồm: Preprocess: Cho phép mở, điều chỉnh, lưu tập tin liệu, thẻ chứa thuậtt toán áp dụng tiền xử lý liệu Classify: Cung cấp mơ hình phân loại liệu hồi quy Cluster: Cung cấp mơ hình gom cụm Associate: Khai thác tập phổ biến luật kết hợp SelectAttribites: Lựa chọn thuộc tính thích hợp tập liệu Visualize: Thể liệu dạng biểu đồ Khai phá liệu: * Sử dụng thẻ Preprocess (1) Open file…: Mở tập tin liệu (2) Edit…: Hiển thị chỉnh sửa liệu tay cần thiết (3) Save…: Lưu liệu tập tin Weka Explorer hỗ trợ số định dạng có định dạng cần quan tâm *.arff *.csv (4) Filter: Các tác vụ tiền xử lý gọi lọc( thuật tốn) (5) Selected attribute: Thơng tin thuộc tính chọn: 12 o Type: Kiểu liệu thuộc tính (Numeric: Dạng số, Nominal: Dạng rời rạc/phi số) o Missing: Số mẫu thiếu giá trị thuộc tính xét o Distinct: Số giá trị phân biệt o Unique: Số mẫu khơng có giá trị trùng với mẫu khác o Bảng thống kê: Dạng phi số:Thể giá trị tần suất giá trị Dạng số:Thể số đại lượng thống kê giá trị nhỏ nhất, lớn nhất, giá trị trung bình độ lệch chuẩn 3.2 Thực thuật toán K-NN Weka Để thực thuật toán K-NN Weka, chúng em chọn liệu Iris sẵn có Weka để trình bày Trước tiên, để thực thuật toán, ta mở Weka, chọn Explorer, chọn Open file, liệu lưu: C:\Program Files\Weka-3-6\data Sau chọn liệu, hình hiển thị sau: 13 Để thực K-NN Weka, ta chọn tag Classify Choose IBk: Click Start để chạy thuật tốn Chúng ta chọn số K xác định cơng thức tính khoảng cách cho thuật tán cách click đúp vào ô thuật toán cửa sổ sau: Xác định số láng giềng k=5 Dùng khoảng cách Euclidean 14 Ngồi ra, cịn thực chức KnowledgeFlow Weka hiển thị kiến thức: 3.3 Một số kết đạt Sau thực áp dụng giải thuật K-NN Weka với liệu Iris, ta thu kết sau: 15 Kết với k=1 16 Kết với k=2 Kết với k=5 17 Kết luận *Kết đạt hạn chế có - Kết quả: + Hiểu tổng quan khai phá liệu số kỹ thuật khai phá + Có thể ứng dụng thuật tốn K- láng giềng vào liệu khác sau - Hạn chế: Tất kiến thức nắm mức lý thuyết thực hành sơ qua máy tính riêng, chưa thực hành thực tế nhiều để hiểu sau rộng thuật toán kỹ thuật khai phá liệu *Hướng nghiên cứu Trong trình tìm hiểu thực hành, chúng em nhận thấy thuật toán K-láng giềng thuật toán đơn giản, dễ sử dụng Tuy nhiên, việc ứng dụng thuật toán liệu lớn cịn hạn chế Vì vậy, chúng em tiếp tục tìm hiểu kỹ thuật thuật tốn khai phá liệu để có thêm nhiều kiến thức phục vụ công việc áp dụng vào ứng dụng tự xây dựng sau 18 Tài liệu tham khảo Thuật toán K- láng giềng gần – Nguyễn Văn Chức http://bis.net.vn/forums/p/370/635.aspx Sử dụng KnowledgeFlow Weka để xây dựng mơ hình Khai phá liệu – Nguyễn Văn Chức http://bis.net.vn/forums/p/426/770.aspx Slide giảng dạy thầy giáo Nguyễn Mạnh Cường Bài giảng Khai phá liệu online Link: http://hfs1.duytan.edu.vn/upload/ebooks/3262.pdf Ngoài ra, chúng em tham khảo viết google, youtube,… 19 ... thuật tốn Partition,… b Kỹ thuật phân lớp Trong kỹ thuật phân lớp gồm có thuật tốn: - Phân lớp định (giải thuật ID3, J48): phân lớp liệu dựa việc lập nên định, nhìn vào định định liệu thuộc phân. .. làm, liệu phân vào lớp k đối tượng gần với liệu Phân lớp SVM: phân lớp liệu dựa việc tìm siêu phẳng “tốt nhất” để tách lớp liệu không gian nhiều chiều c Kỹ thuật phân cụm Phân cụm liệu cách phân. .. Bài toán phân loại liệu toán thường gặp sống kĩ thuật, có nhiều cách tiếp cận giải thuật đưa để giải tốn phân lớp Một số thuật toán láng giềng gần k-NN(k-Nearest Neighbors) Thuật toán K- láng