ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN Nguyễn Trung Sơn PHƢƠNG PHÁP PHÂN CỤM VÀ ỨNG DỤNG Chuyên ngành : Mã số : KHOA HỌC MÁY TÍNH 60.48.01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS VŨ ĐỨC THI Thái Nguyên – 2009 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN Nguyễn Trung Sơn PHƢƠNG PHÁP PHÂN CỤM VÀ ỨNG DỤNG Chuyên ngành : Mã số : KHOA HỌC MÁY TÍNH 60.48.01 LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS VŨ ĐỨC THI Thái Nguyên – 2009 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn -2- MỤC LỤC TRANG LỜI CẢM ƠN LỜI MỞ ĐẦU CHƢƠNG I : TỔNG QUAN THUYẾT VỀ PHÂN CỤM DỮ LIỆU Phân cụm liệu 1.1 Định nghĩa phân cụm liệu 1.2 Một số ví dụ phân cụm liệu Một số kiểu liệu 10 2.1 Dữ liệu Categorical 10 2.2 Dữ liệu nhị phân 13 2.3 Dữ liệu giao dịch 14 2.4 Dữ liệu Symbolic 15 2.5 Chuỗi thời gian(Time Series) 16 Phép Biến đổi Chuẩn hóa liệu 16 3.1 Phép chuẩn hóa liệu 17 3.2 Biến đổi liệu 21 3.2.1 Phân tích thành phần 21 3.2.2 SVD 23 3.2.3 Phép biến đổi Karhunen-Loève 24 CHƢƠNG II CÁC THUẬT TOÁN PHÂN CỤM DỮ LIỆU 28 Thuật toán phân cụm liệu dựa vào phân cụm phân cấp 28 1.1 Thuật toán BIRCH 28 1.2 Thuật toán CURE 30 1.3 Thuật toán ANGNES 32 1.4 Thuật toán DIANA 33 1.5 Thuật toán ROCK 33 1.6 Thuật toán Chameleon 34 -3- Thuật toán phân cụm liệu mờ 35 2.1 Thuật toán FCM 36 2.2 Thuật toán εFCM 37 Thuật toán phân cụm liệu dựa vào cụm trung tâm 37 3.1 Thuật toán K – MEANS 37 3.2 Thuật toán PAM 41 3.3 Thuật toán CLARA 42 3.4 Thuật toán CLARANS 44 Thuật tốn phân cụm liệu dựa vào tìm kiếm 46 4.1 Thuật toán di truyền (GAS) 46 4.2 J- Means 48 Thuật toán phân cụm liệu dựa vào lƣới 49 5.1 STING 49 5.2 Thuật toán CLIQUE 51 5.3 Thuật toán WaveCluster 52 Thuật toán phân cụm liệu dựa vào mật độ 53 6.1 Thuật toán DBSCAN 53 6.2 Thuật toán OPTICS 57 6.3 Thuật toán DENCLUDE 58 Thuật toán phân cụm liệu dựa mẫu 60 7.1 Thuật toán EM 60 7.2 Thuật toán COBWEB 61 CHƢƠNG III :ỨNG DỤNG CỦA PHÂN CỤM DỮ LIỆU 62 Phân đoạn ảnh 62 1.1 Định nghĩa Phân đoạn ảnh 63 1.2 Phân đoạn ảnh dựa vào phân cụm liệu 65 Nhận dạng đối tƣợng ký tự 71 2.1 Nhận dạng đối tượng 71 -4- 2.2 Nhận dạng ký tự 75 Truy hồi thông tin 76 3.1 Biểu diễn mẫu 78 3.2 Phép đo tương tự 79 3.3 Một giải thuật cho phân cụm liệu sách 80 Khai phá liệu 81 4.1 Khai phá liệu Phương pháp tiếp cận 82 4.2 Khai phá liệu có cấu trúc lớn 83 4.3 Khai phá liệu Cơ sở liệu địa chất 84 4.4 Tóm tắt 86 KẾT LUẬN ,HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 90 PHỤ LỤC 91 TÀI LIỆU THAM KHẢO 99 -5LỜI CẢM ƠN Em xin chân thành cảm ơn PGS TS Vũ Đức Thi tận tình hướng dẫn khoa học, giúp đỡ em hoàn thành tốt luận văn tốt nghiệp Em xin gửi lời cảm ơn tới thầy, cô giáo dạy dỗ, truyền đạt kiến thức cho em suốt trình học tập nghiên cứu HỌC VIÊN NGUYỄN TRUNG SƠN -6LỜI MỞ ĐẦU Trong năm gần đây, phát triển mạnh mẽ CNTT làm cho khả thu thập lưu trữ thông tin hệ thống thông tin tăng nhanh cách chóng mặt Bên cạnh đó, việc tin học hóa cách ạt nhanh chóng hoạt động sản xuất, kinh doanh nhiều lĩnh vực hoạt động khác tạo cho lượng liệu lưu trữ khổng lồ Hàng triệu CSDL sử dụng hoạt động sản xuất, kinh doanh, quản lý , có nhiều CSDL cực lớn cỡ Gigabyte, chí Terabyte Sự bùng nổ dẫn tới yêu cầu cấp thiết cần có kỹ thuật cơng cụ để tự động chuyển đổi lượng liệu khổng lồ thành tri thức có ích Từ đó, kỹ thuật khai phá liệu trở thành lĩnh vực thời CNTT giới nói chung Việt Nam nói riêng Khai phá liệu áp dụng cách rộng rãi nhiều lĩnh vực kinh doanh đời sống khác nhau: marketing, tài chính, ngân hàng bảo hiểm, khoa học, y tế, an ninh, internet… Rất nhiều tổ chức công ty lớn giới áp dụng kỹ thuật khai phá liệu vào hoạt động sản xuất kinh doanh thu lợi ích to lớn Các kỹ thuật khai phá liệu thường chia thành nhóm chính: - Kỹ thuật khai phá liệu mơ tả: có nhiệm vụ mơ tả tính chất đặc tính chung liệu CSDL có - Kỹ thuật khai phá liệu dự đốn: có nhiệm vụ đưa dự đoán dựa vào suy diễn liệu thời Bản luận văn trình bày số vấn đề Phân cụm liệu, kỹ thuật để Khai phá liệu Đây hướng nghiên cứu có triển vọng sơ lược việc hiểu khai thác CSDL khổng lồ, khám phá thông tin hữu ích ẩn liệu; hiểu ý nghĩa thực tế liệu Luận văn đƣợc trình bày chƣơng phần phụ lục : Chương : Trình bày tổng quan lý thuyết Phân cụm liệu, kiểu liệu, Phép biến đổi chuẩn hóa liệu Chương : Giới thiệu, phân tích, đánh giá thuật toán dùng để phân cụm liệu Chương : Trình bày số ứng dụng tiêu biểu phân cụm liệu Kết luận : Tóm tắt vấn đề tìm hiểu luận văn vấn đề liên quan luận văn, đưa phương hướng nghiên cứu -7- CHƢƠNG I : TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU Phân cụm liệu 1.1 Định nghĩa phân cụm liệu Phân cụm liệu(Data Clustering) hay phân cụm, gọi phân tích cụm, phân tích phân đoạn, phân tích phân loại, q trình nhóm tập đối tượng thực thể hay trừu tượng thành lớp đối tượng tương tự Một cụm tập hợp đối tượng liệu mà phần tử tương tự cụm phi tương tự với đối tượng cụm khác Một cụm đối tượng liệu xem nhóm nhiều ứng dụng 1.2 Một số ví dụ phân cụm liệu 1.2.1 Phân cụm liệu phục vụ cho biểu diễn liệu gene Phân cụm phân tích sử dụng thường xuyên biểu diễn liệu gene (Yeung et al., 2003; Eisen at al., 1998) Dữ liệu biểu diễn gene tâp hợp phép đo lấy từ DNA microarray (còn gọi DNA chip hay gene chip) thủy tinh nhựa có gắn đoạn DNA thành hàng siêu nhỏ Các nhà nghiên cứu sử dụng chip để sàng lọc mẫu sinh học nhằm kiểm tra có mặt hàng loạt trình tự lúc Các đoạn DNA gắn chip gọi probe (mẫu dị) Trên điểm chip có hàng ngàn phân tử probe với trình tự giống Một tập hợp liệu biểu diễn gene biểu diễn thành ma trận giá trị thực : x11 x 21 D x n1 x12 x1d x 22 x d , x n x nd Trong : - n số lượng gen - d số lượng mẫu hay điều kiện thử - xij thước đo biểu diễn mức gen i mẫu j -8- Bởi biểu ma trận gốc chứa nhiễu, giá trị sai lệch, hệ thống biến thể, tiền xử lý đòi hỏi cần thiết trước thực phân cụm Khai phá liệu Phân loại Ước lượng Dự đoán Khai phá liệu trực tiếp Khai phá liệu gián tiếp Phân cụm Luật kết hợp Diễn giải trực quan hóa Hình Tác vụ Khai phá liệu Dữ liệu biểu diễn gen phân cụm theo hai cách Cách thứ nhóm các mẫu gen giống nhau, ví dụ gom dòng ma trận D Cách khác nhóm mẫu khác hồ sơ tương ứng, ví dụ gom cột ma trận D 1.2.2 Phân cụm liệu phục sức khỏe tâm lý Phân cụm liệu áp dụng nhiều lĩnh vực sức khỏe tâm lý, bao gồm việc thúc đẩy trì sức khỏe, cải thiện cho hệ thống chăm sóc sức khỏe, cơng tác phòng chống bệnh tật người khuyết tật (Clatworthy et al., 2005) Trong phát triển hệ thống chăm sóc sức khỏe, phân cụm liệu sử dụng để xác định nhóm người dân mà hưởng lợi từ dịch vụ cụ thể (Hodges Wotring, 2000) Trong thúc đẩy y tế, nhóm phân tích sử dụng để lựa chọn nhắm mục tiêu vào nhóm có khả đem lại lợi ích cho sức khỏe cụ thể từ chiến dịch quảng bá tạo điều kiện thuận lợi cho phát triển quảng cáo Ngoài ra, phân cụm liệu -9được sử dụng để xác định nhóm dân cư bị rủi ro phát triển y tế điều kiện người có nguy nghèo 1.2.3 Phân cụm liệu hoạt đông nghiên cứu thị trường Trong nghiên cứu thị trường, phân cụm liệu sử dụng để phân đoạn thị trường xác định mục tiêu thị trường (Chrisoppher, 1969; Saunders, 1980, Frank and Green, 1968) Trong phân đoạn thị trường, phân cụm liệu thường dùng để phân chia thị trường thành cụm mang ý nghĩa, chẳng han chia đối tượng nam giới từ 21-30 tuổi nam giới 51 tuổi, đối tượng nam giới 51 tuổi thường khơng có khuynh hướng mua sản phẩm 1.2.4 Phân cụm liệu hoạt động Phân đoạn ảnh Phân đoạn ảnh việc phân tích mức xám hay mầu ảnh thành lát đồng (Comaniciu and Meer, 2002) Trong phân đoạn ảnh, phân cụm liệu thường sử dụng để phát biên đối tượng ảnh Phân cụm liệu công cụ thiết yếu khai phá liệu, khai phá liệu trình khám phá phân tích khối lượng lớn liệu để lấy thơng tin hữu ích (Berry and Linoff, 2000) Phân cụm liệu vấn đề nhận dạng mẫu (pattern recognition) Hình 1.1 đưa danh sách giản lược tác vụ đa dạng khai phá liệu chứng tỏ vai trò phân cụm liệu khai phá liệu Nhìn chung, Thơng tin hữu dụng khám phá từ khối lượng lớn liệu thông qua phương tiện tự động hay bán tự động (Berry and Linoff, 2000) Trong khai phá liệu gián tiếp, khơng có biến chọn biến đích, mục tiêu để khám phá vài mối quan hệ tất biến Trong khai phá liệu gián tiếp vài biến lại chọn biến đích Phân cụm liệu khai phá liệu gián tiếp, khai phá liệu, ta khơng đảm bảo chắn xác cụm liệu mà tìm kiếm, đóng vai trị việc hình thành cụm liệu đó, làm Vấn đề phân cụm liệu quan tâm cách rộng rãi, chưa có định nghĩa đồng phân cụm liệu khơng đến thống nhất.(Estivill-Castro,2002; Dubes, 1987; Fraley and Raftery, 1998) Nói cách đại khái : Phân cụm liệu, có nghĩa ta -85Về chất lượng, trữ lượng tốt phục hồi có bão hịa hydrocarbon cao mắc kẹt trầm tích xốp (chứa porosity) bao quanh số lượng lớn loại đá cứng có ngăn chặn rị rỉ dầu khí từ xa Một khối lượng lớn trầm tích xốp quan trọng để tìm dự trữ phục hồi tốt, phát triển đáng tin cậy xác phương pháp cho dự tốn porosities trầm tích từ liệu thu thập chìa khóa để ước tính tiềm dầu khí Các quy tắc chung chuyên gia ngón sử dụng cho tính tốn độ xốp, rỗng chức luật số mũ chiều sâu: Độ xốp = K.e F x1 , x2 ,, xm Depth (4) Một số yếu tố loại đá, cấu trúc, xây bằng xi măng thông số F chức bối rối mối quan hệ Điều đòi định nghĩa ngữ cảnh thích hợp, cố gắng khám phá cơng thức đo độ xốp Bối cảnh địa chất thể điều khoản tượng địa chất, hình học, lithology, nén chặt, lún, liên kết với khu vực Nó tiếng thay đổi bối cảnh địa chất từ lưu vực để lưu vực (các khu vực địa lý khác giới) từ khu vực tới khu vực lưu vực [Allen Allen 1990; Biswas 1995] Hơn nữa, tính tiềm ẩn bối cảnh khác nhiều Mơ hình kết hợp kỹ thuật đơn giản, mà làm việc lĩnh vực kỹ thuật mà hạn chế hành vi người gây hệ thống thành lập luật vật lý, áp dụng lĩnh vực thăm dị dầu khí Đến địa này, phân nhóm liệu sử dụng để xác định ngữ cảnh có liên quan, sau phát phương trình thực bối cảnh Mục đích để lấy tập x1, x2, , xm từ tập lớn tính địa chất, F mối quan hệ chức định chức đo độ rỗng, xốp khu vực Các phương pháp tổng thể minh hoạ Hình 35, bao gồm hai bước chính: (i) Bối cảnh định nghĩa cách sử dụng kỹ thuật Phân cụm không giám sát, (ii) phát cách phân tích Phương trình hồi quy [Li Biswas 1995] Bất thăm dò liệu thu thập từ vùng lưu vực Alaska phân tích cách sử dụng phương pháp phát triển Các đối tượng liệu (mẫu) mô tả 37 đặc điểm địa chất, độ xốp, tính thấm, mật độ kích thước hạt, phân loại, số lượng mảnh khống sản khác (ví dụ, thạch anh, Chert, fenspat) nay, tính chất mảnh -86đá , lỗ chân lông đặc điểm, xây bằng xi măng Tất tính giá trị đo số thực mẫu lấy từ ghi tốt trình khoan thăm dị Thuật tốn phân cụm liệu K-means sử dụng để xác định tập đồng cấu trúc địa chất nguyên thủy (g1, g2, , gm) Những nguyên thủy sau ánh xạ vào mã đơn vị so với đồ đơn vị địa tầng học Hình 36 mơ tả đồ phần cho tập hợp giếng bốn cấu trúc nguyên thủy Bước trình phát xác định phần khu vực giếng tạo thành từ trình tự địa chất nguyên thủy Mỗi trình tự quy định Ci ngữ cảnh Từ phần đồ Hình 36, bối cảnh C1 = g2 g1 g2 g3 xác định hai khu vực tốt (của 300 600 series) Sau bối cảnh xác định, liệu điểm thuộc bối cảnh nhóm lại với cho derivation phương trình Thủ tục dẫn xuất derivation làm việc phân tích hồi qui [Sen Srivastava 1990] Phương pháp áp dụng cho tập liệu khoảng 2.600 đối tượng tương ứng với mẫu đo thu thập từ giếng lưu vực Alaska K-means nhóm liệu đặt thành bảy nhóm Như minh hoạ, Chúng ta chọn 138 đối tượng đại diện cho bối cảnh để phân tích Các tính định nghĩa cụm lựa chọn, chuyên gia surmised bối cảnh đại diện cho vùng độ xốp rỗng thấp, mơ hình cách sử dụng thủ tục hồi qui 4.4 Tóm tắt Có nhiều ứng dụng, nơi định phân tích mẫu thăm dị thực liệu lớn đặt Ví dụ, lấy tài liệu, tập hợp tài liệu có liên quan tìm thấy vài số hàng triệu tài liệu chiều 1000 Có thể xử lý vấn đề hữu ích số trừu tượng liệu thu sử dụng việc định, trực tiếp cách sử dụng liệu toàn thiết lập Bởi trừu tượng hóa liệu, chúng tơi có nghĩa đại diện đơn giản gọn nhẹ liệu Đơn giản giúp máy chế biến có hiệu hay người comprehending cấu trúc liệu cách dễ dàng Thuật toán phân cụm liệu lý tưởng cho việc đạt liệu trừu tượng -87Trong này, kiểm tra bước khác phân nhóm: (1) mơ hình đại diện, (2) tính tốn tương tự, (3) nhóm quy trình, (4) đại diện cụm Ngoài ra, đề cập đếnận thống kê, mờ, thần kinh, tiến hóa, kiến thức dựa phương pháp tiếp cận để phân cụm liệu Chúng ta có bốn mơ tả ứng dụng phân nhóm: (1) Phân đoạn ảnh, (2) nhận diện đối tượng, (3) truy hồi tài liệu, (4) khai phá liệu Hình 36 Mã vùng so với đồ đơn vị địa tầng phần khu vực nghiên cứu Phân cụm liệu trình nhóm liệu dựa thước đo tương tự Phân cụm liệu trình chủ quan; liệu thường xuyên cần phải phân vùng khác cho ứng dụng khác Chủ quan làm cho q trình phân nhóm khó khăn Điều thuật tốn đơn phương pháp tiếp cận không đủ để giải vấn đề phân cụm liệu Một giải pháp nằm chủ quan phản ánh hình thức kiến thức Kiến thức sử dụng ngầm rõ ràng nhiều giai đoạn Phân cụm liệu Kiến thức dựa thuật tốn phân nhóm sử dụng kiến thức cách rõ ràng Bước khó khăn phân nhóm tính khai thác mẫu đại diện Các nhà nghiên cứu mẫu nhận diện công nhận thuận tiện tránh bước -88này cách giả sử đại diện khn mẫu có sẵn đầu vào thuật tốn phân cụm liệu Kích thước nhỏ, tập hợp liệu, đại diện mơ hình thu dựa kinh nghiệm trước người dùng với vấn đề Tuy nhiên, trường hợp liệu lớn, khó khăn cho người sử dụng để theo dõi quan trọng tính phân cụm liệ Một giải pháp làm cho phép đo nhiều mẫu tốt sử dụng chúng khn mẫu đại diện Nhưng khơng thể sử dụng sưu tập lớn phép đo trực tiếp phân cụm liệu chi phí tính tốn Vì vậy, số tính khai thác / lựa chọn phương pháp tiếp cận thiết kế để có kết hợp tuyến tính phi tuyến phép đo dùng để đại diện cho mẫu Hầu hết đề án đề nghị cho khai thác tính / lựa chọn thường lập lại tự nhiên sử dụng tập liệu lớn chi phí tính tốn Bước thứ hai phân nhóm giống tính tốn Một loạt đề án sử dụng để tính tốn giống hai mơ hình Họ sử dụng kiến thức ngầm rõ ràng Hầu hết kiến thức dựa thuật toán phân nhóm sử dụng kiến thức rõ ràng tính tốn tương tự Tuy nhiên, khơng phải đại diện cho mẫu cách sử dụng tính phù hợp, sau khơng phải làm cho phân vùng có ý nghĩa khơng phân biệt chất lượng số lượng kiến thức sử dụng tính tốn tương tự Khơng có đề án phổ chấp nhận máy tính giống mẫu đại diện cách sử dụng hỗn hợp hai tính định lượng Không giống cặp mẫu đại diện cách sử dụng thước đo khoảng cách khơng thể có số liệu Bước phân nhóm nhóm bước lại với Có hai nhóm đề án rộng rãi: đề án theo kế thừa phân vùng Các đề án có nhiều thứ bậc linh hoạt, đề án phân vùng tốn Các thuật tốn phân vùng nhằm tối đa hóa khả lơi tiêu chí bình phương Thúc đẩy thất bại lỗi bình phương thuật tốn phân cụm liệu phân vùng việc tìm kiếm giải pháp tối ưu cho vấn đề này, sưu tập lớn phương pháp đề xuất sử dụng để có giải pháp tồn cầu tối ưu cho vấn đề Tuy nhiên, đề án giới hạn cho phép mặt tính tốn liệu lớn đặt Đề án phân cụm liệu dựa mạng -89nowrron(ANN) triển khai thần kinh thuật tốn phân nhóm, họ chia sẻ tài sản khơng mong muốn thuật tốn Tuy nhiên, ANNs có khả tự động bình thường hóa liệu trích xuất tính Một quan sát quan trọng đề án tìm thấy giải pháp tối ưu cho vấn đề phân vùng bình phương lỗi, thu ngắn u cầu khơng thể-đẳng hướng chất cụm Trong số ứng dụng, ví dụ truy hồi tài liệu, hữu ích để có phân nhóm khơng phải phân vùng Điều có nghĩa cụm chồng chéo Phân cụm liệu mờ Fuzzy chức lý tưởng cho mục đích Ngồi ra, thuật tốn phân nhóm mờ xử lý liệu hỗn hợp loại Tuy nhiên, vấn đề lớn với phân cụm liệu mờ khó để có giá trị thành viên Một cách tiếp cận tổng hợp khơng làm việc chất chủ quan phân cụm liệu Nó cần thiết để đại diện cho cụm thu hình thức thích hợp để giúp nhà sản xuất định Kiến thức dựa phân nhóm đề án tạo mơ tả trực giác hấp dẫn cụm Họ sử dụng mơ hình đại diện cách sử dụng kết hợp đặc tính định lượng, miễn kiến thức liên kết khái niệm tính hỗn hợp có sẵn Tuy nhiên, việc triển khai đề án khái niệm phân cụm liệu có ước tính đắt tiền khơng phù hợp cho nhóm tập hợp liệu lớn Thuật toán K-means giải thuật dựa mạng nowrron thần kinh , lưới Kohonen, thành công sử dụng liệu lớn Điều là thuật toán K-means đơn giản để thực ước tính hấp dẫn thời gian tuyến tính phức tạp Tuy nhiên, khơng khả thi để sử dụng thuật tốn thời gian tuyến tính liệu lớn đặt Thuật toán gia tăng lãnh đạo thực thần kinh nó, mạng Art, sử dụng để cụm tập liệu lớn Nhưng họ có xu hướng tự phụ thuộc Phân chia chinh phục heuristic mà khai thác theo thiết kế thuật tốn máy tính để giảm chi phí tính tốn Tuy nhiên, cần khơn ngoan sử dụng phân nhóm để đạt kết có ý nghĩa Tóm lại, Phân cụm liệu vấn đề thú vị, hữu ích, đầy thách thức Nó có tiềm lớn ứng dụng nhận điện đối tượng, phân đoạn hình ảnh, chọn lọc truy hồi thông tin Tuy nhiên cần cẩn thận thiết kế vài lựa chọn để khai thác tiềm -90- KẾT LUẬN Các vấn đề đƣợc tìm hiểu luận văn Tổng hợp, nghiên cứu nét lý thuyết ứng dụng thực tiễn Phân cụm liệu Với phát triển ngày lớn vũ bão Công nghệ thông tin to Cơ sở liệu thơng tin Do yêu cầu nghiên cứu hoàn thiện, áp dụng phương pháp, kỹ thuật Phân cụm liệu cần thiết có ý nghĩa to lớn Trong chương 1, luận văn trình bày tổng quan, lý thuyết phân cụm liệu, số lý thuyết liên quan trực tiếp đến khai phá liệu Chương 2, giới thiệu tổng quát thuật toán phân cụm liệu, thuật toán phân cụm liệu nhiều, Luận văn đề cập số thuật toán phổ biến, thơng dụng Chương nói số ứng dụng tiêu biểu phân cụm liệu Phân đoạn ảnh, Nhận diện ký tự đối tượng, Truy hồi thông tin, Khai phá liệu HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Phân cụm liệu ứng dụng Phân cụm liệu hướng nghiên cứu cần thiết, quan trọng, Tuy nhiên mảng rộng, bao hàm nhiều phương pháp, kỹ thuật, hình thành nhiều nhóm khác Trong q trình nghiên cứu, thực luận văn cố gắng tập trung nghiên cứu tham khảo nhiều tài liệu, báo, tạp chí khoa học ngồi nước, trình độ cịn có nhiều giới hạn khơng thể tránh khỏi thiếu sót hạn chế Em mong bảo đóng góp nhiều thày, cô giáo, nhà khoa học… HƢỚNG NGHIÊN CỨU PHÁT TRIỂN - Tiếp tục nghiên cứu thêm lý thuyết phân cụm liệu - Xây dựng, phát triển thêm kỹ thuật, ứng dụng Phân cụm liệu -91- PHỤ LỤC : XÂY DỰNG CHƢƠNG TRÌNH “PHÂN CỤM DỮ LIỆU VỚI THUẬN TỐN K-MEANS BẰNG NGÔN NGỮ VISUAL BASIC 6.0” Giao diện chương trình : -92* Người sử dụng chọn số lượng cụm liệu, sau click ngẫu nhiên vào khung( nhập liệu X, Y) Chương trình tạo cụm sở tối giản bình phương khoảng cách liệu cụm trọng tâm tương ứng, điểm biểu thị cho đối tượng tọa độ (X, Y) mô tả hai thuộc tính đối tượng Màu sắc điểm số nhãn biểu thị cho cụm liệu * Thuật toán phân cụm K-Means làm việc sau : Nếu số lượng liệu nhỏ số cụm ta gán liệu trọng tâm cụm Mỗi trọng tâm có số cụm Nếu số lượng lớn liệu lớn số cụm, với liệu, ta tính tốn khoảng cách tới tất trọng tâm lấy khoảng cách tối thiểu Dữ liệu nói thuộc cụm có khoảng cách tối thiểu tới liệu Khi không chắn vị trị trọng tâm, ta cần điều chỉnh vị trí trọng tâm dựa vào liệu cập nhật Sau đó, ta gán tất liệu tới trọng tâm Quá trình lặp lại khơng cịn liệu di chuyển sang cụm khác Về mặt tốn học, vịng lặp chứng minh hội tụ -93- Ví dụ sau chạy chương trình với số cụm = -94Mã nguồn chƣơng trình Option Explicit Private Data() ' Row = cluster, =X, 2= Y; Số l-ợng liệu cét Private Centroid() As Single ' cơm trung t©m (X Y) cụm; Số l-ợng cụm = Số l-ợng cột Private totalData As Integer ' Tổng số liƯu (tỉng sè cét) Private numCluster As Integer ' Tỉng số cụm ############################################################## ' Các form điều khiển ' + Form_Load ' + cmdReset_Click ' + txtNumCluster_Change ' + Picture1_MouseDown ' + Picture1_MouseMove ' ############################################################## Private Sub Form_Load() Dim i As Integer Picture1.BackColor = &HFFFFFF ' đặt mầu = trắng Picture1.DrawWidth = 10 ' Độ lớn điểm Picture1.ScaleMode = ' pixels 'Đ-a số l-ợng cụm numCluster = Int(txtNumCluster) ReDim Centroid(1 To 2, To numCluster) For i = To numCluster - 'T¹o nh·n If i > Then Load lblCentroid(i) lblCentroid(i).Caption = i + lblCentroid(i).Visible = False Next i End Sub Private Sub cmdReset_Click() ' refress lại liệu Dim i As Integer Picture1.Cls ' Làm ảnh -95- Erase Data totalData = ' Xãa d÷ liƯu For i = To numCluster - lblCentroid(i).Visible = False ' Kh«ng hiƯn nhÃn Next i 'Cho phép thay đổi số l-ợng cụm txtNumCluster.Enabled = True End Sub Private Sub txtNumCluster_Change() 'Thay ®ỉi số l-ợng cụm reset lại liệu Dim i As Integer For i = To numCluster - Unload lblCentroid(i) Next i numCluster = Int(txtNumCluster) ReDim Centroid(1 To 2, To numCluster) 'Gäi sù kiÖn cmdReset_Click For i = To numCluster - If i > Then Load lblCentroid(i) lblCentroid(i).Caption = i + lblCentroid(i).Visible = False Next i End Sub Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Thu thập liệu trình diễn kết Dim colorCluster As Integer Dim i As Integer 'Vô hiệu khả thay đổi số l-ợng cụm txtNumCluster.Enabled = False ' Tạo liệu chức totalData = totalData + ReDim Preserve Data(0 To 2, To totalData) ' Chú ý : Bắt đầu với cho dòng Data(1, totalData) = X Data(2, totalData) = Y -96- 'Thùc hiÖn k-mean clustering Call kMeanCluster(Data, numCluster) 'Trình diễn kết Picture1.Cls For i = To totalData colorCluster = Data(0, i) - If colorCluster = Then colorCluster = 12 ' Nếu mầu trắng (Nếu giống mầu thay đổi thành màu khác) X = Data(1, i) Y = Data(2, i) Picture1.PSet (X, Y), QBColor(colorCluster) Next i 'HiƯn thÞ cơm trung t©m For i = To min2(numCluster, totalData) lblCentroid(i - 1).Left = Centroid(1, i) lblCentroid(i - 1).Top = Centroid(2, i) lblCentroid(i - 1).Visible = True Next i End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblXYValue.Caption = X & "," & Y End Sub ' ############################################################## ' FUNCTIONS ' + kMeanCluster: ' + dist: Khoảng cách tính toán ' + min2: Trở lại giá trị nhỏ hai số ' ############################################################## Sub kMeanCluster(Data() As Variant, numCluster As Integer) ' Hàm để phân cụm liệu thành k cụm ' input: + Ma trËn d÷ liƯu (0 tíi 2, tíi TotalData); Row = cluster, =X, 2= Y; Dữ liệu cột ' + numCluster: Số l-ợng cụm ng-ời dùng muốn liệu đ-ợc phân cụm ' + Các biến địa ph-ơng: Centroid, TotalData ' ouput: o) Cụm trung tâm đà đ-ợc cập nhật ' o) Gán số l-ợng cụm vào liệu (= row of Data) Dim i As Integer -97- Dim j As Integer Dim X As Single Dim Y As Single Dim As Single Dim cluster As Integer Dim d As Single Dim sumXY() Dim isStillMoving As Boolean isStillMoving = True If totalData