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

Thuật toán Phân cụm dữ liệu nửa giám sát

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 (934.22 KB, 26 trang )

Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sâu sắc đến cô giáo ThS.Nguyễn Thị Xuân
Hương , người đã tận tình hướng dẫn và tạo mọi điều kiện cho em trong quá trình làm tốt
nghiệp.
Em xin chân thành cảm ơn các thầy cô giáo trong khoa Công Nghệ Thông Tin
Trường Đại Học Dân Lập Hải Phòng đã quan tâm dạy dỗ và giúp đỡ em trong suốt bốn
năm học vừa qua và trong quá trình làm tốt nghiệp.
Em xin trân trọng cảm ơn thầy Trần Hữu Nghị - Hiệu trưởng trường Đại Học
Dân Lập Hải Phòng đã ủng hộ, động viên, và tạo mọi điều kiện tốt nhất để em có thể
hoàn thành khoá học tại trường.
Cuối cùng em xin gửi lời cảm ơn tới tất cả người thân cùng bạn bè đã động viên,
giúp đỡ và đóng góp nhiều ý kiến quý báu cho em trong quá trình học tập cũng như khi
làm tốt nghiệp.

Hải Phòng, tháng7 năm 2007
Sinh viên

Lưu Tuấn Lâm

Trang 1


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

GIỚI THIỆ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. Bên cạnh đó 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 Cơ sở dữ liệu đã được sử dụng trong các hoạt động sản
xuất, kinh doanh, quản lí..., trong đó có nhiều Cơ sở dữ liệu cực lớn cỡ Gigabyte, thậm
chí là Terabyte. Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kĩ thuật
và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có
ích. Từ đó, các kĩ thuật Khai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền Công
nghệ thông tin thế giới hiện nay. Một vấn đề được đặt ra là phải làm sao trích chọn được
những thông tin có ý nghĩa từ tập dữ liệu lớn để từ đó có thể giải quyết được các yêu cầu
của thực tế như trợ giúp ra quyết định, dự đoán,… và Khai phá dữ liệu (Data mining) đã
ra đời nhằm giải quyết các yêu cầu đó. Khai phá dữ liệu được định nghĩa là: quá trình
trích xuất các thông tin có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong
các Cơ sở dữ liệu, kho dữ liệu… Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta
còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: khai phá tri thức từ Cơ sở dữ
liệu (knowlegde mining from databases), trích lọc dữ liệu (knowlegde extraction), phân
tích dữ liệu/mẫu (data/pattern analysis), khảo cổ dữ liệu (data archaeology), nạo vét dữ
liệu (data dredging). Nhiều người coi khai phá dữ liệu và một thuật ngữ thông dụng khác
là khám phá tri thức trong Cơ sở dữ liệu(Knowlegde Discovery in Databases – KDD) là
như nhau. Tuy nhiên trên thực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá
trình Khám phá tri thức trong Cơ sở dữ liệu.
Ngay từ những ngày đầu khi xuất hiện, Data mining đã trở thành một trong những
xu hướng nghiên cứu phổ biến trong lĩnh vực học máy và công nghệ tri thức. Nhiều
thành tựu nghiên cứu của Data mining đã được áp dụng trong thực tế. Data mining có
nhiều hướng quan trọng và một trong các hướng đó là phân cụm dữ liệu (Data
Clustering). Phân cụm dữ liệu là quá trính tìm kiếm để phân ra các cụm dữ liệu, các mẫu
dữ liệu từ tập Cơ sở dữ liệu lớn. Phân cụm dữ liệu là một phương pháp học không giám

sát.
Trong những năm trở lại đây, do phương pháp phân cụm dữ liệu không giám sát
còn nhiều nhược điểm vì vậy dựa trên học không giám sát và học có giám sát đã ra đời
một phương pháp phân cụm dữ liệu mới đó là phương pháp phân cụm dữ liệu nửa giám
Trang 2


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

sát. Phương pháp phân cụm nửa giám sát không phải là một phương pháp phân cụm hoàn
thiện nhưng nó đã phần nào khắc phục được những hạn chế và phát huy ưu điểm của
phương pháp phân cụm không giám sát.
Do những ưu điểm, tầm quan trọng cũng như xu hướng phát triển của khám phá
tri thức trong Cơ sở dữ liệu(Knowlegde Discovery in Databases – KDD). Và đây còn là
một lĩnh vực mới lạ đồi với em, vì vậy em đã chọn đề tài Phân cụm dữ liệu nửa giám sát
làm đề tài tốt nghiệp của mình. Em mong muốn có thể học hỏi và tìm hiểu sâu hơn về kỹ
thuật khai phá dữ liệu, từ đó tạo cho bản thân những kiến thức cơ bản để sau này có thể
đi sâu nghiên cứu và tìm hiểu về lĩnh vực KDD.
Nội dung bài đồ án tốt nghiệp ngoài phần giới thiệu, kết luận, và tìa liệu than khảo
gồm có 5 chương :
Chương 1 : Giới thiệu tổng quan về Datamining
Chương 2 : Giời thiệu về phân cụm dữ liệu và các kỹ thuật tiếp cận trong phân cụm
dữ liệu.
Chương 3 : Trình bày về một số phương pháp và thuật toán Phân cụm dữ liệu không
giám sát
Chương 4 : Trình bày một số thuật toán phân cụm dữ liệu nửa giám sát
Chương 5 : Bài toán ứng dụng


Trang 3


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

MỤC LỤC
LỜI CẢM ƠN.................................................................................................................1
GIỚI THIỆU...................................................................................................................2
Chương 1 : TỔNG QUAN VỀ DATA MINING...........................................................5
1.1 Giới thiệu về khám phá tri thức........................................................................5
1.2

Khai phá dữ liệu và các khái niệm liên quan....................................................6

1.2.1

Khái niệm khai phá dữ liệu...............................................................................6

1.2.2

Các kỹ thuật tiếp cận trong khai phá cữ liệu.....................................................6

Chương 2 : PHÂN CỤM DỮ LIỆU VÀ CÁC KỸ THUẬT TIẾP CẬN.....................7
2.1 Khái quát về phân cụm dữ liệu..........................................................................7
2.2 Các kiểu dữ liệu và độ đo tương tự ..................................................................7
2.3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu .........................................10
2.3.1 Phân cụm phân hoạch .....................................................................................10
2.3.2 Phân cụm dữ liệu phân cấp.............................................................................10

2.3.3 Phân cụm dữ liệu dựa trên mật độ...................................................................11
2.3.4

Phân cụm dữ liệu dựa trên lưới.......................................................................11

2.3.5

Phân cụm dữ liệu dựa trên mô hình................................................................11

2.3.6 Phân cụm dữ liệu có ràng buộc.......................................................................11
Chương 3 : PHÂN CỤM DỮ LIỆU KHÔNG GIÁM SÁT.......................................12
3.1

Phương pháp phân hoạch................................................................................12

3.1.1

Thuật toán K-Means .......................................................................................12

3.1.2 Thuật toán K-Prototypes..................................................................................13
3.1.3 Thuật toán k-tâm...............................................................................................14
Chương 4 : PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT..............................................17
4.1

Thuật toán Seeded-KMeans............................................................................17

4.2

Thuật toán Constrained-KMeans ...................................................................18


Chương 5 : BÀI TOÁN ỨNG DỤNG..........................................................................19
5.1 Bài toán..............................................................................................................19
5.2

Giao diện chương trình....................................................................................21

KẾT LUẬN...................................................................................................................24
TÀI LIỆU THAM KHẢO............................................................................................25

Trang 4


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Chương 1 : TỔNG QUAN VỀ DATA MINING
1.1 Giới thiệu về khám phá tri thức
Kỹ thuật khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in
Databases- KDD) có thể chia thành các bước thực hiện như sau [1]:
Bước 1: Trích chọn dữ liệu: Ở bước này các dữ liệu liên quan trực tiếp đến
nhiệm vụ của quá trình KDD sẽ được thu thập từ các nguồn dữ liệu ban đầu.
Bước 2: Tiền xử lý dữ liệu: có nhiệm vụ làm sạch, loại bỏ nhiễu, rút gọn và rời
rạc hóa dữ liệu.
Bước 3: Biến đổi dữ liệu: nhằm chuẩn hóa và làm mịn dữ liệu để chuyển dữ liệu
về dạng thuận lợi nhất phục vụ cho việc khai phá.
Bước 4: Data mining: dùng các kỹ thuật phân tích để khai thác dữ liệu, trích
chọn các mẫu thông tin cần thiết,… Công đoạn này được xem là mất thời gian
nhất và cũng là quan trọng nhất trong quá trình KDD.
Bước 5: Đánh giá và biểu diễn tri thức: Các thông tin và mối liên hệ giữa chúng

vừa khám phá trong công đoạn trước được biểu diễn dưới các dạng trực quan
đồng thời được đánh giá theo những tiêu chí nhất định.

Dữ liệu thô

Tri thức

Trích chọn
dữ liệu

Đánh giá và
biểu diễn

Dữ liệu

Mẫu

Tiền xử lý
dữ liệu

Dữ liệu
tiền xử lý

Biến đổi dữ
liệu

Hình 1: Quá trình khám phá tri thức trong CSDL
Trang 5

Data mining



Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

1.2 Khai phá dữ liệu và các khái niệm liên quan
1.2.1 Khái niệm khai phá dữ liệu
Data mining là một quá trình tìm kiếm, chắt lọc các chi thức mới, tiềm ẩn, hữu
dụng trong tập dữ liệu lớn.
1.2.2 Các kỹ thuật tiếp cận trong khai phá cữ liệu
Theo quan điểm của học máy, các kỹ thuật trong Data mining gồm:
• Học có giám sát (Supervised learning).
• Học không giám sát (Unsupervised learning).
• Học nửa giám sát (Semi-Supervised learning).
Theo các lớp bài toán cần giải quyết, các kỹ thuật trong Data mining gồm:
• Phân lớp và dự đoán (Classification and Prediction).
• Luật kết hợp (Association rules).
• Phân tích chuỗi theo thời gian.
• Phân cụm (Clustering).
• Mô tả khái niệm.

Trang 6


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Chương 2 : PHÂN CỤM DỮ LIỆU VÀ CÁC KỸ THUẬT TIẾP CẬN

2.1 Khái quát về phân cụm dữ liệu
Phân cụm dữ liệu là một kỹ thuật trong Data mining nhằm tìm kiếm, phát hiện
các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn và quan trọng trong tập dữ liệu lớn để từ đó
cung cấp thông tin, tri thức cho việc ra quyết định.
Các bước của một bài toán phân cụm dữ liệu gồm:
• Xây dựng hàm tính độ tương tự
• Xây dựng các tiêu chuẩn phân cụm
• Xây dựng mô hình cho cấu trúc dữ liệu
• Xây dựng thuật toán phân cụm và xác lập các điều kiện khởi tạo
• Xây dựng các thủ tục biểu diễn và đánh giá kết quả phân cụm

2.2 Các kiểu dữ liệu và độ đo tương tự
• Kiểu thuộc tính nhị phân:
Thuộc tính nhị phân chỉ có hai giá trị là 0 va 1. Trong đó 0 có nghĩa là
sai và 1 có nghĩa là đúng

Trang 7


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát
y:1

y:0

x: 1

α


γ

α+γ

x: 0

δ

θ

δ+θ

α+δ

γ+θ

Nếu ta đặt ξ = α+γ+δ+θ. Với x, y là đối tượng có tất cả thuộc tính đều ở dạng
nhị phân.Trong đó α,γ,δ,θ được hiểu như sau:
α là tổng số các thuộc tính có giá trị là 1 trong cả hai đối tượng x, y
γ là tổng số các thuộc tính có giá trị 1 trong x và 0 trong y
δ là tổng số các thuộc tính có giá trị 0 trong x và 1 trong y
θ là tổng số các thuộc tính có giá trị là 0 trong cả hai đối tượng x, y
Khi đó độ tương tự được cho như sau:
1. Hệ số đối sánh đơn giản: d ( x, y ) =

α +θ
, Ở đây x và y có vai
ξ

trò như nhau, tức là chúng đối xứng và cùng trọng số.

2. Hệ số Jacard: d ( x, y ) =

α
, công thức này được áp dụng
α +γ +δ

trong trường hợp mà trọng số của các thuộc tính có giá trị 1 lớn
hơn rất nhiều các thuộc tính có giá trị 0, như vậy các thuộc tính
nhị phân ở đây không đối xứng.

Trang 8


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

• Kiểu thuộc tính khoảng (Interval)
Dùng để đo các giá trị theo xấp xỉ tuyến tính. Độ đo phi tương tự của x
và y được tính bằng các metric khoảng cách sau
n

1/ q
*
1. Khoảng cách Minkowski: d ( x, y ) = (∑ xi − yi ) , q ∈ N
q

i =1

n


1/ 2
2. Khoảng cách Euclide: d ( x, y ) = (∑ xi − yi ) , nó là trường hợp
2

i =1

của khoảng cách Minkowski với q = 2.
n

3. Khoảng cách Mahattan d ( x, y ) = (∑ xi − yi ) , nó là trường hợp của
i =1

khoảng cách Minkowski với q = 1.
• Kiểu thuộc tính định danh (Nominal)
Độ đo phi tương tự giữa hai đối tượng x và y được xác định qua công
thức sau:
d ( x, y ) =

p−m
, trong đó m là số thuộc tính đối sánh tương ứng trùng nhau và
p

p là tổng số các thuộc tính.
• Kiểu thuộc tính thứ tự (Ordinal)
Độ đo phi tương tự được tính thông qua các bước sau:
1. Gọi f là một thuộc tính, giá trị của f ứng với đối tượng thứ i là x if. Giả
sử f có Mf trạng thái có thứ tự: 1,2,…,M f. Ta thay thế mỗi xif bởi giá trị
tương ứng rif ∈ [1,Mf].
2. Vì mỗi thuộc tính f có thứ tự có số lượng các trạng thái khác nhau nên

ta cần làm cho rif thuộc khoảng [0.0,1.0] để mỗi thuộc tính đều có cùng
r −1

if
trọng số. Do đó rif được thay thế bởi zif = M − 1
f

Trang 9


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

3. Cuối cùng ta sử dụng công thức tính độ phi tương tự của thuộc tính
khoảng với zif đại diện cho giá trị thuộc tính f của đối tượng thứ i
• Kiểu thuộc tính tỷ lệ (Ratio)
Đây là thuộc tính khoảng nhưng được xác định một cách tương đối so
với điểm mốc
Có nhiều cách để tính độ tương tự giữa các thuộc tính tỉ lệ. Một
trong số đó là việc sử dụng công thức tính logarit để chuyển mỗi thuộc tính
tỉ lệ xi về dạng thuộc tính khoảng ψi = log(xi).

2.3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu
Các kỹ phân cụm dữ liệu có thể phân loại theo các cách tiếp cận chính sau :
2.3.1 Phân cụm phân hoạch
Phương pháp phân cụm phân hoạch nhằm phân một tập dữ liệu có n phần tử cho
trước thành k nhóm dữ liệu sao cho : mỗi phần tử dữ liệu chỉ thuộc về một nhóm dữ liệu
và mỗi nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu. Các thuật toán phân hoạch
dữ liệu có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục cho vấn đề PCDL.

Chính vì vậy, trên thực tế người ta thường đi tìm giải pháp tối ưu cục bộ cho vấn đề này
bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lượng của các cụm cũng như để
hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu.
2.3.2 Phân cụm dữ liệu phân cấp
Phân cụm phân cấp sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng
hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy. Cây phân cụm có thể
được xây dựng theo hai phương pháp tổng quát :
• Phương pháp “dưới lên” (Bottom up)
• Phương pháp “trên xuống” (Top Down)

Trang 10


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

2.3.3 Phân cụm dữ liệu dựa trên mật độ
Phương pháp này nhóm các đối tượng theo hàm mật độ xác định. Mật độ được
định nghĩa như là số các đối tượng lân cận của một đối tượng dữ liệu theo một ngưỡng
nào đó.
2.3.4 Phân cụm dữ liệu dựa trên lưới
Kỹ thuật phân cụm dựa trên mật độ không thích hợp với dữ liệu nhiều chiều, để giải
quyết cho đòi hỏi này, người ta đã dử dụng phương pháp phân cụm dựa trên lưới. Đây là
phương pháp dựa trên cấu trúc dữ liệu lưới để PCDL, phương pháp này chủ yếu tập trung
áp dụng cho lớp dữ liệu không gian. Một thí dụ về cấu trúc dữ liệu lưới chứa các cell
trong không gian :
2.3.5 Phân cụm dữ liệu dựa trên mô hình
Phương pháp này cố gắng khám phá các phép xấp xỉ tốt của các tham số mô hình
sao cho khớp với dữ liệu một cách tốt nhất. Chúng có thể sử dụng chiến lược phân cụm

phân hoạch hoặc chiến lược phân cụm phân cấp, dựa trên cấu trúc hoặc mô hình mà
chúng giả định về tập dữ liệu và cách mà chúng tinh chỉnh các mô hình này để nhận dạng
ra các phân hoạch.
2.3.6 Phân cụm dữ liệu có ràng buộc
Sự phát triển của phân cụm dữ liệu không gian trên CSDL lớn đã cung cấp nhiều công cụ
tiện lợi cho việc phân tích thông tin địa lý, tuy nhiên hầu hết các thuật toán này cung cấp
rất ít cách thức cho người dùng để xác định các ràng buộc trong thế giới thực cần phải
được thoả mãn trong quá trình PCDL.

Trang 11


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Chương 3 : PHÂN CỤM DỮ LIỆU KHÔNG GIÁM SÁT
3.1 Phương pháp phân hoạch
3.1.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
Thuật toán: K-Means.
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ụ thể hơn, với tập dữ liệu
X = { x1 ,...,hoạch
xN } , xi{ ∈
X = { xi } i =1Input:
Xℜ
, xi ∈ℜ-d Tập
thuật
h } h =1 của X sao cho nếu

cáctoán
đốiK-Means
tượng dữ tạo
liệura K phân
N

dK

- Số lượng cụm: K

{ µh } h=1 đại diện cho K tâm thì hàm mục tiêu sau:K
X
Output: K phân hoạch tách rời: { h } h =1 của
K

mục tiêu
K được tối ưu.
Ekmeans
Các =bước:
∑∑ x ∈X || xi − µh ||2
h =1

i

X sao cho hàm

(1) được cực tiểu địa phương.
K
{ µh(0) }


h

h =1 được chọn
1. Khởi tạo các cụm: các tâm ban đầu
ngẫu nhiên
2. Lặp cho tới khi hội tụ
Gán cụm: Gán mỗi đối tượng dữ liệu x vào cụm h* (tức là tập

{X }

K
( t +1)
h*
h =1

(t ) 2
) với h* = argmin || x − µh ||

Ước lượng tâm:
t ¬ t+1

µh(t +1) ¬

1



( t +1)

( t +1)

x∈ X h
| XTrang
| 12
h

x


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

3.1.2 Thuật toán K-Prototypes
Thuật toán k-prototypes mở rộng thuật toán k –means để làm việc với tập dữ liệu
hỗn hợp giữa thuộc tính số và thuộc tính hạng mục. Thuật toán k-prototypes sử dụng các
đối tượng mẫu (prototype) để biểu diễn cho các cụm thay vì sử dụng các đối tượng trọng
tâm như trong thuật toán k-means. Các đối tượng dữ liệu lần lượt được phân phối cho các
cụm dữ liệu sao cho chúng tương tự nhất với đối tượng mẫu tương ứng với cụm dữ liệu
mà chúng được phân phối, sự tương tự ở đây được xác định bằng độ đo tương tự cho dữ
: Tập dữ liệu ban đầu X và số cụm k,
liệuInput
hỗn hợp.
Output : k đối tượng mẫu sao cho hàm tiêu chuẩn đạt giá trị tối thiểu
 Thuật toán k- prototypes
Begin
1. Khởi tạo k đối tượng mẫu ban đầu cho X, mỗi đối tượng mẫu đóng
vai trò là tâm đại diện của mỗi cụm.
2. Phân phối mỗi đối tượng trong X cho mỗi cụm sao cho chúng gần
nhất với đối tượng mẫu trong cụm, đồng thời cập nhật lại đối tượng
mẫu cho mỗi cụm.

3. Sau khi tất cả các đối tượng đã được phân phối hết cho các cụm,
kiểm tra lại độ tương tự của các đối tượng trong mỗi cụm với các đối
tượng mẫu, nếu có một đối mẫu tương tự nhất với nó mà khác với đối
tượng mẫu của cụm hiện thời thì di chuyển đối tượng đang xét này
sang cụm tương ứng với đối tượng mẫu mà nó gần nhất và đồng thời
cập nhật các đối tượng mẫu cho hai cụm này.
4. Lặp bước 3 cho đến khi không có đối tượng nào thay đối sau khi đã
kiểm tra toàn bộ các đối
tượng.13
Trang
End.


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

3.1.3 Thuật toán k-tâm
Thuật toán k-tâm mở rộng thuật toán k –means để làm việc với tập dữ liệu hỗn
hợp gồm: thuộc tính số, thuộc tính định danh và thuộc tính có thứ tự.
 Độ đo tương tự
Giả sử DOM(Aj) là miền giá trị của thuộc tính Aj ta có các khái niệm:
Thuộc tính đinh danh: Aj được gọi là thuộc tính định danh nếu DOM(A j) là tập
không có thứ tự tức là ∀a,b ∈ DOM(Aj) hoặc a=b hay a≠b.
Thuộc tính số: Aj là thuộc tính số nếu DOM(Aj) là tập số thực.
Thuộc tính có thứ tự: nếu DOM(Aj) là tập hữu hạn và có thứ tự hoàn toàn.
 Công thức tính khoảng cách giữa hai đối tượng
Giả sử ta có x,y∈DOM(Aj), hàm dj(x,y) được xác định như sau:
• Nếu Aj là thuộc tính số thì dj được dj(x,y)=x-y (9)
• Nếu Aj là thuộc tính thứ tự và DOM(Aj) =


{a ,..., a }
1
j

k
j

với

a 1j < a 2j < ... < a kj

, ta lấy

1
k
một hàm đơn điệu fj:DOM(Aj)→ [0,1] sao cho f j ( a j ) = 0; f j (a j ) = 1 (Hàm này có

i
thể là : f j ( a j ) =

i −1
) . Khi đó dj(x,y)= │fj(x)-fj(y) │.(10)
k −1
0 khi : x = y
 1 khi : x ≠ y

• Nếu Aj là dữ liệu định danh thì dj(x,y)= 

(11)


Vậy khoảng cách d(x,y) giữa hai đối tượng x = (x1,...,xn) và y = (y1,...,yn) được
tính bởi công thức:

Trang 14


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát
d ( x, y ) =

n

∑ρ
j =1

2
j

d 2j ( x j , y j )

(12)

trong đó các dj(xj,yj) được tính theo các công thức (9-11) và ρj là các trọng số dương
cho bởi các chuyên gia.
Với định nghĩa trên, ta luôn có thể xem các thuộc tính thứ tự có miền giá trị là đoạn
[0,1] (các giá trị trên thuộc tính này của D là tập con) và nó cũng được xem là thuộc tính
số khi không xảy ra nhầm lẫn.
 Tìm mode của tập dữ liệu

Định lý :
Nếu xem miền giá trị của các thuộc tính có thứ tự là đoạn [0,1] và mode của tập hợp
xác định như đã nói ở trên thì với mọi tập dữ liệu hỗn hợp C , mode(C) cực tiểu hàm:
E(x)=

∑d

2

( y, x)

y∈C

(13).

trong đó x là phần tử của quan hệ r trên lược đồ quan hệ R={A1,...,An}.
 Thuật toán K-Tâm
Thuật toán k-tâm phân cụm dữ liệu hỗn hợp là mở rộng thuật toán k-mean. Thuật
toán được đặc tả như sau:

Trang 15


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Proceduce k-tâm
Begin
Chọn các trọng số ρ j , các hàm fj ,xác định k.

Chọn k phần tử ban đầu { z j } j =1 của D làm tâm các cụm
k

Xếp mỗi x ∈ D vào cụm Cj mà nó gần tâm nhất;
For j=1,...,k do z j ← mod e(C j ) ;
Repeat
Phân bố lại cụm theo tâm mới// như k-mean;
Cập nhật lại tâm cho các cụm // nhờ tính mode
Until các cụm không đổi;
Xác định các cụm
End

 Nhận xét
Khi thuật toán kết thúc, các đối tượng tâm có thể không thuộc tập X. Để tìm phần tử
đại diện cho mỗi cụm, ta lấy phần tử thuộc cụm gần với tâm của nó nhất.

Trang 16


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Chương 4 : PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT
Phân cụm nửa giám sát là phương pháp sử dụng các thông tin bổ trợ để hướng
dẫn cho quá trình phân cụm. Các thông tin bổ trợ có thể được cho dưới dạng tập các cặp
ràng buộc hoặc một tập nhỏ một số dữ liệu được dán nhãn. Công việc xác định những tập
ràng buộc hay những tập dữ liệu được dán nhãn được thực hiện bởi người phân cụm. Sau
đây là một số thuật toán phân cụm dựa vào tập dữ liệu được dán nhãn.


4.1 Thuật toán Seeded-KMeans
Thuật toán Seeded-KMeans sử dụng các cụm giống Sh để khởi tạo cho thuật toán
K-Means. Do vậy thay vì phải khởi tạo K cụm ngẫu nhiên chúng ta khởi tạo K cụm từ
tập giống. Với tập giống là những phần tử đã được dán nhãn, do người thực hiện phân
cụm xác định từ kinh nghiệm hoặc từ những tiêu chuẩn cụ thể đối với từng mục đích
phân cụm.
Thuật toán: Seeded-KMeans.
d
Input: - Tập các đối tượng dữ liệu X = { x1 ,..., xN } , xi ∈ ℜ
- Số lượng cụm: K
K
- Tập giống S = Uh =1 S h

Output: K phân hoạch tách rời: { X h } h =1 của X sao cho hàm
K

mục tiêu được tối ưu.
Các bước:
(0)
1. Khởi tạo các cụm: µh ¬

1
Sh



x∈Sh

x , với h = 1,...K;


t←0.
2 Lặp cho tới khi hội tụ
2.1 Gán cụm: Gán mỗi đối tượng dữ liệu x vào cụm h*
(tức là tập

{X }

K
( t +1)
h*
h =1

(t ) 2
) với h* = argmin || x − µh ||

( t +1)
2.2 Ước lượng tâm: µh ¬

1
| X h(t +1) |

2.3 t ¬ t+1

Trang 17



x∈ X h( t +1)

x



Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

4.2 Thuật toán Constrained-KMeans
Thuật toán Constrained-KMeans dùng các cụm giống như những ràng buộc để
dẫn dắt quá trình phân cụm của K-Means. Nhưng trong các bước sau, mọi đối tượng
thuộc tập giống S không được bố trí lại, mà chỉ có các đối tượng không thuộc tập giống
mới được bố trí lại.
Thuật toán: Constrained-KMeans.
d
Input: - Tập các đối tượng dữ liệu X = { x1 ,..., xN } , xi ∈ ℜ
- Số lượng cụm: K
- Tập giống S = UKh=1 S h

Output: K phân hoạch tách rời: { X h } h =1 của X sao cho hàm
mục tiêu được tối ưu.
Các bước:
K

(0)
1. Khởi tạo các cụm: µh ¬

1
Sh




x∈S h

x , với h = 1,...K; t←0.

2 Lặp cho tới khi hội tụ
2.1 Gán cụm:
- Với mỗi x ∈ S , nếu x ∈ Sh thì gán x vào cụm h
-Với mỗi x ∉ S gán x vào cụm h* , với h* = argmin
|| x − µh( t ) ||2
( t +1)
2.2 Ước lượng tâm: µh ¬

2.4 t ¬ t+1

1
| X h(t +1) |



x∈X h( t +1)

x

* Nhận xét
Các Thuật toán dựa trên tập giống Seeded-KMeans, Constrained-KMeans do
Basu đề xuất vào năm 2002 và COP-KMeans do Wagstaff đề xuất năm 2001 là các thuật
toán điển hình hiện nay về phân cụm nửa giám sát. Các thông tin bổ trợ đều do người
dùng cung cấp. Vậy phân cụm nửa giám sát thực chất là quá trình kết hợp giữa người và
máy để làm tăng chất lượng phân cụm.


Trang 18


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Chương 5 : BÀI TOÁN ỨNG DỤNG
Bài toán nhằm giải quyết vấn đề phân cụm dữ liệu với một cơ sở dữ liệu của một
công ty kinh doanh bảo hiểm, nhằm đưa ra các nhóm hợp đồng boả hiểm của khách hàng
có sự giống nhau là lớn nhất. Vấn đề đặt ra ở đây là số lượng hợp đồng bảo hiểm là rất
lớn việc xác định mức độ rủi ro cho từng hợp đồng bảo hiểm mất rất nhiều thời gian vì
không phải ai cũng có thể đánh giá được mức độ rủi ro từ những thông tin của khách
hàng trong hợp đồng. Vì vậy 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. 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 nó cần có
chuyên gia đánh giá lại, nhưng như vậy đã 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ọ.
Rủi ro hợp đồng bảo hiểm của khách hàng 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.

5.1 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 19


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Bảng sau gồm các thuộc tính dùng để đánh giá các mức độ rủi ro:
Số
TT
1
2
3

4
5
6
7
8
9

10
11

12
13
14

Tên thuộc tính

Kiểu thuộc Các giá trị có thể
tính
Tuồi của người được bảo hiểm
Số
1÷60
Nghề nghiệp của người được bảo hiểm Định danh
Loại nghề nghiệp của người được bảo Thứ tự
1: An toàn
hiểm
2:Bình thường
3: Hơi nguy hiểm
4: Nguy hiểm
Thu nhập của người được bảo hiểm
Số
Quan hệ với người được bảo hiểm
Định danh
Bệnh của người được bảo hiểm
Định danh
Tuồi của người mua bảo hiểm
Số
1÷60
Nghề nghiệp của người mua bảo hiểm Định danh
Loại nghề nghiệp của người mua bảo Thứ tự
1: An toàn

hiểm
2:Bình thường
3: Hơi nguy hiểm
4: Nguy hiểm
Thu nhập gia đình của người mua bảo Số
hiểm
Bệnh của người mua bảo hiểm
Định danh
Tên bảo hiểm đăng kí mua
Định danh
Số tiền mua bảo hiểm
Số
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 các bệnh khách 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.

Trang 20



Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

5.2 Giao diện chương trình
 Giao diện khởi động

 Một số giao diện cập nhập

Trang 21


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

 Giao diện Phân cụm dữ liệu
 Cập nhập số cụm K

 Cập nhập tập giống

Trang 22


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

 Phân cụm dữ liệu


 Kết quả phân cụm
Trang 23


Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

KẾT LUẬN
Data mining là một trong những lĩnh vực nghiên cứ mới, nhưng đồng thời nó cũng
là một trong những xu hướng nghiên cứu ngày càng phổ biến. Do nhu cầu của thực tế,
với sự phát triển của công nghệ máy tính, của các lĩnh vực kinh tế - xã hôi thì lượng
thông tin lưu trữ ngày càng tăng, và nhu cầu khai thác thông tin, tri thức ngày càng lớn.
Do đó việc đọc, nghiên cứu và phát triển phương pháp phân cụm dữ liệu đóng một vai
trò rất quan trọng trong hoạt động của khoa học công nghệ máy tính, cũng như trong hoạt
động thực tiễn.
Trong bài báo cáo này tôi đã nêu lên những nét đặc trưng nhất trong lĩnh vực Data
Mining bao gồm các vấn đề cần khám phá tri thức, các hướng tiếp cận nghiên cứu tiêu
biểu, trong đó phân cụm dữ liệu là một phương pháp khám phá tri thức quan trọng trong
Data Mining có nhiều ý nghĩa trong khoa học cũng như thực tiễn. Trong đó phân cụm dữ
liệu nửa giám sát là một trong những hướng nghiên cứu mới được nhiều nhà khoa học
quan tâm. Bài báo cáo đã nêu được một cách khái quát về data mining và phương pháp
phân cụm không giám sát, từ đó phân tích chi tiết về phân cụm nửa giám sát. Trình bày
ba thuật toán điển hình của phân cụm nửa giám sát đó là : COP-KMeans, SeededKMeans, Constrained-KMeans và trình bày thuật toán KMeans phân cấp mới được đề
xuất của hai tác giả Việt Nam là : Hoàng Xuân Huấn và Nguyễn Trung Thông.

Trang 24



Lưu Tuấn Lâm

Thuật toán Phân cụm dữ liệu nửa giám sát

Tóm lại phân cụm dữ liệu nói chung và phân cụm nửa hiám sát nói riêng đang
ngày càng được quan tâm ở nước ta và trên thế giới. Ngày càng có nhiều thuật toán và tư
tưởng mới về phân cụm dữ liệu ra đời. Phân cụm dữ liệu đã từng bước chứng minh được
tầm quan trong cũng như vài trò của mình trong sự phát triển của công nghệ máy tính nói
riêng và phát triển của thế giới nói chung. Trong quá trình thực tập do thời gian thưc tập
và trình độ còn nhiều hạn chế lên chưa thể tìm hiểu chi tiết hơn về Phân cụm nửa giám
sát. Tôi mong nhận được sự chỉ bảo của thầy cô và sự góp ý của bạn bè.

TÀI LIỆU THAM KHẢO
[1] Nguyễn Trung Thông. Phương pháp phân cụm nửa giám sát
[ 2 ] KS. Nguyễn Anh Trung - Trung tâm Công nghệ Thông tin. Ứng dụng các kỹ thuật
khai phá dữ liệu vào lĩnh vực viễn thông
[3] Hoà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 dữ liệu trong 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 k-mean
cho dữ liệu hỗn hợp. Một số vấn đề chọn lọc của công nghệ thông tin, Hải phòng 25-27
tháng 8 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 (ICML2002), pp. 19–26.
[6] Basu, S., Banerjee, A., & Mooney, R. J. (2003). Active semi-supervision for pairwise
constrained
clustering.
Submitted
for
publication,
available

at
/>
Trang 25


×