TÌM HIỂU THUẬT TOÁN GOM CỤM K-MEAN VÀ CÀI ĐẶT CHƯƠNG TRÌNH MINH HỌA

51 1.7K 11
TÌM HIỂU THUẬT TOÁN GOM CỤM K-MEAN VÀ CÀI ĐẶT CHƯƠNG TRÌNH MINH HỌA

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN    BÀI THU HOẠCH Môn học KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU Đề tài TÌM HIỂU THUẬT TOÁN GOM CỤM K-MEAN VÀ CÀI ĐẶT CHƯƠNG TRÌNH MINH HỌA Giảng viên hướng dẫn : PGS.TS Đỗ Phúc Học viên thực hiện : Bùi Thị Hoàng Anh Mã số : CH1101065 Lớp : Cao học – CNTT K6 HCM, 11/2012 MỤC LỤC LỜI NÓI ĐẦU 1 NỘI DUNG 2 Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 2 1.1 Giới thiệu về khám phá tri thức 2 1.2 Khai phá dữ liệu và các khái niệm liên quan 3 1.2.1 Khái niệm khai phá dữ liệu 3 1.2.2 Các hướng tiếp cận trong khai phá dữ liệu 3 1.2.2 Các lĩnh vực ứng dụng 4 Chương 2: PHÂN CỤM DỮ LIỆU VÀ THUẬT TOÁN K-MEANS 5 2.1 Khái quát gom cụm dữ liệu 5 2.1.1 Khái niệm 5 2.1.2 Chuẩn hóa các độ đo 6 2.1.3 Một số ứng dụng của gom cụm dữ liệu 7 2.1.4 Một số kỹ thuật tiếp cận trong cụm dữ liệu 7 2.2 Gom cụm phân hoạch 9 2.3 Thuật toán K-Means 10 2.3.1 Thuật toán 10 2.3.2 Ví dụ minh họa 10 Chương 3: CÀI ĐẶT THỬ NGHIỆM THUẬT TOÁN K-MEANS 15 3.1 Chương trình thử nghiệm thuật toán K-Means 15 3.2 Chương trình ứng dụng thuật toán K-Means trong bài toán phân đoạn ảnh 16 KẾT LUẬN 20 TÀI LIỆU THAM KHẢO 21 PHỤ LỤC 22 1 LỜI NÓI ĐẦU Trong vài thập niên gần đây, công nghệ thông tin được ứng dụng rộng rãi trong nhiều lĩnh vực: tài chính, sản xuất, kinh doanh, truyền thông, y tế, Sự phát triển không ngừng của ngành công nghệ thông tin và các lĩnh vực liên quan dẫn đến hệ quả là khối lượng thông tin lưu trữ ngày càng lớn. Sự bùng nổ về dữ liệu dẫn đến yêu cầu cấp thiết là cần có những kĩ thuật và công cụ tự động trích chọn ra những thông tin có ý nghĩa từ cơ sở dữ liệu để từ đó giải quyết được các yêu cầu của thực tế như trợ giúp ra quyết định, dự đoán,… Hướng nghiên cứu Khai phá dữ liệu (Data mining) đã ra đời nhằm giải quyết các yêu cầu thực tiễn đó. Khai phá dữ liệu được chia nhỏ thành các hướng nghiên cứu chính như sau: mô tả khái niệm, luật kết hợp, phân lớp dữ liệu, gom cụm dữ liệu, khai phá chuỗi, Có nhiều thuật toán giải quyết vấn đề gom cụm dữ liệu. Tuy nhiên trong khuôn khổ bài thu hoạch luận này, em chỉ đi sâu tìm hiểu thuật toán K-Means và từ đó xây dựng hai chương trình ứng dụng có sử dụng thuật toán K-Means để giải quyết bài toán ban đầu. Chương trình thứ nhất mô phỏng chi tiết các bước thực hiện của thuật toán K-Means sau khi người dùng nhập dữ liệu ban đầu. Chương trình thứ hai giải quyết vấn đề phân đoạn ảnh theo màu sắc. Thông qua bài thu hoạch, em xin gởi lời cảm ơn chân thành đến PGS.TS. Đỗ Phúc, người thầy đã rất nhiệt tình trong công tác giảng dạy và tận tâm truyền đạt các kiến thức quý báu về môn học Data Mining cho chúng em. 2 NỘI DUNG Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1 Giới thiệu về khám phá tri thức Yếu tố thành công trong mọi hoạt động kinh doanh ngày nay là việc biết sử dụng thông tin một cách có hiệu quả. Điều đó có nghĩa là từ các dữ liệu sẵn có, phải tìm ra những thông tin tiềm ẩn có giá trị mà trước đó chưa được phát hiện, tìm ra những xu hướng phát triển và những yếu tố tác động lên chúng. Thực hiện công việc đó chính là thực hiện quá trình phát hiện tri thức trong cơ sở dữ liệu mà trong đó kỹ thuật cho phép ta lấy được các tri thức chính là kỹ thuật khai phá dữ liệu. Quá trình phát hiện tri thức gồm một số bước sau: - Làm sạch dữ liệu: Loại bỏ nhiễu và các dữ liệu không cần thiết - Tích hợp dữ liệu: Các nguồn dữ liệu khác nhau tích hợp lại - Lựa chọn dữ liệu: Các dữ liệu có liên quan đến quá trình phân tích được lựa chọn từ cơ sở dữ liệu - Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho quá trình xử lý - Khai phá dữ liệu: Là một trong những bước quan trọng nhất, trong đó sử dụng những phương pháp thông minh để lựa chọn ra những mẫu dữ liệu. - Ước lượng mẫu: Quá trình đánh giá kết quả thông qua một độ đo nào đó - Biểu diễn tri thức: Biểu diễn các kết quả một cách trực quan cho người dùng. 3 1.2 Khai phá dữ liệu và các khái niệm liên quan 1.2.1 Khái niệm khai phá dữ liệu Khai phá dữ liệu được định nghĩa như một quá trình chắt lọc hay khám phá tri thức từ một lượng lớn dữ liệu. Thuật ngữ Data Mining ám chỉ việc tìm một tập nhỏ có giá trị từ một lượng lớn các dữ liệu thô. Khai phá dữ liệu chỉ là một bước trong quá trình phát hiện tri thức. 1.2.2 Các hướng tiếp cận trong khai phá dữ liệu Khai phá dữ liệu được chia nhỏ thành một số hướng chính như sau:  Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản.  Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá đơn giản. Ví dụ: “50% những người mua máy tính thì cũng mua máy in”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, tài chính & thị trường chứng khoán,…  Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết. Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network), Người ta còn gọi phân lớp là học có giám sát (học có thầy).  Gom cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước. Người ta còn gọi gom cụm là học không giám sát (học không thầy). 4  Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao. 1.2.3 Các lĩnh vực ứng dụng Khai phá dữ liệu tuy là một hướng tiếp cận mới nhưng thu hút được sự quan tâm của rất nhiều nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó.  Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support)  Điều trị y học (medical treatment)  Text mining & Web mining  Tin-sinh (bio-informatics)  Tài chính và thị trường chứng khoán (finance & stock market)  Bảo hiểm (insurance): nhận dạng các nhóm công ty có chính sách bảo hiểm mô tô với chi phí đền bù trung bình cao  Tiếp thị: khám phá các nhóm khác hàng phân biệt trong CSDL mua hàng  Sử dụng đất: nhận dạng các vùng đất sử dụng giống nhau khi khảo sát CSDL quả đất  Hoạch định thành phố: nhận dạng các nhóm nhà cửa theo loại nhà, giá trị và vị trí địa lý 5 Chương 2: GOM CỤM DỮ LIỆU VÀ THUẬT TOÁN K-MEANS 2.1 Khái quát gom cụm dữ liệu 2.1.1 Khái niệm Gom cụm là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu thỏa mãn: a. Các đối tượng trong một cụm “tương tự” nhau. b. Các đối tượng khác cụm thì “không tương tự” nhau. Mục đích của gom cụm là xác định được bản chất của việc nhóm các đối tượng trong một tập dữ liệu không có nhãn. Gom cụm không dựa trên một tiêu chuẩn chung nào, mà dựa vào tiêu chí do người dùng cung cấp trong từng trường hợp.  Thế nào là một gom cụm tốt?  Một phương pháp tốt sẽ tạo ra các cụm có chất lượng cao với: - Tương tự cao cho trong lớp (intra-class) - Tương tự thấp giữa các lớp (inter-class)  Chất lượng của kết quả gom cụm phụ thuộc vào: - Độ đo tương tự sử dụng - Cài đặt độ đo tương tự  Chất lượng của phương pháp gom cụm cũng được đo bởi khả năng phát hiện vài hay tất cả các mẫu bị che (hidden patterns).  Tương tự và bất tương tự giữa hai đối tượng  Không có định nghĩa duy nhất về sự tương tự và bất tương tự giữa các đối tượng dữ liệu.  Định nghĩa về tương tự và bất tượng tự giữa các đối tượng tùy thuộc vào: - Loại dữ liệu khảo sát - Loại tương tự cần thiết 6  Tương tự/ Bất tượng tự giữa đối tượng thường được biểu diễn qua độ đo khoảng cách d(x,y).  Lý tưởng, mọi độ đo khoảng cách phải là một và phải thỏa các điều kiện sau:  Các loại dữ liệu trong phân tích cụm  Các biến khoảng tỉ lệ  Biến nhị phân  Các biến định danh, thứ tự, tỉ lệ  Các biến có kiểu hỗn hợp  Các kiểu dữ liệu phức tạp Các độ đo liên tục của các thang đo tuyến tính, thô. Ví dụ: trọng lượng, chiều cao, tuổi. Đơn vị đo có thể ảnh hưởng đến phân tích cụm. Để tránh sự phụ thuộc vào đơn vị đo, cần chuẩn hóa dữ liệu. 2.1.2 Chuẩn hóa các độ đo  Tính sai biệt tuyệt đối trung bình với và  Tính độ đo chuẩn (z-score)  Một nhóm các độ đo khoảng cách phổ biến cho biến tỉ lệ theo khoảng là khoảng cách Minkowski. ),(),(),( 4. ),(),( 3. iff 0),( 2. 0),( 1. zydyxdzxd xydyxd yxyxd yxd     |)| |||(| 1 21 fnffffff mxmxmx n s  ,) 21 1 nffff xx(x n m  f fif if s m x z   q q pp qq j x i x j x i x j x i xjid )|| |||(|),( 2211  7 với i = (x i1 , x i2 , …, x ip ) và j = (x j1 , x j2 , …, x jp ) là các đối tượng dữ liệu p-chiều và q là số nguyên dương.  Nếu q = 1, độ đo khoảng cách là Manhattan  Nếu q = 2, độ đo khoảng cách là khoảng cách Euclidean 2.1.3 Một số ứng dụng của gom cụm dữ liệu Kỹ thuật gom cụm có thể áp dụng trong rất nhiều lĩnh vực như:  Thương mại: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng, ) sử dụng sản phẩm của công ty để có chiến lược kinh doanh hiệu quả hơn.  Sinh học: Phân nhóm động vật và thực vật dựa vào các thuộc tính của chúng.  Thư viện: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả.  Tài chính, bảo hiểm: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng của khách hàng, phát hiện gian lận tài chính.  World wide web: Phân loại tài liệu ,phân loại người dùng web  Lập quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lý, nhằm cung cấp thông tin cho quy hoạch đô thị.  Nghiên cứu trái đất: Gom cụm để theo dõi các tâm động đất nhằm cung cấp thông tin cho nhân dạng các vùng nguy hiểm. 2.1.4 Một số kỹ thuật tiếp cận trong gom cụm dữ liệu  Gom cụm dựa trên phân hoạch Phương pháp gom cụm phân hoạch nhằm phân một tập dữ liệu | | | | | | ) , ( 2211 pp j x i x j x i x j x i x j i d        )|| |||(|),( 22 22 2 11 pp j x i x j x i x j x i xjid  8 có n phần tử cho trước thành k nhóm dữ liệu sao cho mỗi phần tử dữ liệu chỉ thuộc về một nhóm dữ liệu và mỗi nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu.  Gom cụm dữ liệu phân cấp Gom cụm phân cấp sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy.  Gom cụm dữ liệu dựa trên mật độ Phương pháp này nhóm các đối tượng theo hàm mật độ xác định. Mật độ được định nghĩa như là số các đối tượng lân cận của một đối tượng dữ liệu theo một ngưỡng nào đó. Trong cách tiếp cận này, khi một cụm dữ liệu đã xác định thì nó tiếp tục được phát triển thêm các đối tượng dữ liệu mới miễn là số các đối tượng lân cận của các đối tượng này phải lớn hơn một ngưỡng đã được xác định trước. Phương pháp gom cụm dựa vào mật độ của các đối tượng để xác định các cụm dữ liệu có thể phát hiện ra các cụm dữ liệu với hình thù bất kỳ. Tuy vậy, việc xác định các tham số mật độ của thuật toán rất khó khăn, trong khi các tham số này lại có tác động rất lớn đến kết quả gom cụm dữ liệu.  Gom cụm dữ liệu dựa trên lưới Kỹ thuật gom cụm dựa trên mật độ không thích hợp với dữ liệu nhiều chiều, để giải quyết cho đòi hỏi này, người ta đã dử dụng phương pháp gom cụm dựa trên lưới. Đây là phương pháp dựa trên cấu trúc dữ liệu lưới để PCDL, phương pháp này chủ yếu tập trung áp dụng cho lớp dữ liệu không gian. Thí dụ như dữ liệu được biểu diễn dưới dạng cấu trúc hình học của đối tượng trong không gian cùng với các quan hệ, các thuộc tính, các hoạt động của chúng. [...]... hỡnh: - K-mean (MacQueen67): mi cm c i din bng tõm ca cm - K-medoids (Kaufman & Rousseeuw87): mi cm c i din bng mt trong cỏc i tng ca cm 2.3 Thut toỏn k-means Thut toỏn k-means l thut toỏn gom cm lp n gin Nú phõn mnh tp d liu cho trc thnh k cm, giỏ tr k do ngi dựng xỏc nh Thut toỏn d thc hin, thi hnh nhanh, d thớch nghi v ph bin trong thc t õy l mt trong nhng thut toỏn kinh in trong khai thỏc d liu K-means... toỏn K-Mean Gom cm ti liu web 1 Tỡm kim v trớch rỳt ti liu 2 Tin x lý ti liu: Quỏ trỡnh tỏch t v vecto húa ti liu: tỡm kim v thay th cỏc t bi ch s ca t ú trong t in Biu din d liu di dng vect 3 p dng K-Mean Kt qu tr v l cỏc cm ti liu v cỏc trng tõm tng ng Phõn vựng nh 15 Chng 3: CI T TH NGHIM THUT TON KMEANS 3.1 Chng trỡnh th nghim thut toỏn K-Means 3.1.1 Gii thiu - Chng trỡnh demo thut toỏn K-Means... toỏn K-means gii quyt bi toỏn phõn on nh nh sau: Input: nh cú kớch thc m*n S cm (k) mun phõn on Output: nh c phõn thnh k on cú mu sc tng ng nhau 3.2.2 Gii thiu chng trỡnh - Chng trỡnh ny trỡnh by kt qu thc nghim gom cm hỡnh nh theo mu sc trờn c s thut toỏn gom cm K-Means Chng trỡnh ci t c vit trờn ngụn ng lp trỡnh C# trờn nn tng Net Framework ca Microsoft Chng trỡnh ó thc thi c v cho kt qu gom. .. CH1101065 _ K-Means_XuLyAnh.exe trong CD ớnh kốm, th mc: X:\ K-Means - XuLyAnh\CVKMeans\bin\Debug 3.2.6 Source code Xem ph lc 2 20 KT LUN Trong quỏ trỡnh nghiờn cu v hon thnh bi thu hoch, em ó cú dp tỡm hiu, i sõu nghiờn cu k hn v data mining õy l mt hng nghiờn cu khỏ thỳ v Do thi gian hn ch nờn phm vi bi thu hoch ch gii hn trong vic tỡm hiu k thut gom cm, c bit l k thut gom cm phõn hoch vi thut toỏn K-Means... & " hàng (" & k & " cụm) và " & n & " cột (" & n & " điểm); gán ngẫu nhiên các giá trị 0 hoặc 1 cho từng điểm Xi đối với cụm mà nó thuộc vào." & vbCrLf For i = 0 To k For j = 0 To n strTemp = strTemp & TextMatrix(i, j) & vbTab & "| " 27 Next j strTemp = strTemp & vbCrLf Next i End With End If Else strTemp = strTemp & vbCrLf & "Buoc 2: " Buoc2: iLan = iLan + 1 strTemp = strTemp & "Tìm các vector trọng... Val(Right(vsfU.TextMatrix(0, 0), Len(vsfU.TextMatrix(0, 0)) - 1)) - 1 & " và " & vsfU.TextMatrix(0, 0) & " không có sự thay đổi Vậy thuật toán gom nhóm kết thúc với kết quả sau:" & vbCrLf For i = 1 To k For j = 1 To n If vsfU.TextMatrix(i, j) = 1 Then strKQ = strKQ & vsfU.TextMatrix(0, j) & ", " End If Next j strKQ = Left(strKQ, Len(strKQ) - 2) & " thuộc cụm " & vsfU.TextMatrix(i, 0) & vbCrLf Next i strTemp = strTemp... Abs(Val(vsfU0.TextMatrix(i, j)))) Next i Next j End If strTemp = vbCrLf & "Buoc 1:" & vbCrLf & "Lập bảng ma trận U0 gồm " & k & " hàng (" & k & " cụm) và " & n & " cột (" & n & " điểm); 26 gán ngẫu nhiên các giá trị 0 hoặc 1 cho từng điểm Xi đối với cụm mà nó thuộc vào." & vbCrLf For i = 0 To k For j = 0 To n strTemp = strTemp & TextMatrix(i, j) & vbTab & "| " Next j strTemp = strTemp & vbCrLf Next i End... thut toỏn trong khung Description 3.1.4 Hng dn ci t M file CH1101065 _ K-Means.exe trong CD ớnh kốm Nu xut hin thụng bỏo li thỡ chộp 2 file Vsflex7L.ocx v RichTX32.ocx vo th mc C:\WINDOWS\SYSTEM32 3.1.5 Source code Xem ph lc 1 3.2 Chng trỡnh phõn on nh bng thut toỏn K-Means 3.2.1 Bi toỏn phõn on nh Tm quan trng v nhng khú khn ca vic gom nhúm cỏc i tng mang tớnh tri giỏc ca con ngi t lõu ó c nghiờn cu... trỡnh ó thc thi c v cho kt qu gom cm theo mu sc ca hỡnh nh a vo Tuy nhiờn, do thi gian hn ch nờn chng trỡnh ch dng li mc gom cm hỡnh nh theo mu sc Cỏc chc nng chớnh ca chng trỡnh bao gm: 18 - Nhp s liu u vo: S cm k Chn nh cn phõn on - Thc thi quỏ trỡnh phõn on hỡnh nh bng thut toỏn K-Means - Hin th kt qu: Hin th ln lt cỏc kt qu phõn on hỡnh nh qua cỏc bc thc hin cho n khi hi t 3.2.3 Ph lc giao din...9 Mt s thut toỏn PCDL da trờn cu trỳc li in hỡnh l: STING, WAVECluster, CLIQUE, 2.2 Gom cm phõn hoch Gom cm phõn hoch l phõn mt tp d liu cú n phn t cho trc thnh k tp con d liu (k n), mi tp con biu din mt cm Cỏc cm hỡnh thnh trờn c s lm ti u giỏ tr hm o tng t sao cho: i) Cỏc i tng trong mt cm . thiệu chương trình - Chương trình này trình bày kết quả thực nghiệm gom cụm hình ảnh theo màu sắc trên cơ sở thuật toán gom cụm K-Means. Chương trình cài đặt được viết trên ngôn ngữ lập trình. thuật tiếp cận trong cụm dữ liệu 7 2.2 Gom cụm phân hoạch 9 2.3 Thuật toán K-Means 10 2.3.1 Thuật toán 10 2.3.2 Ví dụ minh họa 10 Chương 3: CÀI ĐẶT THỬ NGHIỆM THUẬT TOÁN. CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN    BÀI THU HOẠCH Môn học KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU Đề tài TÌM HIỂU THUẬT TOÁN GOM CỤM K-MEAN VÀ CÀI ĐẶT CHƯƠNG TRÌNH MINH

Ngày đăng: 09/04/2015, 22:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan