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

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ỹ thuật phần mềm 1 – 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 5 năm 2016 Lời nói đầu Trong thời buổi hiện đại ngày nay, công nghệ thông tin cũng như những ứng dụng của nó không ngừng phát triển, lượng thông tin và cơ sở dữ liệu được thu thập và lưu tr

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

Các file đính kèm theo tài liệu này:

  • docxbao_cao_bai_tap_lon_mon_khai_pha_du_lieu_phan_lop_du_lieu_so.docx