Nghiên cứu một số thuật toán phân cụm dữ liệu trong datamining

73 597 0
Nghiên cứu một số thuật toán phân cụm dữ liệu trong datamining

Đ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

MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 1.1 Giới thiệu chung khám phá tri thức khai phá liệu .5 1.2 Quá trình khám phá tri thức .6 1.3 Quá trình khai phá liệu 1.4 Các phương pháp khai phá liệu .8 1.5 Các lĩnh vực ứng dụng thực tiễn KPDL .8 1.6 Các hướng tiếp cận kỹ thuật áp dụng KPDL .9 1.7 Các thách thức – khó khăn KPTT KPDL 10 1.8 Kết luận 10 CHƯƠNG PHÂN CỤM DỮ LIỆU VÀ CÁC THUẬT TOÁN TRONG PHÂN CỤM DỮ LIỆU 11 2.1 Khái niệm mục tiêu phân cụm liệu 11 2.2 Các ứng dụng phân cụm liệu 13 2.3 Các yêu cầu phân cụm .13 2.4 Những kỹ thuật tiếp cận phân cụm liệu 15 2.4.1 Phương pháp phân cụm phân hoạch 15 2.4.2 Phương pháp phân cụm phân cấp 17 2.4.3 Phương pháp phân cụm dựa mật độ 19 2.4.4 Phương pháp phân cụm dựa lưới 23 2.4.5 Phương pháp phân cụm dựa mô hình 24 2.4.6 Phương pháp phân cụm có liệu buộc 24 2.5 Một số thuật toán phân cụm liệu 26 2.5.1 Các thuật toán phân cụm phân hoạch 26 2.5.2 Các thuật toán phân cụm phân cấp 28 2.6 Cài đặt số thuật toán phân cụm liệu 33 2.6.1 Thuật toán K-Means 33 2.6.2 Thuật toán Cure .36 2.7 Thử nghiệm với thuật toán Cure K-means 45 2.7.1 Thử nghiệm 1: 45 2.7.2 Thử nghiệm 2: 46 2.7.3 Thử nghiệm 3: 48 CHƯƠNG BÀI TOÁN ỨNG DỤNG 50 3.1 Đặt toán .50 3.2 Giải toán 51 3.3 Cài đặt toán 54 3.3.1 Hàm khởi tạo tâm từ Tập giống .54 3.3.2 Các hàm tính khoảng cách .56 3.3.3 Thuật toán Constrained-Kmeans .57 3.3.4 Thuật toán Seeded-KMeans 62 3.4 Giao diện chương trình 68 3.5 Kết quản đạt 71 KẾT LUẬN 72 TÀI LIỆU THAM KHẢO 73 LỜI NÓI ĐẦU Trong năm 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à: 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 phân chia tập liệu ban đầu thành cụm liệu cho phần tử cụm "tương tự" (Similar) với phần tử cụm khác "phi tương tự" (Dissimilar) với Số cụm liệu phân xác định trước theo kinh nghiệm tự động xác định CHƯƠNG TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 1.1 Giới thiệu chung khám phá tri thức khai phá liệu Nếu ta cho rằng, điện tử truyền thông chất khoa học điện tử, liệu, thông tin, tri thức tiêu điểm lĩnh vực để nghiên cứu ứng dụng, khám phá tri thức khai phá liệu Thông thường, coi liệu chuỗi bits, số ký hiệu “đối tượng” với ý nghĩa gửi cho chương trình dạng định Các bits thường sử dụng để đo thông tin, xem liệu loại bỏ phần tử thừa, lặp lại, rút gọn tới mức tối thiểu để đặc trưng cách cho liệu Tri thức xem thông tin tích hợp, bao gồm kiện mối quan hệ chúng, nhận thức, khám phá, nghiên cứu Nói cách khác, tri thức coi liệu mức độ cao trừu tượng tổng quát Khám phá tri thức hay phát tri thức CSDL quy trình nhận biết mãu mô hình liệu với tính năng: Phân tích, tổng hợp, hợp thức, khả ích hiểu Khai phá liệu bước trình khám phá tri thức, gồm thuật toán khai thác liệu chuyên dùng số quy định hiệu tính toán chấp nhận để tìm mẫu mô hình liệu Nói cách khác, mục tiêu KPDL tìm mẫu mô hình tồn CSDL ẩn khối lượng lớn liệu 1.2 Quá trình khám phá tri thức Hình 1.1: Quá trình KPTT Bao gồm bước sau: Làm liệu (Data Cleaning): Loại bỏ liệu nhiễu liệu không quán Tích hợp liệu (Data Intergation): Dữ liệu nhiều nguồn tổ hợp lại Lựa chọn liệu (Data Selection): Lựa chọn liệu phù hợp với nhiệm vụ phân tích trích rút từ sở liệu Chuyển đổi liệu (Data Transfomation): Dữ liệu chuyển đổi hay hợp dạng thích hợp cho việc khai phá Khai phá liệu (Data Mining): Đây tiến trình cốt yếu phương pháp thông minh áp dụng nhằm trích rút mẫu liệu Đánh giá mẫu (Pattern Evaluation): Dựa độ xác định lợi ích thực sự, độ quan trọng mẫu biểu diễn tri thức Biểu diễn tri thức (Knowled Presentation): Ở giai đoạn kỹ thuật biểu diễn hiển thị sử dụng để đưa tri thức lấy cho người dùng 1.3 Quá trình khai phá liệu KPDL giai đoạn quan trọng trình KPTT Về chất, giai đoạn tìm thông tin mới, thông tin tiềm ẩn có CSDL chủ yếu phục vụ cho mô tả dự đoán Mô tả liệu: tổng kết diễn tả đặc điểm chung nhứng thuộc tính liệu kho liệu mà người hiểu Dự đoán: dựa liệu thời để dự đoán quy luật phát từ mối liên hệ thuộc tính liệu sở chiết xuất mẫu, dự đoán giá trị chưa biết giá trị tương lai biến quan tâm Quá trình KPDL bao gồm bước thể Hình 1.2 sau: Hình 1.2: Quá trình KPDL - Xác định nhiệm vụ: Xác định xác vấn đề cần giải - Xác định liệu liên quan: Dùng để xây dựng giải pháp - Thu thập liệu liên quan: Thu thập liệu liên quan tiền xử lý chúng cho thuật toán KPDL hiểu Đây trình khó khăn, gặp phải nhiều vướng mắc như: liệu phải nhiều (nếu chiết xuất vào tệp), quản lý tập liệu, phải lặp lặp lại nhiều lần toàn trình (nếu mô hình liệu thay đổi), v.v… - Thuật toán khái phá liệu: Lựa chọn thuật toán KPDL thực việc PKDL để tìm mẫu có ý nghĩa, mẫu biểu diễn dạng luật kết hợp, định… tương ứng với ý nghĩa 1.4 Các phương pháp khai phá liệu Với hai mục đích khai phá liệu Mô tả Dự đoán, người ta thường sử dụng phương pháp sau cho khai phá liệu: o Luật kết hợp (Association rules) o Phân lớp (Classfication) o Hồi quy (Regression) o Trực quan hóa (Visualiztion) o Phân cụm (Clustering) o Tổng hợp (Summarization) o Mô hình buộc (Dependency modeling) o Biểu diễn mô hình (Model Evaluation) o Phân tích phát triển độ lệch (Evolution and deviation analyst) o Phương pháp tìm kiếm (Search Method) Có nhiều phương pháp khai phá liệu nghiên cứu trên, có ba phương pháp nhà nghiên cứu sử dụng nhiều là: Luật kết hợp, Phân lớp liệu Phân cụm liệu 1.5 Các lĩnh vực ứng dụng thực tiễn KPDL KPDL lĩnh vực phát triển thu hút nhiều nhà nghiên cứu nhờ vào ứng dụng thực tiễn Sau số lĩnh vực ứng dụng thực tế điển hình KPDL: - Phân tích liệu hỗ trợ định - Phân lớp văn bản, tóm tắt văn bản, phân lớp trang Web phân cụm ảnh màu - Chuẩn đoán triệu chứng, phương pháp điều trị y học - Tìm kiếm, đối sách hệ Gene thông tin di truyền sinh học - Phân tích tình hình tài chính, thị trường, dự báo giá cổ phiếu tài chính, thị trường chứng khoán - Phân tích liệu marketing, khách hàng - Điều khiển lập lịch trình - Bảo hiểm - Giáo dục… 1.6 Các hướng tiếp cận kỹ thuật áp dụng KPDL Vấn đề khai phá liệu chia theo lớp hướng tiếp cận sau: - Phân lớp dự đoán (Classification & prediction): Là trình xết đối tượng vào lớp biết trước (ví dụ: phân lớp bệnh nhân theo liệu hồ sơ bệnh án, phân lớp vùng địa lý theo liệu thời tiết…) Đối với hướng tiếp cận thường sử dụng số kỹ thuật học máy định (decision tree), mạng nơron nhân tạo (neural network),… Hay lớp toán gọi học có giám sát (Supervused learning) - Phân cụm (Clustering/Segmentation): Sắp xếp đối tượng theo cụm liệu tự nhiên, tức số lượng tên cụm chưa biết trước Các đối tượng gom cụm cho mức độ tương tự đối tượng cụm lớn mức độ tương tự đối tượng nằm cụm khác nhỏ Lớp toán gọi học không giám sát (Unsupervised learning) - 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 (ví dụ: 80% sinh viên đăng ký học CSDL có tới 60% số họ đăng ký học Phân tích thiết kế hệ thống thông tin) Hướng tiếp cận ứng dụng nhiều lĩnh vực kinh doanh, y học, tin sinh học, giáo dục, viễn thông, tài chính… - Phân tích chuỗi theo thời gian (Sequential/ temporal patterns): Cũng tương tự KPDL luật kết hợp có thêm tính thứ tự tính thời gian Một luật mô tả mẫu có dạng tiêu biểu X -> Y, phản ánh xuất biến cố X dẫn đến việc xuất biến cố Y Hướng tiếp cận ứng dụng nhiều lĩnh vực tài thị trường chứng khoán chúng có tính dự báo cao - Mô tả khái niệm (Concept desccription & Summarization): Lớp toán thiên mô tả, tổng hợp tóm tắt khái niệm 1.7 Các thách thức – khó khăn KPTT KPDL KPTT KPDL liên quan đến nhiều ngành, nhiều lĩnh vực thực tế, thách thức khó khăn ngày nhiều, lớn Sau số thách thức khó khăn cần ý: + Các sở liệu lớn, tập liệu cần sử lý có kích thước cực lớn Trong thực tế, kích thước tập liệu thường mức tera-byte + Mức độ nhiễu cao liệu bị thiếu + Thay đổi liệu tri thức làm cho mẫu phát không phù hợp + Quan hệ trường phức tạp 1.8 Kết luận KPDL lĩnh vực trở thành hướng nghiên cứu thu hút quan tâm nhiều chuyên gia CNTT giới Trong năm gần đây, nhiều phương pháp thuật toán liên tục công bố Điều chứng tỏ ưu thế, lợi ích khả ứng dụng thực tế to lớn KPDL Trong chương trình bày số kiến thức tổng quan KPTT, khái niệm kiến thức KPDL 10 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 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 59 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 DEQLbaohiem.rscmdtam.Update DEQLbaohiem.rscmdCNtamPC.Close ' -Else If DEQLbaohiem.rscmdtam.Fields(0) = cumCu Then For j = To SThT 60 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 SoLanLap = SoLanLap + Loop Until SoBGThayDoi = nhan: End Sub 61 3.3.4 Thuật toán Seeded-KMeans Public Sub SeededKMeans() 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 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.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 62 Wend 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 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 63 DEQLbaohiem.rscmdCNtamPC.MoveNext Wend DEQLbaohiem.rscmdtam.Update DEQLbaohiem.rscmdCNtamPC.Close ' -DEQLbaohiem.rscmdKQ.MoveNext DEQLbaohiem.rscmdcum.MoveNext Wend End Sub Public Sub Re_SeededKMeans() 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.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 64 KCmin = KCtinh cum = DEQLbaohiem.rscmdtam.Fields(0) End If DEQLbaohiem.rscmdtam.MoveNext Wend 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 65 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 ' -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 66 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 SoLanLap = SoLanLap + Loop Until SoBGThayDoi = 67 nhan: End Sub 3.4 Giao diện chương trình * Giao diện khởi động Chương trình em tập chung vào thuật toán phân cụm liệu lên em bỏ qua số phần không quan trọng đăng nhập, phân quyền… Trên giao diện chạy khởi động chương trình 68 * Giao diện phân cụm liệu - Cập nhật số cụm K - Cập nhật tập giống 69 - Kết khởi tạo - Phân cụm liệu 70 3.5 Kết quản đạt Chương trình quản lý bảo hiểm Prudential đưa K nhóm khách hàng có giống lớn từ giúp cho chuyên đưa đánh giá mẫu khách hàng với mức độ rủi ro khác 71 KẾT LUẬN Data mining lĩnh vực nghiên cứu 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ã hôi 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 Trình bày số thuật toán Kmeans, thuật toán Cure, thuật toán Seede-Kmeans Constrained-Kmeans Tóm lại khai phá liệu nói chung phân cụm liệu nói riêng ngày quan tâm nước ta giới Ngày có nhiều thuật toá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 trình làm luận văn tốt nghiệp thời gian thực trình độ nhiều hạn chế lên chưa thể tìm hiểu chi tiết Phân cụm liệu Em mong nhận bảo thầy cô góp ý bạn bè Em xin chân thành cảm ơn! 72 TÀI LIỆU THAM KHẢO [1] Chuyên đề Khai phá liệu Nhà kho liệu (2004) – TS Đỗ Phúc - Đại học Quốc Gia Thành Phố Hồ Chí Minh [2] Data Mining: Concepts, Models, Methods, and Algorithms by Mehmed Kantardzic John Wiley & Sons 2003 [3] Basu, S., Banerjee, A., & Mooney, R J (2002) Semi-supervised clustering by seeding In Proceedings of 19 th International Conference on Machine Learning (ICML-2002), pp 19–26 [4] 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/ [5] Basu Sugato (2004) Semi-supervised Clustering with Limited Background Knowledge Proceedings of the Ninth AAAI/SIGART Doctoral Consortium, pp 979-980, San Jose, CA, July 2004 [6] Blake, C L., & Merz, C J (1998) UCI repository of machine learning databases http://www.ics.uci.edu/˜mlearn/MLRepository.html [7] Cohn, D., Caruana, R., & McCallum, A (2000) Semi-supervised clustering with user feedback Unpublished manuscript Available at http://www2.cs.cmu.edu/˜mccallum/ [8] Kantardzic Mehmed, 2003 DATA MINING:Concepts, Models, Methods & Algorithms Copyright © 2003 by Mehmed Kantardzic pp 79-120 [9] "Data Mining: Concepts and Techniques, 2nd ed." cua J Han and M Kamberhttp://www.cs.uiuc.edu/homes/hanj/bk2/ [10] "Introduction to Data Mining" cua P.-N Tan and M Steinbach and V Kumar http://www-users.cs.umn.edu/~kumar/dmbook/index.php 73 [...]... dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chưa biết hoặc dữ liệu sai Một số thuật toán phân cụm nhạy cảm với dữ liệu như vậy và có thể dẫn đến chất lượng phân cụm thấp  Ít nhạy cảm với thứ tự của các dữ liệu vào: Một số thuật toán phân cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ như với cùng một tập dữ liệu, khi được đưa ra với các thứ tự khác nhau thì với cùng một thuật toán có thể sinh ra các cụm. ..CHƯƠNG 2 PHÂN CỤM DỮ LIỆU VÀ CÁC THUẬT TOÁN TRONG PHÂN CỤM DỮ LIỆU 2.1 Khái niệm và mục tiêu của phân cụm dữ liệu Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học... phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể choi phân cụm dữ liệu làm một cách học bằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ… Ngoài ra phân cụm dữ liệu còn có thể được sử dụng một bước tiền xử lý cho các thuật toán khai phá dữ liệu khác như là phân loại và mô tả đặc điểm, có tác dụng trong việc phát hiện ra các cụm. .. ứng một thuật toán phân cụm phù hợp Vì vậy phân cụm dữ liệu vẫn đang là một vấn đề mở và khó, vì phải giải quyết nhiều vấn đề cơ bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau, đặc biệt là đối với dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị dữ liệu và đây cũng là một trong những thách thức lớn trong lĩnh vực KPDL 12 2.2 Các ứng dụng của phân cụm dữ liệu Phân cụm dữ liệu. .. ảnh, nghiên 11 cứu thị trường… Với tư cách là một chức năng khai phá dữ liệu, phân tích phân cụm có thể được sử dụng như một công cụ độc lập chuẩn để quan sát đặc trưng của mỗi cụm thu được bên trong sự phân bố của dữ liệu và tập trung vào một tập riêng biệt của các cụm để giúp cho việc phân tích có kết quả Một vấn đề thường gặp trong phân cụm là hầu hết các dữ liệu cần cho phân cụm đều có chứa dữ liệu. .. các thuật toán mà ít nhạy cảm với thứ tự vào của dữ liệu  Số chiều lớn: Một CSDL hoặc một kho dữ liệu có thể chứa một số chiều hoặc một số các thuộc tính Nhiều thuật toán phân cụm áp dụng tốt cho dữ liệu với số chiều thấp, bao gồm chỉ từ hai đến 3 chiều Người ta đánh gia việc phân cụm là có chất lượng tốt nếu nó áp dụng được cho dữ liệu có từ 3 chiều trở lên Nó là sự thách thức với các đối tượng dữ liệu. .. Data Mining trong giai đoạn hiện nay Phần nội dung tiếp theo của luận văn sẽ trình bày tóm lược về các yêu cầu cơ bản làm tiêu chí cho việc lựa chọn, đánh giá kết quả cho các phương pháp phân cụm PCDL 25 2.5 Một số thuật toán cơ bản trong phân cụm dữ liệu 2.5.1 Các thuật toán phân cụm phân hoạch * Thuật toán K-means Thuật toán này dựa trên độ đo khoảng cách của các đối tượng dữ liệu trong cụm Trong thực... Phân cụm mờ : Sử dụng kỹ thuật mờ để PCDL, trong đó một đối tượng dữ liệu có thể thuộc vào nhiều cụm dữ liệu khác nhau Các thuật toán thuộc loại này chỉ ra lược đồ phân cụm thích hợp với tất cả hoạt động đời sống hàng ngày, chúng chỉ xử lý các dữ liệu thực không chắc chắn Thuật toán phân cụm mờ quan trọng nhất là thuật toán FCM (Fuzzy c-means) Phân cụm mạng Kohonen : loại phân cụm này dựa trên khái niệm... quả hơn K-Means trong trường hợp dữ liệu có nhiễu hoặc đối tượng ngoại lai (Outlier) Nhưng so với K-Means thì K-Medoids có độ phức tạp tính toán lớn hơn Cả hai thuật toán trên đề có nhược điểm chung là số lượng cụm K được cung cấp bởi người dùng 2.5.2 Các thuật toán phân cụm phân cấp Trong phân cụm phân cấp, tập dữ liệu được tổ chức thành một cây mà mỗi đỉnh của nó là một cụm Phân cụm phân cấp được... tham số ngưỡng T ảnh hưởng lớn đến kích thước và tính tự nhiên của cụm 2.6 Cài đặt một số thuật toán trong phân cụm dữ liệu 2.6.1 Thuật toán K-Means K-Means lặp lại nhiều lần quá trình bố trí lại vị trí của đối tượng dữ liệu để phân hoạch một tập dữ liệu thành K cụm và cực tiểu địa phương giá trị bình phương trung bình khoảng cách giữa các các đối tượng tới tâm cụm của nó Cụ N thể hơn, với tập dữ liệu

Ngày đăng: 11/08/2016, 16:45

Từ khóa liên quan

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

Tài liệu liên quan