Tải bản đầy đủ (.pdf) (70 trang)

Cài đặt một số thuật toán phân cụm dữ liệu, áp dụng vào bài toán phân nhóm bệnh án của bệnh xơ gan để hỗ trợ điều trị

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 (2.92 MB, 70 trang )

MỤC LỤC
LỜI NÓI ĐẦU ....................................................................................................3
CHƯƠNG 1. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU........................................5
1.1. Khái niệm khai phá dữ liệu .......................................................................5
1.2. Kiến trúc của một hệ thống khai phá dữ liệu .............................................6
1.3. Các giai đoạn của quá trình khai phá .........................................................7
1.4. Các phương pháp khai phá dữ liệu ............................................................9
1.5. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu.......................................10
1.6. Các ứng dụng của khai phá dữ liệu..........................................................11
1.7. Các thách thức và khó khăn trong khai phá dữ liệu..................................12
CHƯƠNG 2. TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU..................................13
2.1. Khái niệm và mục tiêu của phân cụm dữ liệu ..........................................13
2.1.1. Khái niệm về phân cụm dữ liệu ........................................................13
2.1.1.1. Mục tiêu của phân cụm dữ liệu...................................................13
2.1.1.2. Các yêu cầu đối với kỹ thuật phân cụm dữ liệu ..........................14
2.1.1.3. Các kiểu dữ liệu và các thuộc tính trong phân cụm.....................14
2.1.2. Các kỹ thuật tiếp cận trong phân cụm dữ liệu ...................................16
2.1.2.1. Phương pháp phân cụm phân hoạch ..........................................16
2.1.2.3. Phương pháp phân cụm phân cấp ...............................................16
2.1.2.3. Phương pháp phân cụm dựa trên mật độ.....................................17
2.1.2.4. Phân cụm dựa trên lưới ..............................................................18
2.1.2.5. Phân cụm dựa trên mô hình........................................................19
2.1.2.6. Phân cụm có dữ liệu ràng buộc...................................................19
2.1.3.Một số phương pháp trong phân cụm dữ liệu .....................................21
2.1.3.1. Các thuật toán trong phân cụm phân hoạch ................................21
2.1.3.2. Các thuật toán trong phân cụm phân cấp ....................................27
2.1.3.3.Các thuật toán phân cụm dựa trên mật độ ....................................28
2.1.3.4.Phân cụm dựa trên lưới ...............................................................29
2.1.3.5.Phân cụm dựa trên mô hình.........................................................30
2.2. Phân cụm cụm mờ...................................................................................31
2.2.1. Tổng quan về phân cụm mờ..............................................................31


2.2.2. Các thuật toán phân cụm mờ.............................................................32
2.2.2.1. Thuật toán FCM (Fuzzy C-Means)............................................32
2.2.2.2. Thuật toán εFCM .......................................................................34
2.2.2.3. Thuật toán FCM cải tiến.............................................................36
CHƯƠNG 3. CHƯƠNG TRÌNH CÀI ĐẶT ......................................................44
3.1. Giới thiệu ngôn ngữ Visual Basic 6.0......................................................44
3.1.1. Biểu mẫu và một số điều khiển thông dụng.......................................44
3.1.2. Biểu mẫu (Form) ..............................................................................45
3.1.3. Nhãn (Label) ....................................................................................46
3.1.5. Nút lệnh (Command Button).............................................................47
3.1.6. Ô nhập dữ liệu (TextBox) .................................................................48
3.1.7. Các cấu trúc điều khiển trong VB .....................................................49
3.2. Cài đặt thuật toán ....................................................................................51
3.2.1.Một số giao diện chính ......................................................................51

1


3.2.2. Nhận xét ...........................................................................................54
3.3. Ứng dụng C-Means trong việc phân cụm bệnh án cho bệnh xơ gan.........55
3.3.2. Một số bảng thao tác.........................................................................59
3.3.3. Giao diện chương trình ứng dụng .....................................................62
KẾT LUẬN.......................................................................................................68
TÀI LIỆU THAM KHẢO .................................................................................70

2


LỜI NÓI ĐẦU
Trong vài năm gần đây, với sự bùng nổ của công nghệ thông tin đã mang lại

nhiều hiệu quả và thành công lớn đối với khoa học cũng như các hoạt động thực
tế khác, trong đó có lĩnh vực khai phá dữ liệu là một lĩnh vực mang lại hiệu quả
thiết thực cho con người. Khai phá dữ liệu đã giúp chúng ta thu được những tri
thức hữu ích từ cơ sở dữ liệu hay từ các kho dữ liệu khổng lồ khác. Cơ sở dữ liệu
được sử dụng trong các đơn vị, tổ chức kinh doanh, quản lý khoa học chứa đựng
nhiều thông tin tiềm ẩn, phong phú và đa dạng đòi hỏi phải có những phương
pháp nhanh, phù hợp, chính xác, hiệu quả để lấy được những thông tin có ích để
làm tư liệu đối với từng trường hợp cụ thể của con người. Những tri thức thu
được từ cơ sở dữ liệu trên sẽ là nguồn thông tin hỗ trợ cho chúng ta trong từng
công việc chi tiết, cụ thể. Việc tiến hành công việc như vậy chính là thực hiện
quá trình phát hiện tri thức trong cơ sở tri thức ( Knowledge Discovery in
Database) mà trong đó là kỹ thuật khai phá dữ liệu (Data Mining) cho phép phát
hiện những tri thức tiềm ẩn. Ngay từ 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 công nghệ
tri thức như 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 nghiên cứu quan trọng và một trong các
hướng cơ bản trong khai phá dữ liệu là quá trình phân cụm dữ liệu (Data
Clustering). Phân cụm dữ liệu có thể hiểu là quá trình tìm kiếm tri thức, phân
tách (hay chuẩn hóa dữ liệu) thành các cụm hay các tập dữ liệu từ một tập cơ sở
dữ liệu lớn để thu được nguồn thông tin có ích phục vụ cho từng nhu cầu thực tế
của mỗi người, mỗi tổ chức.
Qua thực tế cho thấy, việc thu thập những thông tin quan trọng còn tiềm ẩn
trong cơ sở dữ liệu lớn là rất cần thiết. Vì vậy, việc phân cụm dữ liệu, trích lọc
những thông tin quan trọng phục vụ cho từng nhu cầu của mỗi người đã mang lại
nhiều lợi ích quan trọng góp phần giảm bớt lượng dữ liệu dư thừa hoặc không
cần thiết trong từng ứng dụng thực tế.

3



Bắt nguồn từ ý tưởng này, cùng với sự gợi ý của thầy giáo Trần Mạnh
Tuấn, em đã thực hiện đồ án “CÁI ĐẶT MỘT SỐ THUẬT TOÁN PHÂN
CỤM DỮ LIỆU, ÁP DỤNG VÀO BÀI TOÁN PHÂN NHÓM BỆNH ÁN
CỦA BỆNH XƠ GAN ĐỂ HỖ TRỢ VIỆC ĐIỀU TRỊ ”
Để có kết quả như ngày hôm nay, em cũng đã cố gắng nhiều, song phần lớn
là nhờ sự giúp đỡ và chỉ bảo tận tình của thầy giáo Th.s Trần Mạnh Tuấn. Nhưng
vì điều kiện và thời gian có hạn nên việc tìm hiểu về lĩnh vực này cũng còn nhiều
hạn chế và không tránh khỏi những thiếu sót. Vì vậy em mong được sự góp ý, chỉ
bảo của quý thầy cô và bạn bè để báo cáo của em được hoàn thiện hơn.

4


CHƯƠNG 1. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU
Trong những năm gần đây, Khai phá dữ liệu đã và đang trở thành một trong
những hướng nghiên cứu và tiếp cận mới thu hút được sự quan tâm của nhiều
chuyên gia Công nghệ thông tin ở Việt Nam nói riêng và chuyên gia trên thế giới
nói chung. Điều này cho chúng ta thấy được những ưu thế và lợi ích, khả năng
ứng dụng thực tế của Khai phá dữ liệu là rất lớn. Vì vậy sau đây em xin đưa ra
một số khái niệm và những kiến thức cơ bản nhất về Khai phá dữ liệu.
1.1. Khái niệm khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực nghiên cứu nhằm tự động khai thác thông tin
tri thức, tri thức hữu ích, tiềm ẩn từ những CSDL lớn cho các đơn vị tổ chức,
doanh nghiệp,…Vậy khai phá dữ liệu là khám phá tri thức tiềm ẩn trong các cơ
sở dữ liệu lớn. Cụ thể hơn, đó là quá trình trích lọc, sản sinh ra những thông tin
hoặc các mẫu không hiển nhiên, tiểm ẩn nhưng hữu ích từ các cơ sở dữ liệu lớn.
Các kết quả nghiên cứu khoa học cùng những ứng dụng thành công trong
phát hiện tri thức cho thấy Khai phá tri thức là một lĩnh vực phát triển bền vững,
mang lại nhiều lợi ích và có nhiều triển vọng, đồng thời có ưu thế hơn hẳn so với
công các công cụ tìm kiếm phân tích dữ liệu truyền thống.

Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, gồm các
thuật toán khai thác dữ liệu chuyên dụng dưới một số quy định về hiệu quả tính
toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu.

Hình 1: Quá trình khai phá dữ liệu

5


Vậy ta có thể khái quát hóa khái niệm Khai phá dữ liệu là một quá trình tìm
kiếm, phát hiện các tri thức mới, hữu ích, tiềm ẩn trong CSDL lớn. Cụ thể hơn đó
là tiến trình lọc, sản sinh những tri thức hoặc các mẫu tiềm ẩn, chưa biết thông tin
hữu ích từ các cơ sở dữ liệu lớn.
1.2. Kiến trúc của một hệ thống khai phá dữ liệu
Khai phá dữ liệu là quá trình rút trích thông tin bổ ích từ những kho dữ liệu
lớn. Khai phá dữ liệu là quá trình chính trong khai phá tri thức từ cơ sở dữ liệu.
Kiến trúc của một hệ thống khai phá dữ liệu có các thành phần như sau:

Hình 2: Kiến trúc một hệ thống khai phá dữ liệu
 CSDL, kho dữ liệu hoặc lưu trữ thông tin khác: đây là một hay các tập
CSDL, các kiểu dữ liệu hay các dạng khác nhau của thông tin được lưu
trữ. Các kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể được thực
hiện.
 Máy chủ CSDL (Database or Warehouse server): máy chủ có trách nhiệm
lấy dữ liệu thích hợp dựa trên những yêu cầu khám phá của người dùng.
 Cơ sở tri thức (Knowledge-base): đây là miền tri thức dùng để tìm kiếm
hay đánh giá độ quan trọng của các mẫu kết quả thu được. Tri thức này có

6



thể bao gồm một sự phân cấp khái niệm dùng để tổ chức các thuộc tính
hay các giá trị thuộc tính ở các mức trừu tượng khác nhau.
 Máy khai phá dữ liệu (Data mining enginne): là một hệ thống khai phá dữ
liệu cần phải có một tập các Modul chức năng để thực hiện công việc như
kết hợp, phân lớp,phân cụm.
 Modul đánh giá mẫu (Parttern evaluation): Bộ phận tương tác với các
Modul khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đang
được quan tâm. Nó có thể dùng các ngưỡng về độ quan tâm để lọc các
mẫu đã khám phá được. Cũng có thể Modul đáng giá mẫu được tích hợp
vào Modul khai phá dữ liệu, tùy theo cách cài đặt của phương pháp khai
phá dữ liệu được dùng.
 Giao diện đồ họa cho người dùng (Graphical user interface): bộ phận này
cho phép người dùng giao tiếp với hệ thống khai phá dữ liệu. Thông qua
giao diện này người dùng có thể tương tác với hệ thống bằng cách đặc tả
một yêu cầu khai phá hay một nhiệm vụ, cung cấp thông tin trợ giúp cho
việc tìm kiếm và thực hiện việc khai phá thăm dò trên các kết quả khai
phá trung gian. Ngoài ra, bộ phận này còn cho phép người dùng xem các
lược đồ CSDL, lược đồ kho dữ liệu, các đánh giá mẫu và hiển thị các mẫu
trong các khuôn dạng khác nhau.
1.3. Các giai đoạn của quá trình khai phá
Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình khám phá tri
thức. Về bản chất, nó là giai đoạn duy nhất tìm ra được thông tin mới, thông tin
tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán.
Mô tả dữ liệu là tổng kết hoặc diễn tả những đặc điểm chung của những
thuộc tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được.
Dự đoán là dựa trên những dữ liệu hiện thời để dự đoán những quy luật
được phát hiện từ các mối liên hệ giữa các thuộc tính của dữ liệu trên cơ sở đó
chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị
tương lai của các biến quan tâm.


7


Quá trình khai phá dữ liệu được thể hiện như hình sau:

Hình 3: Quá trình khai phá dữ liệu
Trong đó :
 Xác định nhiệm vụ: xác định chính xác các vấn đề cần giải quyết.
 Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp.
 Thu thập và tiền xử lý dữ liệu: Thu thập dữ liệu liên quan và tiền xử lý
chúng sao cho thuật toán khai phá dữ liệu có thể hiểu được. Đây là quá
trình khó khăn, có thể gặp phải rất nhiều vướng mắc như: dữ liệu phải
được sao ra nhiều bản, quản lí tập các dữ liệu, phải lặp đi lặp lại nhiều lần
toàn bộ quá trình…
Quá trình khai phá dữ liệu trải qua ba bước:
Bước 1: Lọc dữ liệu được thực hiện trong quá trình tiền xử lý. Đầu tiên là
tích hợp và chỉnh sửa. Dữ liệu được thu thập từ nhiều nguồn khác nhau nên có
thể có những sai sót, dư thừa và trùng lặp. Lọc dữ liệu là cắt bỏ dư thừa để dữ
liệu được định dạng thống nhất. Dữ liệu sau khi lọc và chỉnh sửa sẽ nhỏ hơn, xử
lý nhanh hơn.
Bước 2: Khai phá dữ liệu là công việc chính, sử dụng các thuật toán khác
nhau để khai phá các kiến thức tiềm ẩn trong dữ liệu.
Bước 3: quá trình ước lượng kết quả khai phá theo yêu cầu của người dùng.
Các kết quả được ước lượng bởi những quy tắc nào đó, nếu kết quả cuối cùng
không thỏa mãn yêu cầu thì phải làm lại với kỹ thuật khác cho đến khi có kết quả
mong muốn.

8



1.4. Các phương pháp khai phá dữ liệu
Mục đích của khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh
doanh hay cho nghiên cứu khoa học… Do đó, ta có thể xem mục đích của khai
phá dữ liệu sẽ là mô tả các sự kiện và dự đoán. Dự đoán liên quan đến việc sử
dụng các biến hoặc các đối tượng (bản ghi) trong cơ sở dữ liệu để chiết xuất ra
các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của
các biến đáng quan tâm. Còn mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ
liệu mà con người có thể hiểu được. Với hai mục đích của khai phá dữ liệu đó,
người ta thường sử dụng các phương pháp cho Khai phá dữ liệu như sau:
 Luật kết hợp (Association rules)
 Phân lớp (Classfication)
 Hồi quy (Regression)
 Trực quan hóa (Visualiztion)
 Phân cụm (Clustering)
 Tổng hợp (Summarization)
 Mô hình ràng buộc (Dependency modeling)
 Biểu diễn mô hình (Model Evaluation)
 Phân tích sự phát triển và độ lệch (Evolution and deviation analyst)
 Phương pháp tìm kiếm (Search method)
Trong số các phương pháp khai phá dữ liệu trên, có 3 phương pháp được sử
dụng nhiều đó là: Luật kết hợp, Phân lớp dữ liệu và Phân cụm dữ liệu.
Phân lớp dữ liệu: Khái niệm phân lớp dữ liệu được Han và Kamber đưa ra
năm 2000. Phân lớp dữ liệu là xây dựng một mô hình mà có thể phân các đối
tượng thành những lớp để dự đoán giá trị bị mất tại một số thuộc tính của dữ liệu
hay tiên đoán giá trị của dữ liệu sẽ xuất hiện trong tương lai.
Quá trình phân lớp dữ liệu được thực hiện qua 2 bước:
Dựa vào tập hợp dữ liệu huấn luyện, xây dựng một mô hình mô tả những
đặc trưng của những lớp dữ liệu hoặc những khái niệm, đây là quá trình
học có giám sát, học theo mẫu được cung cấp trước.


9


Từ những lớp dữ liệu hoặc những khái niệm được xác định trước, dự đoán
giá trị của những đối tượng quan tâm.
Một kỹ thuật phân lớp dữ liệu được Han và Kamber đưa ra là cây quyết
định. Mỗi nút của cây đại diện một quyết định dựa vào giá trị thuộc tính tương
ứng.
Phân nhóm dữ liệu: Phân nhóm là kỹ thuật khai phá dữ liệu tương tự như
phân lớp dữ liệu. tuy nhiên, sự phân nhóm là quá trình học không giám sát, là quá
trình nhóm những đối tượng vào trong những lớp tương đương, những đối tượng
trong cùng nhóm phải tương đương nhau và khác với những đối tượng khác trong
các nhóm khác. Trong phân nhóm đối tượng, những đối tượng được nhóm lại
cùng nhau dựa vào sự giống nhau của chúng. Sự giống nhau giữa những đối
tượng được xác định bởi những chức năng giống nhau. Thông thường sự giống
nhau về định lượng như khoảng cách hoặc độ đo khác được xác định bởi những
chuyên gia trong lĩnh vực.
1.5. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu
Dựa vào những kiểu dữ liệu mà kỹ thuật khai phá áp dụng, có thể chia dữ
liệu thành các loại khác nhau:
Cơ sở dữ liệu quan hệ: Đến nay hầu như dữ liệu được lưu trữ dưới dạng cơ
sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ có cấu trúc cao, dữ liệu được
mô tả bởi một tập các thuộc tính và lưu trong bảng. Khai phá dữ liệu trên
cơ sở dữ liệu quan hệ chủ yếu tập trung khai phá mẫu.
Cơ sở dữ liệu giao tác: là tập hợp những bản ghi giao dịch , trong đa số các
trường hợp chúng là những bản ghi các dữ liệu hoạt động của doanh
nghiệp, tổ chức. Khai phá dữ liệu trên cơ sở dữ liệu giao tác tập trung vào
khai phá luật kết hợp tìm mối tương quan giữa những mục dữ liệu của bản
ghi giao dịch.

Cơ sở dữ liệu không gian: bao gồm hai phần: dữ liệu quan hệ (hay giao tác)
và thông tin định vị (hoặc thông tin địa lý). Những luật kết hợp trên cơ sở
dữ liệu không gian mô tả mối quan hệ giữa các đặc trưng trong cơ sở dữ
liệu không gian. Dạng của luật kết hợp không gian có dạng X -> Y với

10


X,Y là tập hợp những vị từ không gian. Những thuật toán khai phá luật kết
hợp không gian tương tự như khai phá luật kết hợp nhưng thêm những vị
từ không gian.
Cơ sở dữ liệu có yếu tố thời gian: Giống như cơ sở dữ liệu có yếu tố không
gian, cơ sở dữ liệu này bao gồm hai phần: Dữ liệu quan hệ (hay giao tác)
và Thông tin về thời gian xuất hiện dữ liệu ở phần 1. Những luật kết hợp
thời gian có nhiều thông tin hơn những luật kết hợp cơ bản.
Cơ sở dữ liệu đa phương tiện: số lượng trang Web đang bùng nổ trên thế
giới, thông tin trên Web đang phát triển với tốc độ cao vì vậy việc khai
phá thông tin trên Web (Web mining) đã trở thành một lĩnh vực nghiên
cứu chính của khai phá dữ liệu và đang được quan tâm. Khai phá dữ liệu
trên Web được chia thành 3 phạm trù chính: Khai phá cách sử dụng Web
(Web usage mining), khai phá cấu trúc Web (Web structure mining) và
khai phá nội dung Web (Web content mining). Khai phá cách dùng Web
tập trung vào việc khai phá thông tin của người truy cập Web.
1.6. Các ứng dụng của khai phá dữ liệu
Khai phá dữ liệu tuy là một lĩnh vực mới nhưng đang thu hút được sự quan
tâm của rất nhiều nhà nghiên cứu, nhờ đó nó có nhiều những ứng dụng trong
thực tiễn, điển hình như:
 Phân tích dữ liệu và hỗ trợ ra quyết định.
 Phân lớp văn bản, tóm tắt văn bản, phân lớp các trang Web và phân cụm
ảnh màu.

 Chuẩn đoán triệu chứng, phương pháp trong điều trị y học.
 Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền trong 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 trong tài
chính, thị trường và chứng khoán.
 Phân tích dữ liệu marketing, khách hang.
 Điều khiển và lập lịch trình.
 Bảo hiểm, Giáo dục, Y tế……

11


1.7. Các thách thức và khó khăn trong khai phá dữ liệu
Khai phá dữ liệu liên quan đến nhiều ngành, nhiều lĩnh vực trong thực tế, vì
vậy các thách thức và khó khăn ngày càng nhiều, càng lớn hơn. Dưới đây là một
số khó khăn cần được quan tâm và giải quyết:
 Các cơ sở dữ liệu lớn, các tập dữ liệu cần xử lý có kích thước lớn. Thực tế,
kích thước của các tập dữ liệu thường ở mức tera- byte .
 Mức độ nhiễu cao hoặc dữ liệu bị thiếu.
 Số chiều các thuộc tính lớn.
 Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không
còn phù hợp.
 Quan hệ giữa các trường phức tạp.
 Việc giao tiếp với người sử dụng và kết hợp các tri thức.
 Tích hợp với các hệ thống khác.
Cơ sở dữ liệu có thể lớn về số lượng các bản ghi, về số lượng các thuộc tính
trong CSDL . Để giải quyết vấn đề này, người ta đưa ra một ngưỡng nào đó cho
CSDL bằng các cách như chiết xuất mẫu, xấp xỉ hoặc xử lý song song.
Để khắc phục việc dữ liệu thay đổi phụ thuộc theo thời gian ta cần phải
chuẩn hóa,cải tiến, nâng cấp các mẫu, các mô hình và có thể xem các thay đổi
này là mục đích của khai phá và tìm kiếm các mẫu bị thay đổi.

Với thuộc tính không phù hợp, các bộ giá trị không đầy đủ, bị thiếu giá trị
trong các miền thuộc tính… người ta sẽ coi sự thiếu vắng của các dữ liệu này là
giá trị ẩn, chưa biết và có thể được tiên đoán bằng một số phương pháp nào đó.
Với những Quan hệ phức tạp giữa các thuộc tính trong CSDL đòi hỏi phải
có các giải pháp, các kỹ thuật để có thể áp dụng được, nhận ra được các mối quan
hệ này trong quá trình khai phá dữ liệu.

12


CHƯƠNG 2. TỔNG QUAN VỀ 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
2.1.1. Khái niệm về 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 kỹ thuật trong Khai phá dữ liệu 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 quan trọng trong tập dữ liệu
lớn từ đó cung cấp thông tin tri thức hữu ích cho việc ra quyết định.
Không giống như 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ể coi phân cụm dữ liệu
là 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 như 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.Phân cụm dữ liệu đang là vấn đề mở
và khó vì người ta cần phải đi giải quyết nhiều vấn đề cơ bản về dữ liệu để nó
phù hợp với nhiều dạng dữ liệu khác nhau như dữ liệu chứa nhiễu do quá trình
thu thập thiếu chính xác, không tường minh hoặc là các đối tượng dữ liệu khuyết
thiếu thông tin về môt số thuộc tính… hoặc dữ liệu hỗn hợp đang ngày càng tăng
trong các hệ quản trị dữ liệu.

2.1.1.1. Mục tiêu của phân cụm dữ liệu
Mục tiêu của phân cụm dữ liệu là xác định được bản chất nhóm trong tập
dữ liệu chưa có nhãn. Nó có thể là không có tiêu chuẩn tuyệt đối “tốt” mà có thể
không phụ thuộc vào kết quả phân cụm. Vì vậy, nó đòi hỏi người sử dụng phải
cung cấp tiêu chuẩn phân cụm một cách rõ ràng theo cách mà kết quả phân cụm
sẽ đáp ứng yêu cầu.
Hiện nay chưa có một phương pháp phân cụm tổng quát nào có thể giải
quyết chọn vẹn cho tất cả các dạng cấu trúc dữ liệu. Hơn nữa, các phương pháp
phân cụm cần có một cách thức biểu diễn cấu trúc của dữ liệu, và với mỗi cách
thức biểu khác nhau sẽ có tương ứng một thuật toán phân cụm phù hợp.

13


2.1.1.2. Các yêu cầu đối với kỹ thuật phân cụm dữ liệu
 Việc phân cụm dữ liệu đều nhằm thỏa mãn các yêu cầu cơ bản sau:
 Có khả năng mở rộng
 Thích nghi với các kiểu dữ liệu khác nhau.
 Khám phá ra các cụm với hình thù bất kỳ.
 Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào.
 Ít nhạy cảm với thứ tự của dữ liệu vào.
 Thích nghi với dữ liệu nhiễu cao.
 Ít nhạy cảm với các tham số đầu vào.
 Thích nghi với dữ liệu đa chiều.
 Dễ hiểu, dễ cài đặt và khả thi.
2.1.1.3. Các kiểu dữ liệu và các thuộc tính trong phân cụm
Bao gồm 2 kiểu dữ liệu:
Dữ liệu dựa trên kích thước miền:
Thuộc tính liên tục (Continuous Attribute) : nếu miền giá trị của nó là vô
hạn không đếm được

Thuộc tính rời rạc (DiscretteAttribute) : Nếu miền giá trị của nó là tập hữu
hạn, đếm được
Lớp các thuộc tính nhị phân: là trường hợp đặc biệt của thuộc tính rời rạc
mà miền giá trị của nó chỉ có 2 phần tử được diễn tả như : Yes / No hoặc
Nam/Nữ, False/true,…
Dữ liệu dựa trên hệ đo:
Giả sử rằng chúng ta có hai đối tượng x, y và các thuộc tính xi, yi tương ứng
với thuộc tính thứ i của chúng. Chúng ta có các lớp kiểu dữ liệu như sau :
 Thuộc tính định danh (nominal Scale): đây là dạng thuộc tính khái quát hoá
của thuộc tính nhị phân, trong đó miền giá trị là rời rạc không phân biệt thứ
tự và có nhiều hơn hai phần tử - nghĩa là nếu x và y là hai đối tượng thuộc
tính thì chỉ có thể xác định là x  y hoặc x = y.

14


 Thuộc tính có thứ tự (Ordinal Scale) : là thuộc tính định danh có thêm tính
thứ tự, nhưng chúng không được định lượng. Nếu x và y là hai thuộc tính
thứ tự thì ta có thể xác định là x  y hoặc x = y hoặc x > y hoặc x  Thuộc tính khoảng (Interval Scale) : Với thuộc tính khoảng, chúng ta có thể
xác định một thuộc tính là đứng trước hoặc sau thuộc tính khác với một
khoảng là bao nhiêu. Nếu xi > yi thì ta nói x cách y một khoảng xi – yi
tương ứng với thuộc tính thứ i.Sau khi chuẩn hoá, độ đo phi tương tự của
hai đối tượng dữ liệu x, y được xác định bằng các metric khoảng cách như
sau :
1/ q

n
Khoảng cách Minskowski : d ( x , y )  (  | x  y | q )
i

i

, trong đó q là số tự

i 1

nhiên dương.
Khoảng cách Euclide : d ( x , y ) 

n
2
 ( x i  y i ) , đây là trường hợp đặc biệt
i 1

của khoảng cách Minskowski trong trường hợp q=2.
n
Khoảng cách Manhattan : d ( x, y )   | xi  yi | , đây là trường hợp đặc biệt
i 1
của khoảng cách Minskowski trong trường hợp q=1.
Khoảng cách cực đại : d ( x, y )  Max n | xi  yi | , đây là trường hợp của
i 1
khoảng cách Minskowski trong trường hợp q-> .
 Thuộc tính tỉ lệ (Ratio Scale) : 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, thí dụ như thuộc tính chiều cao hoặc
cân nặng lấy điểm 0 làm mốc. Có nhiều cách khác nhau để tính độ tương
tự giữa các thuộc tính tỷ lệ. Có thể sử dụng công thức tính logarit cho mỗi
thuộc tính xi.
Trong các thuộc tính dữ liệu trình bày ở trên, thuộc tính định danh và thuộc
tính có thứ tự gọi chung là thuộc tính hạng mục (Categorical), thuộc tính khoảng
và thuộc tính tỉ lệ được gọi là thuộc tính số (Numeric).


15


2.1.2. Các kỹ thuật tiếp cận trong phân cụm dữ liệu
Có nhiều cách tiếp cận và các ứng dụng trong thực tế nhưng tất cả đều
hướng tới hai mục tiêu chung đó là chất lượng của các cụm khám phá được và
tốc độ thực hiện các thuật toán. Các kỹ thuật đó có thể phân loại theo các cách
tiếp cận chính sau:
2.1.2.1. Phương pháp phân cụm phân hoạch
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử thành k nhóm
cho đến khi xác định số các cụm được thiết lập. Phương pháp này tốt với việc tìm
các cụm hình cầu trong không gian Euclidean.
Phương pháp này cũng phụ thuộc vào khoảng cách cơ bản giữa các điểm để
lựa chọn các điểm dữ liệu có quan hệ là gần nhau với mỗi điểm khác và các điểm
dữ liệu nào không có quan hệ hoặc có quan hệ là xa nhau so với điểm khác.
Nhược điểm:
 Phương pháp này không thể xử lí các cụm có hình dạng kỳ quặc hoặc các
cụm có mật độ các điểm dầy đặc.
 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 đề Phân cụm dữ liệu do nó phải tìm kiếm
tất cả các cách phân hoạch có thể được
Trên thực tế 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ụm cũng như để hướng
dẫn cho quá trình tìm kiếm phân hoạch dữ liệu. Ý tưởng chính của thuật toán
phân hoạch tối ưu cục bộ là sử dụng chiến lược ăn tham (Greedy) để tìm kiếm
nghiệm.
2.1.2.3. Phương pháp phân cụm phân cấp
Ý tưởng của phương pháp này là xây dựng một phân cấp trên cơ sở các đối
tượng dữ liệu đang xem xét, nghĩa là 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ó 2 cách phổ biến đó là:
 Bottom –up (hòa nhập nhóm)
 Top- down (phân chia nhóm)

16


Hình 4: Các chiến lược phân cụm phân cấp
Có nhiều trường hợp kết hợp cả hai phương pháp phân cụm phân hoạch và
phân cụm phân cấp, nghĩa là kết quả thu được của phương pháp phân cấp có thể
cải tiến thông qua bước phân cụm phân hoạch.
2.1.2.3. Phương pháp phân cụm dựa trên mật độ
Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ xác định, mật
độ là số các đối tượng lân cận của một đối tượng dữ liệu theo một nghĩa nào
đó.Với cách tiếp cận này, khi dữ liệu đã được xác định thì nó tiếp tục phát triển
them các đối tượng dữ liệu mới miễn là số các đối tượng lân cận này phải lớn
hơn một ngưỡng đã được xác định trước.
Ưu điểm:
 Phát hiện ra được các cụm dữ liệu với hình thù bất kỳ.
 Khắc phục được phần tử ngoại lai hoặc trị nhiễu tốt.
Nhược điểm:
 Việc xác định các tham số mật độ của thuật toán là khó khăn trong khi các
tham số này lại có tác động rất lớn đến kết quả phân cụm.

17


2.1.2.4. Phân cụm dựa trên lưới
Phương pháp này thích hợp với dữ liệu nhiều chiều, dựa trên cấu trúc dữ

liệu để phân cụm, nó chủ yếu tập trung áp dụng cho lớp dữ liệu không gian.
Mục tiêu của phương pháp:
 Lượng hóa các dữ liệu thành các ô tạo thành cấu trúc dữ liệu lưới.
 Các thao tác phân cụm chỉ cần làm việc với các đối tượng trong từng ô
trên lưới chứ không phải các đối tượng dữ liệu.
 Cách tiếp cận này không di chuyển các đối tượng trong các ô mà xây dựng
nhiều mức phân cấp của nhóm các đối tượng trong một ô.
 Phương pháp này gần giống với phương pháp phân cụm phân cấp nhưng
chúng không trộn các ô.

Hình 5: Cấu trúc phân cấp
Ưu điểm:
 Khắc phục yêu cầu đối với dữ liệu nhiều chiều mà phương pháp phân cụm
dựa trên mật độ không giải quyết được.
 Thời gian xử lý nhanh và độc lập đối với một số đối tượng dữ liệu trong
tập dữ liệu ban đầu. chúng phụ thuộc vào số ô trong mỗi chiều của không
gian lưới.

18


2.1.2.5. Phân cụm dựa trên mô hình
Ý tưởng của phương pháp:
 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.
 Có thể sử dụng chiến lược phân cụm phân hoạch hoặ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
chúng hiệu chỉnh các mô hình này để nhận dạng ra các phân hoạch.
 Cố gắng khớp giữa các dữ liệu với mô hình toán học, nó dựa trên giả định
rằng dữ liệu được tạo ra bằng hỗn hợp phân phối xác suất cơ bản.

Phương pháp có hai cách tiếp cận chính:
 Mô hình thống kê
 Mạng nơron
Phương pháp này gần giống với phương pháp phân cụm dựa trên mật độ vì
chúng phát triển các cụm riêng biệt nhằm cải tiến các mô hình đã được xác định
trước đó, có khi nó không băt đầu với một số cụm cố định và không sử dụng
cùng một khái niệm mật độ cho các cụm.
2.1.2.6. Phân cụm có dữ liệu ràng buộc
Các thuật toán trên hầu hết cung cấp ít cách thức cho người dung để xác
định các ràng buộc trong thế giới thực cần phải thỏa mãn quá trình phân cụm. Vì
vậy, để phân cụm dữ liệu không gian hiệu quả hơn, các nghiên cứu bổ sung cần
được thực hiện để cung cấp cho người dùng khả năng kết hợp các ràng buộc
trong thuật toán phân cụm.

19


Hình 6: Các cách mà cụm có thể đưa ra
Một số nhánh nghiên cứu được phát triển trên cơ sở của phương pháp này:
Phân cụm thống kê: dựa trên các khái niệm phân tích hệ thống, người ta sử dụng
các độ đo tương tự để phân hoạch các đối tượng nhưng chúng chỉ áp dụng cho
các dữ liệu có thuộc tính số.
 Phân cụm khái niệm: áp dụng cho dữ liệu hạng mục, chúng phân cụm các
đối tượng theo các khái niệm mà chúng xử lý.
 Phân cụm mờ: sử dụng kỹ thuật phân cụm mờ để phân cụm dữ liệu, các
thuật toán này chỉ ra lược đồ phân cụm thích hợp với tất cả các hoạt động
đời sống hàng ngày, chúng xử lý dữ liệu thực không chắc chắn.
 Phân cụm mạng Kohonen: loại phân cụm này dựa trên khái niệm của
mạng nơron. Mạng Kohonen có:
 Tầng nơron vào: Mỗi nơron vào tương ứng với mỗi thuộc tính của

bản ghi, mỗi nơron vào kết nối với tất cả các nơron của tầng ra
 Tầng nơron ra.
Mỗi liên kết được gắn liền với một trọng số nhằm xác định vị trí của nơron
ra tương ứng.

20


2.1.3.Một số phương pháp trong phân cụm dữ liệu
2.1.3.1. Các thuật toán trong phân cụm phân hoạch
Ý tưởng chung của thuật toán trong phân cụm phân cụm phân hoạch: 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 một phần
tử dữ liệu. Thuật toán phân cụm phân hoạch tối ưu cục bộ là sử dụng chiến lược
ăn tham để tìm kiếm nghiệm.
Dưới đây là một số thuật toán được sử dụng rộng rãi:
Thuật toán K-Means:
Ý tưởng : dựa trên độ đo khoảng cách của các đối tượng dữ liệu trong cụm.
Thực tế, nó đo khoảng cách tới giá trị trung bình của các đối tượng dữ liệu trong
cụm. Nó được xem như là trung tâm của cụm. Như vậy, nó khởi tạo một tập
trung tâm các cụm trung tâm ban đầu và thông qua đó nó lặp lại các bước gồm
gán mỗi đối tượng tới cụm mà trung tâm gần nhất và tính toán tại trung tâm của
mỗi cụm trên cơ sở gán mới cho các đối tượng. Quá trình lặp này dừng khi các
trung tâm hội tụ.

Hình 7: Thiết lập để xác định danh giới các cụm ban đầu

21



Mục đích: sinh ra k cụm dữ liệu {C1,C2…, Ck} từ một tập dữ liệu ban đầu
gồm n đối tượng trong không gian d chiều Xi = (xi1,xi2, …, xid) )(i=1..n), sao cho
hàm tiêu chuẩn: E  k  xC D 2 ( x  m i ) đạt giá trị tối thiểu.
i
i 1

Với mi là trọng tâm của cụm Ci, D là khoảng cách giữa hai đối tượng.

Hình 8: Tính toán trọng tâm các cụm mới
Thuật toán phân hoạch K-means do MacQeen đề xuất trong lĩnh vực thống
kê năm 1967, mục đích của thuật toán k-means là sinh ra k cụm dữ liệu {C1, C2,
…,Ck} từ một tập dữ liệu chứa n đối tượng trong không gian d chiều Xi = (xi1, xi2,
…, xid) ( i  1, n ), sao cho hàm tiêu chuẩn : E  k  xC D 2 ( x  m i )
i

(2.1)

i 1

đạt giá trị tối thiểu. Trong đó : mi là trọng tâm của cụm Ci, D là khoảng cách giữa
hai đối tượng ( khoảng cách Euclide). Trọng tâm của một cụm là một véc tơ,
trong đó giá trị của mỗi phần tử của nó là trung bình cộng của các thành phần
tương ứng của các đối tượng vectơ dữ liệu trong cụm đang xét. Tham số đầu vào
của thuật toán là số cụm k, và tham số đầu ra của thuật toán là các trọng tâm của
các cụm dữ liệu. K-means bao gồm các bước cơ bản như sau:
InPut : Số cụm k và các trọng tâm cụm {mj}kj=1 ;


OutPut : Các cụm Ci  i  1, k  và hàm tiêu chuẩn E đạt giá trị tối thiểu




22


Begin
Bước 1: Khởi tạo :Chọn k trọng tâm {mj}kj=1 ban đầu trong không gian Rd
(d là số chiều của dữ liệu, việc chọn có thể ngẫu nhiên hoặc theo kinh
nghiệm)
Bước 2 : Tính toán khoảng cách :
Đối với mỗi điểm Xi (1<=i<=n), tính toán khoảng cách của nó tới
mỗi trọng tâm mj j=1,k.
Tìm trọng tâm gần nhất đối với mỗi điểm.
Bước 3 : Cập nhật lại trọng tâm :
Đối với mỗi j=1,k , cập nhật trọng tâm cụm mj bằng các xác định
trung bình cộng của các vectơ đối tượng dữ liệu.
Bước 4 : Điều kiện dừng:
Lặp các bước 2 và 3 cho đến khi các trọng tâm của cụm không thay đối.
Nhận xét: Độ phức tạp của thuật toán là OTkn với T là số lần lặp, n số đối
tượng của tập dữ liệu đưa vào.
Ưu điểm:
 Độ phức tạp nhỏ: O(nkd.t), với :d là số chiều, t số vòng lặp.
 K-means phân tích phân cụm đơn giản nên có thể áp dụng đối với tập dữ
liệu lớn.
Nhược điểm:
 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, chỉ áp dụng với dữ liệu số
 Nó không khắc phục được nhiễu và các phần tử ngoại lai.
 Chất lượng phân cụm phụ thuộc vào nhiều tham số đầu vào như: số cụm k
và k trọng tâm khởi tạo ban đầu.

 Số lượng và các tham số là do người dùng nhập, nên nếu đầu vào khác
nhau thì kết quả các cụm sẽ khác nhau

23


Thuật toán K-tâm:
Ý tưởng :Thuật toán K-tâm phân cụm dữ liệu hỗn hợp là mở rộng của thuật
toán K-means cho dữ liệu hỗn hợp trong đó có sử dụng khái niệm Mode của dữ
liệu hỗn hợp, khi đã mở rộng các miền giá trị của thuộc tính có thứ tự và xác định
khoảng cách giữa các đối tượng.
Thuật toán này hội tụ sau một số hữu hạn bước lặp tới điểm cực tiểu địa



phương của hàm P như sau: p  k

j
2
 d x, z
j 1 xC j

Ta xét D là tập N đối tượng x

i



N


i1



(2.2)

i , x i ,..., x i )
trong đó ( x i  x i ,..., xm
n
1
m1

là phần tử của quan hệ r trên lược đồ quan hệ R = {A1,..., An} và x ij  Dom(Aj)
với mỗi j  m là các giá trị thực còn với m  1  j  n là các giá trị định danh.
Dưới đây em xin đưa ra một số khái niệm sử dụng trong dữ liệu hỗn hợp:
a) Mode của tập dữ liệu hỗn hợp.
Định nghĩa. Giả sử C là tập con của tập dữ liệu hỗn hợp D.
i) Với mọi j  n, j-mode của C ( kí kiệu là j-mode(C)) là giá trị có tần xuất
nhiều nhất trong thuộc tính Aj của C nếu A là thuộc tính định danh và là trung
bình cộng của các giá trị thuộc tính Aj của C khi Aj là thuộc tính số. Nếu Aj là
thuộc tính định danh và có nhiều giá trị có tần xuất như nhau trong C thì jmode(C) có thể không duy nhất và ta chọn giá trị nào cũng được.
ii) Mode của tập hợp C ký hiệu là mode(C) là phần tử z = (z1,..., zn) trong
đó : zj = j-mode(C), j  n
b) Metric trên dữ liệu hỗn hợp.
Trong lược đồ quan hệ R, miền giá trị của các thuộc tính Aj có thể là tập số
thực, định danh hay là tập có thứ tự.
Định nghĩa 1: Giả sử DOM(Aj) là miền giá trị của thuộc tính Aj. Ta có các
khái niệm sau:
i) Thuộc tính định danh: Aj được gọi là thuộc tính định danh nếu DOM(Aj)
là tập không có thứ tự, tức là  a,b  DOM(Aj), hoặc a = b hay a  b.

ii) Thuộc tính số: Aj thuộc tính số nếu DOM(Aj) là tập số thực.

24


ii) Thuộc tính thứ tự: Nếu DOM(Aj) là tập hữu hạn và có thứ tự hoàn toàn
thì Aj được gọi là thuộc tính có thứ tự (chẳng hạn: DOM(Aj) = { không đau, hơi
đau, đau và rất đau}..
Trên miền giá trị DOM(Aj) của một thuộc tính Aj ta xác định các khoảng
cách như sau.
Định nghĩa 2:  x,y DOM(Aj) hàm dj(x,y) xác định bởi :
Nếu Aj là thuộc tính số thì dj(x,y)= x  y

(2.3)

Nếu Aj là thuộc tính thứ tự và DOM(Aj) = a 1j ,..., a kj  với a 1j  a 2j  ...  a kj , ta
lấy một hàm đơn điệu fj: DOM(Aj)→ [0,1] sao cho f j (a 1j )  0; f j (a kj )  1 (Hàm

i 1
này có thể là : f j ( a ij ) 
). Khi đó dj(x,y)= │fj(x) - fj(y) │
k 1
0 khi : x  y
 1 khi : x  y

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

(2.4)
(2.5)


Định nghĩa khoảng cách giữa hai đối tượng dữ liệu hỗn hợp:
Định nghĩa 3: Giả sử x = (x1,..., xn) và y = (y1,..., yn) là hai đối tượng dữ
liệu hỗn hợp trên D, khoảng cách d(x, y) được tính bởi công thức:
d ( x, y ) 

n 2 2
  j d j (x j , y j )
j 1

(2.6)

Trong đó các dj (xj, yj) được tính theo các công thức (2.3 -2.5) và  j là các
trọng số dương cho bởi các chuyên gia.
Ta 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. Ta có định
lý sau:
Định lý . Thuật toán trên hội tụ sau một số hữu hạn bước lặp tới điểm cực
tiểu địa phương của hàm E: E 

k
j
d 2 ( x, z )


j  1 x c j

Các bước của thuật toán:
Begin
Chọn các trọng số  j , các hàm fj, xác định k.


25

(2.7)


×