Việc tin học hoá một cách ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnhvực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ.Hàng triệ
Trang 1Mục Lục
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 4
1.1 Tổng quan về khám phá tri thức trong cơ sở dữ liệu 4
1.2 Khái niệm khai phá dữ liệu (Data mining) 6
1.3 Các phương pháp khai phá dữ liệu 6
1.3.1 Các nhiệm vụ của khai phá dữ liệu 6
1.3.2 Phân loại 7
1.4 Ứng dụng của khai phá dữ liệu 8
Chương 2: THUẬT TOÁN KMEAN 9
3.1.3 Thuộc tính, phương thức và sự kiện 17
3.1.4 Mô hình truy cập cơ sở dữ liệu bằng ADO 18
3.1.5 Hệ quản trị Cơ sở dữ liệu ACCESS 19
Trang 2MỞ ĐẦU
Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển khôngngừng của ngành Công nghệ thông tin nói chung và trong các ngành côngnghệ phần cứng, phần mềm, truyền thông và hệ thống các dữ liệu phục vụtrong các lĩnh vực kinh tế - xã hội nói riêng thì việc thu thập thông tin cũngnhư nhu cầu lưu trữ thông tin càng ngày càng lớn Việc tin học hoá một cách
ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnhvực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ.Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinh doanh,quản lí; trong đó, có nhiều CSDL cực lớn cỡ Gigabyte, thậm chí là Terabyte Trong tình hình đó một khuynh hướng kỹ thuật mới ra đời đó là kỹ thuậtkhai phá dữ liệu và kỹ thuật Data mining (Khai phá dữ liệu) Trong đó cácphương pháp khai phá dữ liệu có phương pháp gọi là Clustering (gom cụm)được ứng dụng rất nhiều trong đời sống Gom cụm dữ liệu là quá trình tìmkiếm phát hiện ra các cụm hoặc các mẫu dữ liệu tự nhiên trong cơ sở dữ liệulớn Các kỹ thuật chính được áp dụng trong gom cụm dữ liệu phần lớn được
kế thừa từ lĩnh vực thống kê, học máy, nhân dạng, lượng hóa Đến nay đã cónhiều ứng dụng gom cụm dữ liệu cho việc giải quyết các vấn đề trong lĩnhvực như tài chính, bảo hiểm, thông tin địa lý, sinh học …
Do đó em chọn đề tài “Tìm hiểu thuật toán gom cụm K-Means” với mụcđích vận dụng kiến thức học được để áp dụng vào thực tế trong việc gom cụm
dữ liệu Em xin chân thành cảm ơn thầy giáo PGS.TS Đỗ Phúc và các thầy
cô trong khoa công nghệ thông tin đã tận tình giúp đỡ em hoàn thành bài thuhoạch này
Học viên
Trang 3DANH SÁCH CÁC CỤM TỪ VIẾT TẮT
1 CNTT Information Technology Công nghệ thông tin
3 KDD Knowledge Discovery in
Database
Khám phá tri thức trong cơ sở dữ liệu
5 PCDL Data Clustering Phân cụm dữ liệu
6 MTĐT Electronic Computer Máy tính điện tử
Trang 4Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Tổng quan về khám phá tri thức trong cơ sở dữ liệu
Các yêu cầu về thông tin trong các loại hoạt động như công tác quản lý,hoạt động kinh doanh, phát triển sản xuất và dịch vụ, đặc biệt là trong việc raquyết định giải quyết một vấn đề ngày càng đòi hỏi chất lượng cao hơn.Người làm quyết định không những cần dữ liệu mà còn cần có thêm nhiềuhiểu biết, nhiều tri thức để hỗ trợ cho việc ra quyết định của mình Để giảiquyết vấn đề đó thì kỹ thuật khám phá tri thức trong cơ sở dữ liệu
(Knowledge Discovery in Databases- KDD) đã ra đời Khám phá tri thức
trong cơ sở dữ liệu là lĩnh vực liên quan đến các ngành như: xác suất thống
kê, học máy, trực quan hóa dữ liệu, tính toán song song,… Quá trình KDD cóthể chia thành 5 bước thực hiện như sau:
1 Trích chọn dữ liệu: Xác định mục đích của quy trình khai phá dữ liệu dựa
trên quan điểm của người dùng, thu thập và chuẩn bị dữ liệu để khai phá
2 Tiền xử lý dữ liệu: Nhằm mục đích loại bỏ sự trùng lặp dữ liệu, cắt tỉa
những thông tin có thể gây nhiễu, tập hợp những thông tin cần thiết cho
mô hình hoá, chọn các phương pháp xử lý những thông tin bị khiếmkhuyết
3 Chuyển đổi dữ liệu: Thực hiện thu gọn dữ liệu, phép ánh xạ dữ liệu, tìm
những đặc trưng phù hợp để mô tả và khai phá dữ liệu
4 Khai phá dữ liệu: Chọn nhiệm vụ khai phá dữ liệu như phân lớp, gom
cụm, hồi qui, kết hợp… Từ nhiệm vụ đã chọn, sử dụng các thuật toán vàcác phương pháp đã biết để tìm kiếm các mẫu trong dữ liệu, chọn ra cácmẫu hữu ích
Trang 55 Trình bày và đánh giá: Từ các mẫu khai phá được tiến hành đánh giá hoặc
phiên dịch thành những tri thức hiểu được
Chuyển đổi
Khai phá
DL đã chọn
DL qua tiền xử lý
DL đã chuyển đổi
Các mẫu
Tri thức
Hình 1: Quá trình khám phá tri thức trong CSDL
Trang 61.2 Khái niệm khai phá dữ liệu (Data mining)
Data mining là một công đoạn, cũng là một khâu quan trọng nhất trongquá trình KDD Do sự phát triển mạnh mẽ của Data mining về phạm vi cáclĩnh vực ứng dụng trong thực tế và các phương pháp tìm kiếm nên có rấtnhiều khái niệm khác nhau về Data mining Ở đây em xin nêu ra một địnhnghĩa gắn gọn và dễ hiểu về Data mining như sau:
Data mining là một quá trình tìm kiếm, chắt lọc các tri thức mới, tiềm ẩn, hữu dụng trong tập dữ liệu lớn.
1.3 Các phương pháp khai phá dữ liệu
1.3.1 Các nhiệm vụ của khai phá dữ liệu
Một số nhiệm vụ của khai phá dữ liệu:
Phân lớp và dự đoán: Xếp đối tượng vào một trong các lớp đã biết trước,
dự báo giá trị có thể đúng của những dữ liệu bị thiếu hoặc sự phân bố củathuộc tính nào đó trong dữ liệu Phân lớp còn được gọi là học có giámsát
Luật thuộc tính: Tóm tắt những thuộc tính chung của tập dữ liệu nào đó
trong cơ sở dữ liệu
Luật kết hợp: Là dạng luật biểu diễn tri thức ở dạng tương đối đơn giản.
Giả sử có hai tập thuộc tính {A1, A2,…An} và {B1, B2,…Bm} thì luật kếthợp có dạng (A1 A2…An) (B1 B2…Bm )
Khai thác mẫu tuần tự: Tương tự như khai thác luật kết hợp nhưng có
thêm tính thứ tự và tính thời gian Một luật mô tả mẫu tuần tự có dạngtiêu biểu X → Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc
Trang 7 Phân cụm: Sắp xếp các đối tượng theo từng cụm (số lượng và tên của
cụm chưa được biết trước) Các đối tượng được gom cụm sao cho mức
độ tương tự giữa các đối tượng trong cùng một cụm là lớn nhất và mức
độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là nhỏnhất Phân cụm còn được gọi là học không có giám sát
1.3.2 Phân loại
Data mining được phân loại theo hai quan điểm sau:
a Theo quan điểm của học máy
Học có giám sát: Là quá trình gán nhãn lớp cho các đối tượng trong tập
dữ liệu dựa trên một bộ các đối tượng huấn luyện và các thông tin vềnhãn lớp đã biết
Học không giám sát: Là quá trình phân chia một tập dữ liệu thành các
lớp hay cụm dữ liệu tương tự nhau mà chưa biết trước các thông tin vềnhãn lớp
Học nửa giám sát: Là quá trình chia một tập dữ liệu thành các lớp con
dựa trên một số thông tin bổ trợ cho trước
b Theo các lớp bài toán cần giải quyết
Phân lớp và dự đoán: Đưa mỗi đối tượng vào một trong các lớp đã biết
trước Phân lớp và dự đoán còn được gọi là học có giám sát
Luật kết hợp: Là dạng luật biểu diễn tri thức ở dạng khá đơn giản Một
luật kết hợp được mô tả như sau:
Nếu a thì b với xác suất p
Phân tích chuỗi theo thời gian: Giống như khai phá luật kết hợp nhưng
có thêm tính thứ tự và thời gian
Trang 8 Phân cụm (Clustering): Nhóm các đối tượng thành từng cụm dữ liệu.
Đây là phương pháp học không giám sát
Mô tả khái niệm: Mô tả, tổng hợp và tóm tắt khái niệm Ví dụ như tóm
tắt văn bản
1.4 Ứng dụng của khai phá dữ liệu
Bảo hiểm, tài chính và thị trường chứng khoá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 khoá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
Điều trị y học và chăm sóc y tế: Phân tích mối liên hệ giữa triệu chứng
bệnh, chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc)
Sản xuất và chế biến: Qui trình, phương pháp chế biến và xử lý sự cố.
Text mining & 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
Lĩnh vực viễn thông: Các ứng dụng Data mining được phát triển trong
ngành viễn thông được chia thành 3 nhóm ứng dụng khác nhau là pháthiện gian lận, các ứng dụng hỗ trợ tiếp thị và quản lý khách hàng, cuốicùng là các ứng dụng về phát hiện và xử lý lỗi hệ thống mạng
Lĩnh vực khác: Môi trường, thể thao, âm nhạc,…
Trang 9Chương 2: THUẬT TOÁN KMEAN
K-Means là thuật toán lặp đơn giản để chia Cơ Sở Dữ Liệu thành knhóm (k do người dùng chỉ định ) Được phát triển bời nhiều nhà nghiêm cứukhác nhau, điển hình là Lloyd (1957,1982), Forgrey (1965), Friedman vàRubin (1967), McQueen (1967)
1 Thuật toán:
Thuật toán thao tác trên một tập các vecto d-chiều ,D={xi| i=1…N} trong
đó xi € Rd là điểm dữ liệu thứ I Thuật toán bắt đầu bằng cách chọn k điểmlàm trọng tâm Kỹ thuật để chọn các điểm hạt giống này là chọn “ngẫunhiên” Sau đó thuật toán gọi hai bước sau cho đến khi hội tụ (không còn thayđổi nữa )
o Bước 1: Gán dữ liệu: Mỗi điểm dữ liệu được gán vào nhóm nào gần nhất Đây là việc phân chia dữ liệu
o Bước 2: Tính lại trọng tâm: đại diện của mỗi nhóm được tính lại bằngvới trung bình (mean) của các điểm dữ liệu thuộc nhóm Nếu các điểm
dữ liệu được tính bởi xác suất (probability measure/weights) thì đạidiện được tính bằng giá trị kỳ vọng (expectation) của dữ liệu
Trang 10Ví dụ minh họa
-Vấn đề tối ưu cục bộ
Việc chọn giá trị khởi đầu cho các trọng tâm của K-Means sẽ quyết định đếnviệc hội tụ “cục bộ” hay “toàn cục” của dữ liệu
Trang 112 Khoảng cách giữa các đối tượng
Trang 12o Bước 2:
Xét C : d(C,M1)=√(3-1)2+(1-2)2 =√5 d(C,M2)= √(3-0)2+(1-3)2=√13
C thuộc nhóm 1Xét D: d(D,M1)=√(4-1)2+(2-2)2=√3
d(D,M2)=√(4-0)2+(2-3)2=√17
D thuộc nhóm 1Xét C: d(C,M1)=√(3-1)2+(1-2)2=√5 M1 ≡ A ,M2≡B
d(C,M2)=√(3-0)2+(1-3)2=√13
C thuộc nhóm 1Xét D: d(D,M1)=√(4-1)2+(2-2)2=√3
d(D,M2)=√(4-0)23)2=√17
+(2-=>D thuộc nhóm 1Xét E : d(E,M1)=√(4-1)2+(0-2)2=√13
d(E,M2)=√(4-0)2+(0-3)2=√23
=>E thuộc nhóm 1Vậy :Nhóm 1 gồm {A,C,D,E}
Nhóm 2 gồm {B}
{A(1,2),B(0,3),C(3,1),D(4,2),E(4,0)}
o Bước 3 : Tính lại trọng tâm M1=((1+3+4+4)/4,(2+1+2)/4)=(4,4/5)
M2=(0,3)
Trang 13M2=((0+1)/3,(3+2)/3)=(1/2,5/2)Lặp lại bước 2:
o Xét A: d(A,M1)=√(1-11/3)2+(2-1)2 =√73/9
d(A,M2)=√(1-1/2)2+(2-5/2)2 =√1/2
Trang 14 C thuộc nhóm 1
o Xét D: d(D,M1)=√(4-11/3)2+(2-1)2=√10/9 d(D,M2)=√(4-0)2+(2-3)2=√17
D thuộc nhóm 1
o Xét E: d(E,M1)=√(4-11/3)2+(0-1)2=√10/9 d(E,M2)=√(4-0)2+(0-3)2=√23
E thuộc nhómKhông còn thay đổi nữa -> dừng thuật toán tại đây
4 Đánh giá thuật toán:
o Ưu Điểm
1 Độ phức tạp: O(K,N,1) với l: số lần lặp
2 Có khả năng mở rộng, có thể dễ dàng
sửa đổi với những dữ liệu mới
3 Bảo đảm hội tụ sau 1 số bước lặp hữu
hạn
4 Luôn có K cụm dữ liệu
5 Luôn có ít nhất 1 điểm dữ liệu trong 1 cụm dữ liệu
Trang 156 Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau.
7 Mọi thành viên của 1 cụm là gần với chính cụm đó hơn bất cứ 1 cụm nào khác
3 Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu
4 Không phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1 cụm
5 K-Means không khắc phục được nhiễu
Trang 16Chương 3: XÂY DỰNG ỨNG DỤNG
3.1 Giới thiệu ngôn ngữ Visual Basic 6.0
Ngôn ngữ lập trình Visual Basic 6.0 là một công cụ phát triển phầnmềm Visual Basic gắn liền với khái niệm lập trình trực quan (Visual), đây làthuận lợi lớn so với các ngôn ngữ lập trình khác, Visual Basic cho phép tachỉnh sửa đơn giản, nhanh chóng màu sắc, kích thước, hình dáng của các đốitượng có mặt trong ứng dụng
Một khả năng khác của Visual Basic chính là khả năng kết hợp các thưviện liên kết động DLL (Dynamic Link Library) DLL chính là phần mở rộngcho Visual Basic, tức là khi xây dựng một ứng dụng nào đó có một số yêu cầu
mà Visual Basic chưa đáp ứng đủ, ta viết thêm DLL phụ trợ
Khi viết chương trình bằng Visual Basic, chúng ta phải qua hai bước:
- Thiết kế giao diện (Visual Programming)
- Viết lệnh (Code Programming)
Một đề án bao gồm:
Các form (.frm): Dùng để cập nhật dữ liệu cho cơ sở dữ liệu (nhập, sửa,xoá tìm kiếm, xử lý tính toán dữ liệu)
Các Report (.dsr): Dùng để in ấn các báo cáo
Các Module (.bas): Dùng để chứa các hàm, các thủ tục Khi đó trong tất
cả mọi nơi của chương trình cho phép sử dụng các hàm thủ tục vừa lậptrong Module
Trang 17 Các User control (.ctr): Cho phép tạo ra các điều khiển riêng của người
sử dụng
Data Control: Kết nối với cơ sở dữ liệu tại chỗ bao gồm các thuộc tính
Name, DataName, Connect, Database Name, Read only, Recordset Type,Record Source
Các phương thức (Method): Thêm bản ghi mới, xoá bản ghi, lưu trữ bản
ghi, sửa chữa bản ghi, di chuyển bản ghi, đếm số bản ghi, kiểm tra đầucuối
Điều khiển DBGird: Dùng để hiển thị dữ liệu dưới dạng bảng của CSDL
đã được kết nối bằng điều khiển Data Một số các thuộc tính: Name,Allow AddNew, Allow Arrows, Data Source
Đối tượng: Trong Visual Basic, đối tượng là các thành phần tạo nên giaodiện người sử dụng cho ứng dụng
Lập trình hướng đối tượng: Visual Basic 6.0 hỗ trợ lập trình hướng đốitượng (Object Oriented Programming) Với lập trình hướng đối tượng, lậptrình viên sẽ chia nhỏ các vấn đề cần giải quyết thành các đối tượng Từngđối tượng sẽ có những đặc điểm mà ta gọi là các thuộc tính (properties) vàcác chức năng riêng biệt gọi là phương thức (method)
Thuộc tính: Mỗi đối tượng đều có một bộ thuộc tính mô tả đối tượng.Trong các bộ thuộc tính này có một số thuộc tính thông dụng cho hầu hếtcác điều khiển
Trang 18Command
Parameter
Field RecordSet
Phương thức: Là những đoạn chương trình chứa trong điều khiển, cho điềukhiển biết cách thức để thực hiện một công việc nào đó Mỗi điều khiển cónhững phương thức khác nhau
Sự kiện: Sự kiện là những phản ứng của đối tượng Mỗi điều khiển cónhững bộ sự kiện khác nhau, nhưng một số sự kiện rất thông dụng với hầuhết điều khiển Các sự kiện này xảy ra thường là kết quả của một hànhđộng nào đó như di chuột, nhấn nút bàn phím hoặc gõ vào hộp thoại vănbản
Mô hình này dùng để truy cập và xử lý cơ sở dữ liệu từ xa thông quamạng nhờ kết nối ODBC
ODBC: (Open Database Connectivity – Khả năng tương kết cơ sở mở)
Là một biện pháp độc lập ứng dụng để kết nối nhiều cơ sở dữ liệu miễn
là có một trình điều khiển đúng đắn thì ODBC sẽ cho phép kết nối với cơ sở
dữ liệu nào đó từ xa
Mô hình ADO (Active Data Object)
Trang 19 Điều khiển ADODC (ADO Data Control)
Project Component Control Microsoft ADO DataControl 6.0 (OLEDB)
- Một số các thuộc tính:
Connection String = “DSN = Tên kết nối ODBC”
Command Type (xác định các kiểu câu lệnh): AdCmdTable, adCmdText.Cursor Type (kiểu con trỏ): AdopenDynamic, adopenStatic
Lock Type: AdLockBatch Optimistic, adLock Optimistic
Mode: AdMode Read, adMode ReadWrite, adMode Unknow
RecordSource: Xác định bảng dữ liệu cần truy cập
Đối tượng ADODB
Tham chiếu đến thư viện:
Project References Microsoft Active X Data Object 2.0Library
Khai báo và thiết lập:
Dim cn as ADODB.Connection, rs as ADODB.RecordSet
Set cn = New ADODB.Connection cn.Open “Tên kết nối ODBC”
Set rs = cn.excute(“tên bảng | Nội dung của câu lệnh Select”)
3.1.5 Hệ quản trị Cơ sở dữ liệu ACCESS
Access là một hệ thống quản trị CSDL, nó lưu trữ và tìm kiếm dữ liệu,biểu diễn thông tin và tự động làm nhiều nhiệm vụ khác Với việc sử dụngAccess, chúng ta có thể phát triển ứng dụng một cách nhanh chóng trên môi
Trang 20Access cung cấp tất cả các dữ liệu cần thiết cho trường, bao gồm kiểu văn bản(Text), kiểu số (Number), kiểu tiền tệ (Currency), kiểu ngày/tháng(date/time), kiểu có/không (yes/no),… Việc xử lý quan hệ trong Access đápứng được những đòi hỏi với kiến trúc mềm dẻo của nó Nó có thể sử dụngnhư một quan hệ quản lý CSDL độc lập.
3.2 Xây dựng ứng dụng
3.2.1 Giới thiệu
Trong vài năm gần đây hoạt động kinh doanh bảo hiểm ở Việt Nam đã
có sự phát triển vượt bậc Thị trường bảo hiểm ở nước ta đang được đa dạnghóa, sức ép mở cửa thị trường ngày càng lớn Các doanh nghiệp muốn tồn tại
và phát triển buộc phải mở rộng thị phần, phát triển các sản phẩm bảo hiểm
Kinh doanh bảo hiểm nhân thọ bản thân có tính rủi ro rất cao do các rủi
ro bất ngờ xảy đến với người mua bảo hiểm, ngoài ra còn có các cá nhân cốtình trục lợi từ việc bảo hiểm như khai báo không trung thực hay cố ý tạo racác sự kiện bảo hiểm Việc xác định các tiềm năng từ thông tin khách hàngcung cấp trong hợp đồng bảo hiểm và tính xác thực của các thông tin đó làcông việc rất quan trọng Chỉ những chuyên gia hoặc những người đã có kinhnghiệm mới có thể đánh giá được nhóm các khách hàng tiềm năng Vấn đềđặt ra là cần đưa ra các mẫu để trợ giúp những nhân viên ít kinh nghiệm cóthể xác định mức độ rủi ro cho từng hợp đồng bảo hiểm Các mẫu này bướcđầu phân loại các mức độ rủi ro cho các hợp đồng bảo hiểm Việc xác địnhtính đúng đắn của các mẫu cần có chuyên gia đánh giá lại Tuy nhiên nó cũng
đã làm giảm đi rất nhiều công việc cho các chuyên gia Bên cạnh đó còn giúpcác nhân viên tư vấn khách hàng hướng khách hàng đến những sản phẩm bảohiểm phù hợp với điều kiện của họ Việc đánh giá rủi ro cho các hợp đồng