Tải bản đầy đủ (.doc) (31 trang)

Tìm hiểu thuật toán gom cụm K-Means

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 31 trang )

Mục Lục
Mục Lục 1
MỞ ĐẦU 2
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
1.2. Khái niệm khai phá dữ liệu (Data mining)
1.3. Các phương pháp khai phá dữ liệu
Chương 2: THUẬT TOÁN KMEAN 9
1.Thuật toán:
2.Khoảng cách giữa các đối tượng
3.Ví dụ minh họa:
4. Đánh giá thuật toán:
Chương 3: XÂY DỰNG ỨNG DỤNG 16
3.1.1. Cấu trúc một đề án (Project)
3.1.2. Một số điều khiển
3.1.3. Thuộc tính, phương thức và sự kiện
3.1.4. Mô hình truy cập cơ sở dữ liệu bằng ADO
3.1.5. Hệ quản trị Cơ sở dữ liệu ACCESS
3.2.2. Bài toán
3.2.3. Cài đặt thuật toán gom cụm nửa giám sát với dữ liệu hỗn hợp
KẾT LUẬN 30
Trang 1
MỞ ĐẦU
Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không
ngừng của ngành Công nghệ thông tin nói chung và trong các ngành công
nghệ 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ũng
như 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ĩnh
vự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ật
khai phá dữ liệu và kỹ thuật Data mining (Khai phá dữ liệu). Trong đó các
phươ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ìm
kiế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ệu
lớ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ĩnh
vự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 thu
hoạch này.
Học viên
Lê Xuân Tùng
Trang 2
DANH SÁCH CÁC CỤM TỪ VIẾT TẮT
STT Viết tắt Cụm từ tiếng Anh Cụm từ tiếng Việt
1 CNTT Information Technology Công nghệ thông tin
2 CSDL Database Cơ sở dữ liệu
3 KDD Knowledge Discovery in
Database
Khám phá tri thức
trong cơ sở dữ liệu
4 KPDL Data mining Khai phá 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 3

Chươ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 ra
quyế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ều
hiểu biết, nhiều tri thức để hỗ trợ cho việc ra quyết định của mình. Để giải
quyế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ếm
khuyế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ác
mẫu hữu ích.
Trang 4
5. 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.
Trang 5
Trích

chọn DL
Tiền xử lý
dữ liệu
Trình bày,
đánh giá
Chuyển
đổi
Khai phá
DL đã
chọn
DL qua
tiền xử

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
1.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 trong
quá trình KDD. Do sự phát triển mạnh mẽ của Data mining về phạm vi các
lĩ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ất
nhiều khái niệm khác nhau về Data mining. Ở đây em xin nêu ra một định
nghĩ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ủa
thuộc tính nào đó trong dữ liệu. Phân lớp còn được gọi là học có giám
sá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 {A
1
, A
2
,…A
n
} và {B
1
, B
2
,…B
m
} thì luật kết
hợp có dạng (A
1
∧ A
2
∧…∧A
n
)  (B
1

∧ B
2
∧…∧B
m
)
• 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ạng
tiê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
xuất hiện kế tiếp biến cố Y. Hướng tiếp cận này có tính dự báo cáo.
Trang 6
• 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 7
• 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át
hiện gian lận, các ứng dụng hỗ trợ tiếp thị và quản lý khách hàng, cuối
cù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 8
Chươ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 k
nhóm (k do người dùng chỉ định ). Được phát triển bời nhiều nhà nghiêm cứu

khá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={x
i
| i=1…N} trong
đó x
i
€ R
d
là điểm dữ liệu thứ I. Thuật toán bắt đầu bằng cách chọn k điểm
làm trọng tâm. Kỹ thuật để chọn các điểm hạt giống này là chọn “ngẫu
nhiê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ằng
vớ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ì đại
diện được tính bằng giá trị kỳ vọng (expectation) của dữ liệu.
Trang 9
Ví 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 đến
việc hội tụ “cục bộ” hay “toàn cục” của dữ liệu
Trang 10
2. Khoảng cách giữa các đối tượng
o Khoảng cách Minkowski
d(i,j)=
Trong đó i=(x

i1
,x
i2
,……,x
ip
) và j=( x
j1
,x
j2
,……,x
jp
) là hai đối
tượng dữ liệu p-chiều và q là số nguyên dương.
o Nếu q=1 ,d là khoảng cách Manhattan
d(i,j)= | x
i1
-x
j1
| +| x
i2
-x
j2
| + ….+ | x
ip
-x
jp
|
o Nếu q=2 ,d là khoảng cách Euclidean
d(i,j)=
o Các tính chất của khoảng cách Euclidean

 d(i,j)>=0
 d(i,j)=0
 d(i,j)= d(j,i)
 d(i,j)<= d(i,k) + d(k,j)
3.Ví dụ minh họa:
Với k=2 và n=5 {A(1,2)
,B(0,3),C(3,1),D(4,2),E(4,0)}.Gọi M1 ,M2 là
trọng tâm của hai nhóm ,ta có kết quả sau
o Bước 1:Gán M1=A ;M2=B
o Bước 2:
Trang 11
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 1
Xé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 1
Xé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 1
Xé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 1
Xé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 1
Vậ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)
o Lặp lại Bước 2:
Trang 12
o Xét A: d(A,M1)=√(1-4)
2
+(2-5/4)
2
=√153/16
d(A,M2)=√(1-0)
2
+(2-3)
2
=√2
 A thuộc nhóm 2
o Xét B: B là M2 => B thuộc nhóm 2
{A(1,2),B(0,3),C(3,1),D(4,2),E(4,0)}
o Xét C: d(C,M1)=√(3-4)
2
+(1-

5/4)
2=
√17/16
d(C,M2)=√(3-0)
2
+(1-3)
2=
√13
 C thuộc nhóm 1
o Xét D: d(D,M1)=√(4-4)
2
+(2-5/4)
2=
3/4
d(D,M2)=√(4-0)
2
+(2-3)
2=
√17
 D thuộc nhóm 1
o Xét E: d(E,M1)=√(4-4)
2
+(0-5/4)
2=
5/4
d(E,M2)=√(4-0)
2
+(0-3)
2=
√23

 E thuộc nhóm 1
Bước 3: Tính lại trọng tâm M1=((3+4+4)/3,(1+2)/3)=(11/3,1)
M2=((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
 A thuộc nhóm 2
o Xét B: d(B,M1)=√(0-11/3)
2
+(3-1)
2
=√133/9
Trang 13
d(B,M2)=√(0-1/2)
2
+(3-5/2)
2
=√1/2
 B thuộc nhóm 2
o Xét C: d(C,M1)=√(3-11/3)
2
+(1-1)

2=
2/3
d(C,M2)=√(3-0)
2
+(1-3)
2=
√13
 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óm

Khô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.
6. Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau.
Trang 14
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.
Nhược điểm:
1. K-Means không có khả năng tìm ra các cụm không lồi hoặc các cụm có
hình dạng phức tạp.
2. Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải qua
nhiều lần thử để tìm ra được số lượng cụm tối ưu.
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 15
Chươ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ần
mề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 ta
chỉ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 đối

tượ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ộng
cho 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).
3.1.1. Cấu trúc một đề án (Project)
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ập
trong Module.
• Các Class Modull (.cls): Tạo ra các lớp.
Trang 16
• 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.
3.1.2. Một số điều khiển
• 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 đầu
cuố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.

3.1.3. Thuộc tính, phương thức và sự kiện
• Đối tượng: Trong Visual Basic, đối tượng là các thành phần tạo nên giao
diệ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 đối
tượng (Object Oriented Programming). Với lập trình hướng đối tượng, lập
trì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ết
các điều khiển.
Trang 17
Connection
Command
Parameter
Field
RecordSet
Error
• Phương thức: Là những đoạn chương trình chứa trong điều khiển, cho điều
khiể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ầu
hế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ăn
bản.
3.1.4. Mô hình truy cập cơ sở dữ liệu bằng ADO
Mô hình này dùng để truy cập và xử lý cơ sở dữ liệu từ xa thông qua
mạ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 18
• Điều khiển ADODC (ADO Data Control)
Project Component Control Microsoft ADO Data
Control 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.0
Library
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ụng
Access, chúng ta có thể phát triển ứng dụng một cách nhanh chóng trên môi
trường Windows của Microsoft.
Trang 19
Access 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ụng
như 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ạng
hó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 ra
cá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àng
cung 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ó kinh
nghiệ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 định
tí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úp
cá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ảo
hiể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
Trang 20
mua bảo hiểm còn góp phần quan trọng trong việc công ty có chấp nhận cho
khách hàng đó mua bảo hiểm mà họ đã yêu cầu không.
Rủi ro của hợp đồng bảo hiểm là những biến cố xảy ra bất thường với
hậu quả thiệt hại hoặc mang lại kết quả không như dự tính trong thời gian
khách hàng mua bảo hiểm. Khi xảy ra rủi ro, công ty bảo hiểm sẽ xác định

mức chi trả cho khách hàng theo những quy định và nội dung của hợp đồng.
Rủi ro của hợp đồng bảo hiểm có nhiều mức, để xác định mức độ rủi ro của
các hợp đồng bảo hiểm phải dựa trên nhiều thông tin: Độ tuổi thu nhập, nghề
nghiệp, tình trạng sức khỏe, và cả những thông tin về người thân của người
tham gia bảo hiểm như có bệnh gì không, những thông tin này cũng rất quan
trọng vì có một số bệnh nghiêm có tính di truyền và khả năng mắc bệnh của
người tham gia bảo hiểm là có thể xảy ra.
3.2.2. Bài toán
Input:
Tập n các hồ sơ mua bảo hiểm, gồm các thông tin về khách hàng mua
và được bảo hiểm và các thông tin về việc mua bảo hiểm của khách hàng. Các
thông tin này được coi là một tập dữ liệu hỗn hợp có các thuộc tính số thuộc
tính thứ tự, và thuộc tính định danh. K mức độ rủi ro từ các thông tin khách
hàng cung cấp theo ý kiến của các chuyên gia có kinh nghiệm.
Output:
Đưa ra k nhóm khách hàng có sự giống nhau là lớn nhất và dựa theo sự
đánh giá của các chuyên gia để có thể đưa ra các mẫu khách hàng với các
mức độ rủi ro tương ứng.
Trang 21
Tất cả những thông tin khách hàng cung cấp đều quan trọng nhưng
trong đó có những thông tin quan trọng hơn. Mỗi thông tin khách hàng cung
cấp ta gán cho chúng một trọng số theo kinh nghiệm của các chuyên gia.
Bảng sau gồm các thuộc tính dùng để đánh giá các mức độ rủi ro:
Số
TT
Tên thuộc tính Kiểu thuộc
tính
Các giá trị có thể
1 Tuổi của người được bảo hiểm Số
1÷60

2 Nghề nghiệp người được bảo hiểm Định danh
3 Loại nghề nghiệp của người được
bảo hiểm
Thứ tự 1: An toàn
2:Bình thường
3: Hơi nguy hiểm
4: Nguy hiểm
4 Thu nhập của người được bảo hiểm Số
5 Quan hệ với người được bảo hiểm Định danh
6 Bệnh của người được bảo hiểm Định danh
7 Tuổi của người mua bảo hiểm Số
1÷60
8 Nghề nghiệp người mua bảo hiểm Định danh
9 Loại nghề nghiệp của người mua
bảo hiểm
Thứ tự 1: An toàn
2:Bình thường
3: Hơi nguy hiểm
4: Nguy hiểm
10 Thu nhập gia đình người mua BH Số
11 Bệnh của người mua bảo hiểm Định danh
Trang 22
12 Tên bảo hiểm đăng kí mua Định danh
13 Số tiền mua bảo hiểm Số
14 Số năm mua bảo hiểm Số
5÷60 (tùy từng bảo
hiểm)
Vì thuộc tính bệnh của khách thì có rất nhiều bệnh khác nhau, do đó
trong chương trình ứng dụng để đơn giản em chuyển thuộc tính bệnh thành
các cấp độ tình trạng của sức khỏe từ 1 đến 10 theo cấp độ nguy hiểm tăng

dần 1: Hoàn toàn khỏe mạnh và tăng dần đến 10 là các bệnh nghiêm trọng
ung thư, tiểu đường, bệnh về tim mạch. Với cấp độ 10 khách hàng sẽ khó có
cơ hội mua bảo hiểm hoặc được mua nhưng với phí sẽ rất cao. Do đó, thuộc
tính bệnh sẽ được coi như thuộc tính có thứ tự trong chương trình ứng dụng.
Tương tự như vậy với thuộc tính nghề nghiệp, em xin bỏ thuộc tính
nghề nghiệp, thay vào đó sẽ xét theo mức độ nguy hiểm của nghề nghiệp theo
thuộc tính loại nghề nghiệp.
• Thông tin các loại bảo hiểm
Công ty Prudential có các loại bảo hiểm chính sau: Phú_Thành tài, Phú
_Khởi nghiệp, Phú_Tích lũy gia tăng, Phú_An khang thịnh kỳ, Phú_An khang
tích lũy thịnh kỳ, Phú_An khang hưu trí, Phú_An khang hưu trí toàn diện,
Phú_An khang trọn đời, Phú_Trường an, Phú_Hoà nhân an, Phú_Thành gia.
Khi khách hàng mua các sản phẩm bảo hiểm chính còn có thể mua kèm các
sản phẩm bảo hiểm bổ sung:
Phú_Thành tài:
Trẻ em (người được bảo hiểm): 0 - 12 tuổi. Tuổi tối đa khi đáo hạn hợp
đồng: Trẻ em (người được bảo hiểm): 24 tuổi.
Trang 23
Phú_Khởi nghiệp:
Người được bảo hiểm: từ 0-17 tuổi.Tuổi khi đáo hạn hợp đồng: 28 tuổi.
Thời hạn hợp đồng: 11-28 năm.
Phú_Tích lũy gia tăng:
Người được bảo hiểm: 0 - 63 tuổi. Tuổi tối đa khi đáo hạn hợp đồng: 75
tuổi. Thời hạn hợp đồng: 12, 15 hoặc 18 năm.
Phú_Trường an:
Độ tuổi khi tham gia bảo hiểm: 0 - 55. Tuổi khi đáo hạn hợp đồng: 99.
Thời hạn hợp đồng: 44 đến 99 năm.
Phú_Hòa nhân an:
Độ tuổi khi tham gia bảo hiểm: từ 15 - 60 tuổi.Tuổi tối đa khi đáo hạn
hợp đồng: 65 tuổi. Thời hạn hợp đồng: 5 năm hoặc 8 năm.

Phú_Thành gia:
Người được bảo hiểm: 15 - 50 tuổi. Tuổi tối đa khi đáo hạn hợp đồng:
65 tuổi. Thời hạn hợp đồng: 15 năm.
Phú_An khang thịnh kỳ:
Người được bảo hiểm: 0 - 60 hoặc 61 - 65 tuổi. Tuổi tối đa khi đáo hạn
hợp đồng: 75 tuổi. Thời hạn hợp đồng: 10 đến 30 năm.
Phú_An khang tích lũy gia tăng:
Người được bảo hiểm: 0-65 tuổi.Tuổi tối đa khi đáo hạn hợp đồng: 75
tuổi. Thời hạn hợp đồng: 7 đến 30 năm.
Phú_An khang hưu trí:
Người được bảo hiểm: 20 - 55 tuổi. Tuổi tối đa khi đáo hạn hợp đồng:
74 tuổi. Thời hạn hợp đồng: 19 đến 39 năm.
Trang 24
Phú_An khang hưu trí toàn diện:
Người được bảo hiểm: 20-50 tuổi. Tuổi tối đa khi đáo hạn hợp đồng: 69
tuổi. Thời hạn hợp đồng: 19 đến 39 năm.
Phú_An khang trọn đời:
Người được bảo hiểm: 18-45 tuổi hoặc 18-50 tuổi (tùy thuộc độ tuổi
chọn nghỉ hưu). Tuổi tối đa khi đáo hạn hợp đồng: 70 hoặc 75 tuổi.
Thời hạn hợp đồng: 10 đến 57 năm.
3.2.3. Cài đặt thuật toán gom cụm nửa giám sát với dữ liệu hỗn
hợp
Nếu nói Thuật toán K-Tâm là cải tiến của thuật toán K-Means áp dụng
với kiểu dữ liệu hỗn hợp và thuật toán phân cụm dữ liệu nửa giám sát Seeded-
Kmeans và Constrained-Kmeans là cải tiến của 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ì bằng cách phân cụm dữ liệu áp
dụng thuật toán phân cụm dữ liệu nửa giám sát cho kiểu dữ liệu hỗn hợp có
nghĩa là ta đã kết hợp thuật toán K-Tâm và thuật toán phân cụm dữ liệu nửa
giám sát.
Về cơ bản khi tiến hành phân cụm dữ liệu nửa giám sát cho kiểu dữ

liệu hỗn hợp không khác gì mấy so với việc phân cụm dữ liệu nửa giám sát
với kiểu dữ liệu số. Chỉ có một điểm khác nhau cơ bản ở đây là việc tính
khoảng cách giữa hai đối tượng ta phải áp dụng phương pháp tính khoảng
cách với kiểu dữ liệu hỗn hợp thay vì kiểu dữ liệu số thông thường. Các công
thức tính khoảng cách:
• Nếu A
j
là thuộc tính số thì d
j
được d
j
(x, y)= x-y (1)
Trang 25

×