Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát MỤC ĐÍCH CỦA ĐỀ TÀI Cơng việc đọc tìm hiểu đề tài nhằm muc đích sau đây: • Tìm hiểu qua khai phá liệu (Data mining) • Tìm hiểu qua số thuật toán phân cụm liệu khơng giám sát • Trên lền tảng lý thuyết khai phá liệu số thuật toán phân cụm không giám sát tiến tới sâu vào tìm hiểu, phân tích, đánh giá số thuật tốn phương pháp phân cụm liệu nửa giám sát.( Thuật tốn Seeded-Kmeans Constrained-Kmeans) • Xây dựng chương trình demo, mơ hoạt động phương pháp phân cụm liệu nửa giám sát LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát GIỚI THIỆU Trong vài thập niên gần đây, với thay đổi phát triển không ngừng ngành cơng nghệ thơng tin nói chung ngành công nghệ phần cứng, phân mềm, truyền thông hệ thống liệu phục vụ lĩnh vực kinh tế xã hội nói riêng Thì việc thu thập thông tin nhu cầu lưu trữ thơng tin ngày lớn Bên cạnh việc tin học hoá 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 Cơ sở liệu sử dụng hoạt động sản xuất, kinh doanh, quản lí , có nhiều Cơ sở liệu 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 Công nghệ thông tin giới Một vấn đề đặt phải trích chọn thơng tin có ý nghĩa từ tập liệu lớn để từ giải yêu cầu thực tế trợ giúp định, dự đoán,… Khai phá liệu (Data mining) đời nhằm giải yêu cầu Khai phá liệu định nghĩa là: q trình trích xuất thơng tin có giá trị tiềm ẩn bên lượng lớn liệu lưu trữ Cơ sở liệu, kho liệu… Hiện nay, thuật ngữ khai phá liệu, người ta dùng số thuật ngữ khác có ý nghĩa tương tự như: khai phá tri thức từ Cơ sở liệu (knowlegde mining from databases), trích lọc liệu (knowlegde extraction), phân tích liệu/mẫu (data/pattern analysis), khảo cổ liệu (data archaeology), nạo vét liệu (data dredging) Nhiều người coi khai phá liệu thuật ngữ thông dụng khác khám phá tri thức Cơ sở liệu(Knowlegde Discovery in Databases – KDD) Tuy nhiên thực tế, khai phá liệu bước thiết yếu trình Khám phá tri thức Cơ sở liệu Ngay từ ngày đầu xuất hiện, Data mining trở thành xu hướng nghiên cứu phổ biến lĩnh vực học máy tính cơng nghệ tri thức Nhiều thành tựu nghiên cứu Data mining áp dụng thực tế Data mining có nhiều hướng quan trọng hướng phân cụm liệu (Data Clustering ) Phân cụm liệu trính tìm kiếm để phân cụm liệu, mẫu liệu từ tập Cơ sở liệu lớn Phân cụm liệu phương pháp học không giám sát LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật toán Phân cụm liệu nửa giám sát Trong năm trở lại đây, phương pháp phân cụm liệu khơng giám sát cịn nhiều nhược điểm dựa học khơng giám sát học có giám sát đời phương pháp phân cụm liệu phương pháp phân cụm liệu nửa giám sát Phương pháp phân cụm nửa giám sát khơng phải phương pháp phân cụm hồn thiện phần khắc phục hạn chế phát huy ưu điểm phương pháp phân cụm không giám sát MỤC LỤC LỜI CẢM ƠN Error! Bookmark not defined MỤC ĐÍCH CỦA ĐỀ TÀI GIỚI THIỆU Chương : TỔNG QUAN VỀ DATA MINING 1.1 Giới thiệu khám phá tri thức 1.2 Khai phá liệu khái niệm liên quan 1.2.1 Khái niệm khai phá liệu 1.2.2 Các kỹ thuật tiếp cận khai phá cữ liệu Chương : PHÂN CỤM DỮ LIỆU VÀ CÁC TIẾP CẬN 2.1 Khái quát phân cụm liệu 2.2 Các kiểu liệu độ đo tương tự 2.3 Những kỹ thuật tiếp cận phân cụm liệu 12 2.3.1 Phân cụm phân hoạch 12 2.3.2 Phân cụm liệu phân cấp 13 2.3.3 Phân cụm liệu dựa mật độ 13 2.3.4 Phân cụm liệu dựa lưới 14 2.3.5 Phân cụm liệu dựa mơ hình 15 2.3.6 Phân cụm liệu có ràng buộc 16 2.4 Một số ứng dụng phân cụm liệu 17 Chương : PHÂN CỤM DỮ LIỆU KHÔNG GIÁM SÁT 18 3.1 Phương pháp phân hoạch 18 3.1.1 Thuật toán K-Means 19 3.1.2 Thuật toán K-Medoids 20 3.2 Phương pháp phân cấp 20 3.2.1 Thuật toán CURE 21 3.2.2 Thuật toán BIRCH 23 3.3 Thuật toán k-tâm: 24 3.3.1 Cơ sở toán học thuật toán k-tâm 24 3.3.2 Các đối tượng có kiểu hỗn hợp 25 3.3.3 Độ đo tương tự 25 3.3.4 Cơng thức tính khoảng cách hai đối tượng 25 3.3.5 Thuật toán K-Tâm 26 Chương : PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT 28 4.1 Thuật toán COP-KMeans 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật toán Phân cụm liệu nửa giám sát 4.2 Phân cụm nửa giám sát dựa tập tập liệu dán nhãn 30 4.2.1 Thuật toán Seeded-KMeans 30 4.2.2 Thuật toán Constrained-KMeans 31 4.3 Thuật toán K-Means phân cấp 33 Chương : GIỚI THIỆU VỀ NGÔN NGỮ VB 6.0 36 5.1 Cấu trúc đề án (Project) 37 5.2 Một số điều khiển 37 5.3 Mơ hình truy cập sở liệu ADO 38 5.4 Trình thiết kế mơi trường liệu ( Data Environment ) 40 5.5 Các phương thức Recordset Command 41 Chương : BÀI TOÁN ỨNG DỤNG 42 6.1 Bài toán 44 6.2 Các thông tin loại bảo hiểm nhân thọ 45 6.3 Cài đặt thuật toán Phân cụm nửa giám sát vời liệu hốn hợp 47 6.4 Các hàm thủ tục thực thuật tốn 48 6.4.1 Hàm khởi tạo tâm từ Tập giống 48 6.4.2 Các hàm tính khoảng cách 49 6.4.3 thuật toán Constrained-Kmeans 50 6.5 Giao diện chương trình 55 KẾT LUẬN 60 Tài liệu tham khảo 61 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Chương : TỔNG QUAN VỀ DATA MINING 1.1 Giới thiệu khám phá tri thức Trong vài chục năm gần với phát triển mạnh mẽ kỹ thuật công nghệ nhu cầu lưu trữ thông tin dẫn đến trữ lượng liệu lưu trữ không ngừng tăng theo Những sở liệu lớn đời, có sở liệu lên đến cỡ Gigabyte chí Terabyte Nếu bạn có tay kho sở liệu có nghĩa bạn có tay kho tri thức.Nhưng vấn đề đặt làm bạn trích lọc thông tin, tri thức từ kho liệu với nhiều thông tin lĩnh vực khác Để giải vấn đề kỹ thuật khám phá tri thức sở liệu (Knowledge Discovery in Databases- KDD) đời.Khám phá tri thức sở liệu (KDD) lĩnh vực liên quan đến ngành như: xác suất thống kê, học máy, trực quan hóa liệu, tính tốn song song,…Trong q trình KDD chia thành bước thực sau [1]: Bước 1: Trích chọn liệu: Ở bước liệu liên quan trực tiếp đến nhiệm vụ trình KDD thu thập từ nguồn liệu ban đầu Bước 2: Tiền xử lý liệu: có nhiệm vụ làm sạch, loại bỏ nhiễu, rút gọn rời rạc hóa liệu Bước 3: Biến đổi liệu: nhằm chuẩn hóa làm mịn liệu để chuyển liệu dạng thuận lợi phục vụ cho việc khai phá Bước 4: Data mining: dùng kỹ thuật phân tích để khai thác liệu, trích chọn mẫu thông tin cần thiết,… Công đoạn xem thời gian quan trọng trình KDD Bước 5: Đánh giá biểu diễn tri thức: Các thông tin mối liên hệ chúng vừa khám phá công đoạn trước biểu diễn dạng trực quan đồng thời đánh giá theo tiêu chí định LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Dữ liệu thô Tri thức Trích chọn liệu Đánh giá biểu diễn Dữ liệu Mẫu Tiền xử lý liệu Dữ liệu tiền xử lý Biến đổi liệu Data mining Hình 1: Quá trình khám phá tri thức CSDL 1.2 Khai phá liệu khái niệm liên quan Data mning cơng đoạn q trình khám phá tri thức sở liệu Và Data mining khâu quan trọng trình khám phá tri thức sở liệu Nhiệm vụ Data mining khai thác thông tin, tri thức có tính tiềm ẩn hữu ích tập Cơ sở liệu lớn nhằm cung cấp thông tin cần thiết cho lĩnh vực sản xuất, khinh doanh, nghiên cứu,… Các kết nghiên cứu với ứng dụng thành công việc khai phá tri thức cho thấy Data mining lĩnh vực đầy tiềm bền vững Data mining giả tồn khó làm để trích lọc thơng tin, tri thức hữu ích từ tập Cơ sở liệu lớn khẳng định ưu việt so với cơng cụ phân tích dữu liệu truyền thơng Hiện nay, Data mining ứng dụng ngày rộng dãi nhiều lĩnh vực như: Thương mại, Tài chính, Điều trị y học, Viễn thơng, Tin – Sinh,… Khi đọc đến bạn nhầm lẫn hai khái niệm Data mining khám phá tri thức sở liệu (KDD) Nhưng thực KDD mục tiêu Data mining Và Data mining bước quan trọng mang tính định trình KDD LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát 1.2.1 Khái niệm khai phá liệu Do phát triển mạnh mẽ Data mining phạm vi lĩnh vực ứng dụng thực tế phương pháp tìm kiếm lên có nhiều khài niệm khác Data mining Ở em xin nêu định nghĩa gắn gọn dễ hiểu Data mining sau [1]: Data mining trình tìm kiếm, chắt lọc chi thức mới, tiềm ẩn, hữu dụng tập liệu lớn 1.2.2 Các kỹ thuật tiếp cận khai phá cữ liệu Các kỹ thuật áp dụng Data mining phần lớn kế thừa từ lĩnh vực như: Cơ sở liệu (Database), Học máy (Machine learning), Trí tuệ nhân tạo, Xác suất thống kê,… ta có hai hướng tiếp cận sau đây: Theo quan điểm học máy, kỹ thuật Data mining gồm: • Học có giám sát (Supervised learning): Là q trình gán nhãn lớp cho đối tượng tập liệu dựa đối tượng huấn luyện thơng tin nhãn lớp biết • Học khơng giám sát (Unsupervised learning): Là q trình phân chia tập liệu thành lớp hay cụm (cluster) liệu tương tự mà chưa biết trước thơng tin nhãn lớp • Học nửa giám sát (Semi-Supervised learning): Là trình chia tập liệu thành lớp dựa số thông tin bổ trợ cho trước Theo lớp toán cần giải quyết, kỹ thuật Data mining gồm: • Phân lớp dự đoán (Classification and Prediction): đưa đối tượng vào lớp biết trước Phân lớp dự đốn cịn gọi học có giám sát • Luật kết hợp (Association rules): Là dạng luật biểu diễn tri thức dạng đơn giản Một luật kết hợp mô tả sau: Nếu a b với xác suất p • Phân tích chuỗi theo thời gian: giống khai phá luật kết hợp có thêm tính thứ tự thời gian • Phân cụm (Clustering): Nhóm đối tượng thành cụm liệu Đây phương pháp học không giám sát LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát • Mơ tả khái niệm: Mơ tả, tổng hợp tóm tắt khái niệm, ví dụ tóm tắt văn Chương : PHÂN CỤM DỮ LIỆU VÀ CÁC TIẾP CẬN 2.1 Khái quát phân cụm liệu Phân cụm liệu kỹ thuật phát triển mạnh mẽ nhiều năm trở lại ứng dụng lợi ích to lớn lĩnh vực thực tế Ở mức người ta định nghĩa phân cụm liệu sau [1]: Phân cụm liệu kỹ thuật Data mining nhằm tìm kiếm, phát cụm, mẫu liệu tự nhiên tiềm ẩn quan trọng tập liệu lớn để từ cung cấp thông tin, tri thức cho việc định Do đó, phân cụm liệu q trình phân chia tập liệu ban đầu thành cụm liệu cho đối tượng cụm “tương tự” đối tượng cụm khác “phi tương tự” với Số cụm liệu xác định kinh nghiệm số phương pháp phân cụm Sau xác định đặc tính liệu, người ta tìm cách thích hợp để xác định "khoảng cách" đối tượng, phép đo tương tự liệu Đây hàm để đo giống cặp đối tượng liệu, thông thường hàm để tính độ tương tự (Similar) tính độ phi tương tự (Dissimilar) đối tượng liệu Giá trị hàm tính độ đo tương tự lớn giống đối tượng lớn ngược lại, hàm tính độ phi tương tự tỉ lệ nghịch với hàm tính độ tương tự Trong q trình phân cụm liệu vấn đề trở ngại lớn nhiễu (noise) Nhiễu xuất trình thu thấp thơng tin, liệu thiếu xác khơng đầy đủ Vì cần phải khử nhiễu trình tiến hành phân cụm liệu Các bước toán phân cụm liệu gồm: • Xây dựng hàm tính độ tương tự LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát • Xây dựng tiêu chuẩn phân cụm • Xây dựng mơ hình cho cấu trúc liệu • Xây dựng thuật tốn phân cụm xác lập điều kiện khởi tạo • Xây dựng thủ tục biểu diễn đánh giá kết phân cụm 2.2 Các kiểu liệu độ đo tương tự Sau kiểu liệu, ứng với kiểu liệu có hàm tính độ đo tương tự để xác định khoảng cách phân tử kiểu liệu Tất độ đo xác định không gian metric Bất kỳ metric độ đo ngược lại khơng Độ đo tương tự phi tương tự Một tập liệu X khơng gian metric nếu: • với cặp x,y thuộc X xác định số thực d(x,y) theo quy tắc gọi khoảng cách x,y • Quy tắc phải thoả mãn tính chất sau: a) d(x,y) > x ≠ y b) d(x,y) = x = y c) d(x,y) = d(y,x) d) d(x,y) yi ta nói x cách y khoảng xi-yi ứng với thuộc tính thứ i Độ đo phi tương tự x y tính metric khoảng cách sau n Khoảng cách Minkowski: d ( x, y ) = (∑ xi − yi )1/ q , q ∈ N * q i =1 n Khoảng cách Euclide: d ( x, y ) = (∑ xi − yi )1/ , trường i =1 hợp khoảng cách Minkowski với q = 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Người bảo hiểm: 18-45 tuổi 18-50 tuổi (tùy thuộc độ tuổi chọn nghỉ hưu).Tuổi tối đa đáo hạn hợp đồng: 70 75 tuổi Thời hạn hợp đồng: 10 đến 57 năm 6.3 Cài đặt thuật toán Phân cụm nửa giám sát vời liệu hốn hợp Nếu ta nói Thuật tốn K-Tâm cải tiến thuật toán K-Means áp dụng với kiểu liệu hỡn hợp Và thuật toán Phân cụm liệu nửa giám sát ( Seeded-Kmeans Constrained-Kmeans) cải tiến thuật toán K-Means với việc khởi tạo K cụm ban đầu từ tập giống Thì cách phân cụm liệu áp dụng thuật toán Phân cụm liệu nửa giám sát cho kiểu liệu hỗn hợp có nghĩa ta kết hợp thuật tốn K-Tâm Thuật toán phân cụm liệu nửa giám sát Về tiến hành phân cụm liệu nửa giám sát cho kiểu liệu hỗn hợp không khác so vời việc phân cụm liệu nửa giám sát với kiểu liệu số Chỉ có điểm khác việc tính khoảng cách hai đối tượng ta phải áp dụng phương pháp tình khoảng cách với kiểu liệu hỗn hợp thay kiểu liệu số thơng thường Các cơng thức tính khoảng cách : • Nếu Aj thuộc tính số dj dj(x,y)=⎥x-y⎥ (9) • Nếu Aj thuộc tính thứ tự DOM(Aj) = {a , , a } với a j k j j < a 2j < < a kj , ta lấy hàm đơn điệu fj:DOM(Aj)→ [0,1] cho f j (a1j ) = 0; f j (a kj ) = (Hàm : f j (a ij ) = i −1 ) Khi dj(x,y)= │fj(x)-fj(y) │ k −1 ⎧0 : x = y ⎩ : x ≠ y • Nếu Aj liệu định danh dj(x,y)= ⎨ (10) (11) Vậy khoảng cách d(x,y) hai đối tượng x = (x1, ,xn) y = (y1, ,yn) tính cơng thức: d ( x, y ) = n ∑ρ j =1 j d 2j ( x j , y j ) (12) 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát dj(xj,yj) tính theo cơng thức (9-11) ρj trọng số dương cho chuyên gia Các giá trị trọng số phần thể nửa giám sát, trọng số giúp cho việc xác định thông tin quan trọng vá thông tin quan trọng trọng qua trình phân cụm Giá trị trọng số góp phần quan trọng kết phân cụm thu 6.4 Các hàm thủ tục thực thuật toán 6.4.1 Hàm khởi tạo tâm từ Tập giống Public Sub KhoiTaoTam() Dim i As Integer, j As Integer Dim KhCach As Integer, KhCachMin As Integer For i = To 100 For j = To 100 TongThTGiong(i, j) = Next j DemPT(i) = Next i If DEQLbaohiem.rscmdtam.RecordCount > Then If DEQLbaohiem.rscmdtam.BOF = False Then DEQLbaohiem.rscmdtam.MoveFirst End If While DEQLbaohiem.rscmdtam.EOF = False DEQLbaohiem.rscmdtam.Delete adAffectCurrent DEQLbaohiem.rscmdtam.MoveNext Wend End If If DEQLbaohiem.rscmdTapgiong.RecordCount = Then MsgBox "Ban chua khoi tao tap giong" End End If For i = To K DEQLbaohiem.rscmdTapgiong.MoveFirst While Not DEQLbaohiem.rscmdTapgiong.EOF If DEQLbaohiem.rscmdTapgiong.Fields(0) = i Then For j = To SThT TongThTGiong(i, j) = TongThTGiong(i, j) + DEQLbaohiem.rscmdTapgiong.Fields(j) Next j DemPT(i) = DemPT(i) + End If DEQLbaohiem.rscmdTapgiong.MoveNext Wend 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Next i For i = To K DEQLbaohiem.rscmdtam.AddNew DEQLbaohiem.rscmdtam.Fields(0) = i For j = To SThT DEQLbaohiem.rscmdtam.Fields(j) = Int(TongThTGiong(i, j) / DemPT(i)) Next j DEQLbaohiem.rscmdTapgiong.MoveFirst KhCachMin = 30000 While Not DEQLbaohiem.rscmdTapgiong.EOF If DEQLbaohiem.rscmdTapgiong.Fields(0) = i Then KhCach = KhoangCach(DEQLbaohiem.rscmdTapgiong, DEQLbaohiem.rscmdtam) If KhCachMin > KhCach Then KhCachMin = KhCach For j = To SThT DEQLbaohiem.rscmdtam.Fields(j) = DEQLbaohiem.rscmdTapgiong.Fields(j) Next j End If End If DEQLbaohiem.rscmdTapgiong.MoveNext Wend DEQLbaohiem.rscmdtam.Update Next i End Sub 6.4.2 Các hàm tính khoảng cách ¾ Hàm tính khoản cách với kiểu liệu Số Function KCso(X As ADODB.Recordset, Y As ADODB.Recordset) As Double Dim kc As Double Dim tmp As Double Dim tmp1 As Double kc = tmp = tmp1 = KCso = For i = To SThT If KieuDL(i) = Then tmp = Abs(X.Fields(i) - Y.Fields(i)) tmp1 = tmp * TrongSo(i) kc = kc + tmp + tmp1 End If Next i KCso = Sqr(kc) End Function 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát ¾ Hàm tính khoảng cách với kiểu liệu Phạm trù Function KCphamtru(X As ADODB.Recordset,Y As ADODB.Recordset)As Integer Dim tmp As Integer tmp = KCphamtru = For i = To SThT If KieuDL(i) = Then If X.Fields(i) Y.Fields(i) Then tmp = tmp + End If End If Next i KCphamtru = tmp End Function Function f(j As Integer, GTr As Integer) As Double f=0 f = (GTr - 1) / (SGTr(j) - 1) End Function ¾ Hàm tính khoảng cách với kiểu liệu Thứ tự Function KCthutu(X As ADODB.Recordset, Y As ADODB.Recordset) As Double Dim j As Integer Dim tmp As Double Dim a As Double Dim b As Double KCthutu = For j = To SThT If KieuDL(j) = Then a = f(j, X.Fields(j)) b = f(j, Y.Fields(j)) tmp = a - b KCthutu = KCthutu + TrongSo(j) * (Abs(tmp)) End If Next j End Function 6.4.3 thuật toán Constrained-Kmeans Public Sub ConstrainedKMeans() Dim a As Integer, b As Integer, c As Integer, d As Integer, i As Integer, j As Integer Dim KhCach As Integer, KhCachMin As Integer For a = To 100 For b = To 100 TongThTso(a, b) = Next b 50 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát SoPTcum(a) = Next a Dim KCmin As Double, KCtinh As Double, cum As Integer DEQLbaohiem.rscmdKQ.MoveFirst DEQLbaohiem.rscmdcum.MoveFirst While DEQLbaohiem.rscmdKQ.EOF = False And DEQLbaohiem.rscmdKQ.BOF = False DEQLbaohiem.rscmdTapgiong.MoveFirst While Not DEQLbaohiem.rscmdTapgiong.EOF If DEQLbaohiem.rscmdKQ.Fields(1) = DEQLbaohiem.rscmdTapgiong.Fields(1) Then cum = DEQLbaohiem.rscmdTapgiong.Fields(0) GoTo thuocTG End If DEQLbaohiem.rscmdTapgiong.MoveNext Wend DEQLbaohiem.rscmdtam.MoveFirst KCmin = KhoangCach(DEQLbaohiem.rscmdKQ, DEQLbaohiem.rscmdtam) cum = DEQLbaohiem.rscmdtam.Fields(0) DEQLbaohiem.rscmdtam.MoveNext While DEQLbaohiem.rscmdtam.EOF = False And DEQLbaohiem.rscmdtam.BOF = False KCtinh = KhoangCach(DEQLbaohiem.rscmdKQ, DEQLbaohiem.rscmdtam) If KCmin > KCtinh Then KCmin = KCtinh cum = DEQLbaohiem.rscmdtam.Fields(0) End If DEQLbaohiem.rscmdtam.MoveNext Wend thuocTG: SoPTcum(cum) = SoPTcum(cum) + For j = To SThT TongThTso(cum, j) = TongThTso(cum, j) + DEQLbaohiem.rscmdKQ.Fields(j) Next j DEQLbaohiem.rscmdcum.Fields(0) = cum DEQLbaohiem.rscmdcum.Update DEQLbaohiem.rscmdtam.MoveFirst DEQLbaohiem.rscmdtam.Move cum - For j = To SThT DEQLbaohiem.rscmdtam.Fields(j) = Int(TongThTso(cum, j) / SoPTcum(cum)) Next j ' DEQLbaohiem.rscmdCNtamPC.Open DEQLbaohiem.rscmdCNtamPC.MoveFirst KhCachMin = 30000 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật toán Phân cụm liệu nửa giám sát While Not DEQLbaohiem.rscmdCNtamPC.EOF If DEQLbaohiem.rscmdCNtamPC.Fields(0) = cum Then KhCach = KhoangCach(DEQLbaohiem.rscmdCNtamPC, DEQLbaohiem.rscmdtam) If KhCachMin > KhCach Then KhCachMin = KhCach For j = To SThT DEQLbaohiem.rscmdtam.Fields(j) = DEQLbaohiem.rscmdCNtamPC.Fields(j) Next j End If End If DEQLbaohiem.rscmdCNtamPC.MoveNext Wend DEQLbaohiem.rscmdtam.Update DEQLbaohiem.rscmdCNtamPC.Close ' -DEQLbaohiem.rscmdKQ.MoveNext DEQLbaohiem.rscmdcum.MoveNext Wend End Sub ¾ Hàm kiểm tra hội tun thuật toán Public Sub Re_ConstrainedKMeans() Dim SoBGThayDoi As Integer, j As Integer, SoLanLap As Integer Dim KCmin As Double, KCtinh As Double Dim cum As Integer, cumCu As Integer Dim KhCach As Integer, KhCachMin As Integer SoLanLap = Do SoBGThayDoi = DEQLbaohiem.rscmdcum.MoveFirst DEQLbaohiem.rscmdKQ.MoveFirst While Not DEQLbaohiem.rscmdKQ.EOF DEQLbaohiem.rscmdTapgiong.MoveFirst While Not DEQLbaohiem.rscmdTapgiong.EOF If DEQLbaohiem.rscmdKQ.Fields(1) = DEQLbaohiem.rscmdTapgiong.Fields(1) Then cum = DEQLbaohiem.rscmdTapgiong.Fields(0) GoTo thuocTGRe End If DEQLbaohiem.rscmdTapgiong.MoveNext Wend DEQLbaohiem.rscmdtam.MoveFirst KCmin = KhoangCach(DEQLbaohiem.rscmdKQ, DEQLbaohiem.rscmdtam) cum = DEQLbaohiem.rscmdtam.Fields(0) DEQLbaohiem.rscmdtam.MoveNext 52 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát While DEQLbaohiem.rscmdtam.EOF = False And DEQLbaohiem.rscmdtam.BOF = False KCtinh = KhoangCach(DEQLbaohiem.rscmdKQ, DEQLbaohiem.rscmdtam) If KCmin > KCtinh Then KCmin = KCtinh cum = DEQLbaohiem.rscmdtam.Fields(0) End If DEQLbaohiem.rscmdtam.MoveNext Wend thuocTGRe: If DEQLbaohiem.rscmdKQ.Fields(0) cum Then SoBGThayDoi = cumCu = DEQLbaohiem.rscmdKQ.Fields(0) DEQLbaohiem.rscmdcum.Fields(0) = cum DEQLbaohiem.rscmdcum.Update SoPTcum(cum) = SoPTcum(cum) + SoPTcum(cumCu) = SoPTcum(cumCu) - DEQLbaohiem.rscmdtam.MoveFirst While Not DEQLbaohiem.rscmdtam.EOF If DEQLbaohiem.rscmdtam.Fields(0) = cum Then For j = To SThT TongThTso(cum, j) = TongThTso(cum, j) + DEQLbaohiem.rscmdKQ.Fields(j) If SoPTcum(cum) > Then DEQLbaohiem.rscmdtam.Fields(j) = Int(TongThTso(cum, j) / SoPTcum(cum)) End If Next j ' DEQLbaohiem.rscmdCNtamPC.Open KhCachMin = 30000 DEQLbaohiem.rscmdCNtamPC.MoveFirst While Not DEQLbaohiem.rscmdCNtamPC.EOF If DEQLbaohiem.rscmdCNtamPC.Fields(0) = cum Then KhCach = KhoangCach(DEQLbaohiem.rscmdCNtamPC, DEQLbaohiem.rscmdtam) If KhCachMin > KhCach Then KhCachMin = KhCach For j = To SThT DEQLbaohiem.rscmdtam.Fields(j) = DEQLbaohiem.rscmdCNtamPC.Fields(j) Next j End If End If DEQLbaohiem.rscmdCNtamPC.MoveNext Wend 53 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát DEQLbaohiem.rscmdtam.Update DEQLbaohiem.rscmdCNtamPC.Close ' -Else If DEQLbaohiem.rscmdtam.Fields(0) = cumCu Then For j = To SThT TongThTso(cumCu, j) = TongThTso(cumCu, j) DEQLbaohiem.rscmdKQ.Fields(j) If SoPTcum(cumCu) > Then DEQLbaohiem.rscmdtam.Fields(j) = Int(TongThTso(cumCu, j) / SoPTcum(cumCu)) End If Next j ' DEQLbaohiem.rscmdCNtamPC.Open KhCachMin = 30000 DEQLbaohiem.rscmdCNtamPC.MoveFirst While Not DEQLbaohiem.rscmdCNtamPC.EOF If DEQLbaohiem.rscmdCNtamPC.Fields(0) = cumCu Then KhCach = KhoangCach(DEQLbaohiem.rscmdCNtamPC, DEQLbaohiem.rscmdtam) If KhCachMin > KhCach Then KhCachMin = KhCach For j = To SThT DEQLbaohiem.rscmdtam.Fields(j) = DEQLbaohiem.rscmdCNtamPC.Fields(j) Next j End If End If DEQLbaohiem.rscmdCNtamPC.MoveNext Wend DEQLbaohiem.rscmdtam.Update DEQLbaohiem.rscmdCNtamPC.Close ' -End If End If DEQLbaohiem.rscmdtam.MoveNext Wend End If DEQLbaohiem.rscmdKQ.MoveNext If SoLanLap > 10 Then 'MsgBox "lap lai qua 10 lan", , "Thong bao" GoTo nhan End If Wend 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát SoLanLap = SoLanLap + Loop Until SoBGThayDoi = nhan: End Sub 6.5 Giao diện chương trình Giao diện khởi động Trong chương trình tập chung thể thuaatj toán phân cụm liệu lên em bỏ số phần không quan trọng hệ thống quản lý thông thường (đăng nhập, phân quyền, ) Đây giao diện load chương trình chạy Nó form kiểu Flash Một số giao diện cập nhập Đây giao diện cập nhập thông tin cho hệ thống quản lý Bảo hiểm 55 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát 56 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Giao diện Phân cụm liệu Cập nhập số cụm K Khởi tạo phân cụm, nhập số cụm K mà bạn muốn phân cụm 57 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Cập nhập tập giống Chọn tập giống, chon phần tử làm tập giống bạn phải chon số cụm khởi tạo cho Kết khởi tạo Đây hiểm thi kết khởi tạo dựa vào tập giống bạn chọn 58 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Phân cụm liệu Đây giao diện thực phân cụm chạy trình phân cụm Kết phân cụm Đây kết thu sau thực thuật toán phân cụm 59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật toán Phân cụm liệu nửa giám sát KẾT LUẬN Data mining lĩnh vực nghiên mới, đồng thời xu hướng nghiên cứu ngày phổ biến Do nhu cầu thực tế, với phát triển công nghệ máy tính, lĩnh vực kinh tế - xã lượng thơng tin lưu trữ ngày tăng, nhu cầu khai thác thông tin, tri thức ngày lớn Do việc đọc, nghiên cứu phát triển phương pháp phân cụm liệu đóng vai trò quan trọng hoạt động khoa học cơng nghệ máy tính, hoạt động thực tiễn Trong báo cáo em nêu lên nét đặc trưng lĩnh vực Data Mining bao gồm vấn đề cần khám phá tri thức, hướng tiếp cận nghiên cứu tiêu biểu, phân cụm liệu phương pháp khám phá tri thức quan trọng Data Mining có nhiều ý nghĩa khoa học thực tiễn Trong phân cụm liệu nửa giám sát hướng nghiên cứu nhiều nhà khoa học quan tâm Bài báo cáo nêu cách khái quát data mining phương pháp phân cụm khơng giám sát, từ phân tích chi tiết phân cụm nửa giám sát Trình bày ba thuật tốn điển hình phân cụm nửa giám sát : COP-KMeans, Seeded-KMeans, Constrained-KMeans trình bày thuật tốn KMeans phân cấp đề xuất hai tác giả Việt Nam : Hoàng Xuân Huấn Nguyễn Trung Thơng Tóm lại phân cụm liệu nói chung phân cụm nửa giám sát nói riêng ngày quan tâm nước ta giới Ngày có nhiều thuật tốn tư tưởng phân cụm liệu đời Phân cụm liệu bước chứng minh tầm quan vài trị phát triển cơng nghệ máy tính nói riêng phát triển giới nói chung Trong q trình làm luận văn tốt nghiệp thời gian thực trình độ cịn nhiều hạn chế lên chưa thể tìm hiểu chi tiết Phân cụm nửa giám sát Em mong nhận bảo thầy cô góp ý bạn bè 60 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Tài liệu tham khảo Trong trình đọc tìm hiểu đề tài em tham khảo tài liệu sau: [1] Nguyễn Trung Thông Phương pháp phân cụm nửa giám sát [ ] KS Nguyễn Anh Trung - Trung tâm Công nghệ Thông tin Ứng dụng kỹ thuật khai phá liệu vào lĩnh vực viễn thơng [3] Hồng Hải Xanh – K9 đại học công nghệ - ĐHQGHN (Luận văn thạc sĩ) Một số kỹ thuật phân cụm liệu Data Mining [4] Hoàng Xuân Huấn, Nguyễn Thị Xuân Hương Mở rộng thuật toán phân cụm kmean cho liệu hỗn hợp Một số vấn đề chọn lọc công nghệ thơng tin, Hải phịng 25-27 tháng năm 2005 [5] Basu, S., Banerjee, A., & Mooney, R J (2002) Semi-supervised clustering by seeding In Proceedings of 19th International Conference on Machine Learning (ICML-2002), pp 19–26 [6] Basu, S., Banerjee, A., & Mooney, R J (2003) Active semi-supervision for pairwise constrained clustering Submitted for publication, available at http://www.cs.utexas.edu/˜sugato/ [7] Basu Sugato (2004) Semi-supervised Clustering with Limited Background Knowledge Proceedings of the Ninth AAAI/SIGART Doctoral Consortium, pp 979980, San Jose, CA, July 2004 [8] Blake, C L., & Merz, C J (1998) UCI repository of machine learning databases http://www.ics.uci.edu/˜mlearn/MLRepository.html [9] Cohn, D., Caruana, R., & McCallum, A (2000) Semi-supervised clustering with user feedback Unpublished manuscript Available at http://www2.cs.cmu.edu/˜mccallum/ [10] Kantardzic Mehmed, 2003 DATA MINING:Concepts, Models, Methods & Algorithms Copyright © 2003 by Mehmed Kantardzic pp 79-120 61 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát Chương : PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT Phân cụm nửa giám sát phương pháp sử dụng thông tin bổ trợ để hướng dẫn cho trình phân. .. : add luanvanchat@agmail.com Đồ án tốt nghiệp Đại học hệ quy Thuật tốn Phân cụm liệu nửa giám sát 4.3 Thuật toán K-Means phân cấp Ba thuật toán phân cụm nửa giám sát: Seeded-KMeans, Constrained-Kmeans,... thuật toán K-Tâm Thuật toán phân cụm liệu nửa giám sát Về tiến hành phân cụm liệu nửa giám sát cho kiểu liệu hỗn hợp khơng khác so vời việc phân cụm liệu nửa giám sát với kiểu liệu số Chỉ có điểm