Tải bản đầy đủ (.docx) (27 trang)

Tổng quan về khai thác dữ liệu và phân cụm dữ liệu bằng thuật toán 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 (717.19 KB, 27 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÁO CÁO THU HOẠCH MÔN HỌC
KHAI THÁC DỮ LIỆU VÀ ỨNG DỤNG
Đề tài:
Tổng quan về khai thác dữ liệu và
phân cụm dữ liệu bằng thuật toán
K-Means

Giảng viên : PGS.TS. Đỗ Phúc
Sinh viên thực hiện: Tăng Chí Tâm
MSSV : CH1101130

TP. HCM, NĂM 2012
Lời mở đầu
Ngày nay, sự phát triễn của khoa học - kỹ thuật đã mang đến cho chúng ta
một khối lượng thông tin khổng lồ, con người khó có thể xử lý khối lượng thông
tin này để tìm ra các thông tin hữu ích phục vụ cho nhu cầu của mình. Chính vì lý
do này mà các kỹ khai thác dữ liệu dã ra đời.
Bài viết này nhằm giới thiệu một cách nhìn tổng quát về vấn đề khai thác dữ
liệu và giới thiệu thuật toán K-Means, một trong những thuật toán thường dùng để
phân cụm dữ liệu phục vụ cho quá trình khai thác dữ liệu.
Nội dung bài viết gồm:
• Chương 1: Tổng quan về khai thác dữ liệu: Chương này giới
thiệu những thông tin cần thiết để chúng ta có cái nhìn tổng
quát về vấn đề khai thác dữ liệu
• Chương 2: Phân cụm dữ liệu : Giới thiệu các thông tin xung
quanh vấn đề “ Phân cụm” các dữ liệu và hướng dẫn các bước
phân cụm dữ liệu bằng thuật toán K-Means
• Chương 3: Chương trình minh họa KTDL bằng thuật toán K-


Means
Cảm ơn Thầy và các anh chị đã cung cấp những tài liệu liên quan đến đề tài.
Mục Lục
CHƯƠNG 1 : Tổng quan về khai thác dữ liệu
1.1.Giới thiệu
Với sự phát triễn nhanh chóng của khoa học kỹ thuật trong tất cả các lĩnh vực
của đời sống, kinh tế, xã hội…, chúng ta đã đạt được những thành tựu to lớn. Một
trong những thành tựu đó là sự bùng nổ thông tin, khối lượng thông tin mà ta thu
thập và lưu trữ ngày càng nhiều. Trong khối thông tin ấy có chứa nhiều tri thức mà
con người chưa khám phá ra được. Do lượng dữ liệu thu thập được là rất lớn nên
việc khám phá tri thức và thông tin trở nên rất khó khăn. Chính vì thế mà nhu cầu
tìm kiếm tri thực đã nảy sinh, nhu cầu này ngày một cấp thiết và dẫn tới sự hình
thành của một lĩnh vực mới – lĩnh vực khai thác dữ liệu (Data Mining)-(KTDL).
1.2.Khai thác dữ liệu là gì ?
Khai thac dữ liệu (Data Mining) được định nghĩa là quá trình trích lọc các thông
tin có giá trị tiềm ẩn trong lượng lớn dữ liệu được lưu trữ trong các CSDL hay các
kho dữ liệu. Khai thác dữ liệu còn được coi là quá trình khám phá, tìm kiếm các
mối tương quan, các mối liên hệ dưới nhiều góc độ khác nhau đang bị che khuất
trong khối dữ liệu. Để tìm ra các thông tin tiềm ẩn này, ta phải tìm và áp dụng các
phương pháp kỹ thuật khai thác sao cho các phương pháp này phù hợp với tính
chất, đặc trưng của dữ liệu và mục đích sử dụng.
Cần phân biệt giữa quá trình tìm kiếm thông tin và quá trình khai thác dữ liệu.
Ví dụ:
Tìm kiếm thông tin(không phải Data
Mining)
Khai thác dữ liệu
- Tìm số điện thoại trong danh bạ điện
thoại
- Tìm thông tin về “Amazon” trên mạng
-Các tên phổ biến ở Boston

-Gom nhóm các tài liệu giống nhau thu
được từ search engine dựa theo nội dung
như: rừng nhiệt đới Amazon
5
1.3.Các nhiệm vụ chính của khai thác dữ liệu
Mô hình mô tả mục tiêu khai thác dữ liệu
Việc khai thác dữ liệu nhằm các mục đích chính như sau:
- Dự đoán (predictive): thực hiện việc suy luận trên dữ liệu để đưa ra các dự
báo nhằm phân tích tập dữ liệu huấn luyện và tạo ra một mô hình cho phép
dự đoán các mẫu, mô hình mới chưa biết, thông qua các phương pháp
o Phân lớp
o Hồi quy
o Phát hiện sự thay đổi/ lạc hướng
- Mô tả (Descriptive) : 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,
thông qua các phương pháp:
o Phân cụm
o Tóm tắt
o Mô hình hóa phụ thuộc
1.4.Quá trình khai thác dữ liệu
Quá trình KTDL gồm các bước như hình sau:
6
Quá trình khai thác dữ liệu
- 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 và tiền xử lý dữ liệu thu thập được
sao cho thuật toán KTDL có thể hiểu được. Đây là một quá trình rất khó
khăn, có thể gặp phải rất nhiều các vướng mắc như: dữ liệu phải được chép
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 (nếu mô hình dữ liệu thay đổi), v.v

- Thuật toán khai phá dữ liệu: Lựa chọn thuật toán KTDL và thực hiện việc
KTDL để tìm được các mẫu có ý nghĩa, các mẫu này được biểu diễn dưới
dạng luật kết hợp, cây quyết định tương ứng với ý nghĩa của nó.
1.5.Một số kỹ thuật áp dụng trong khai thác dữ liệu
Vấn đề khai thác dữ liệu có thể phân chia theo lớp các hướng tiếp cận sau:
1.5.1.Phân lớp và dự đoán
Hướng tiếp cận này làm nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn
trên dữ liệu hiện thời. Kỹ thuật này gồm có: phân lớp (classification), hồi quy
(regression) Là quá trình xếp một đối tượng vào một trong những lớp đã
biết trước. Đối với hướng tiếp cận này thường sử dụng một số kỹ thuật của
học máy như cây quyết định (decision tree), mạng neural nhân tạo (neural
network),
1.5.2.Phân cụm dữ liệu
Mục tiêu của phương pháp phân cụm dữ liệu là quá trình nhóm các điểm
dữ liệu trong cơ sở dữ liệu thành các cụm sao cho những điểm dữ liệu trong
cùng một cụm có độ tương đồng lớn và những điểm không cùng một cụm có
sự tương đồng là rất nhỏ. Điểm mạnh của phân cụm dữ liệu là đưa ra được
những cấu trúc có ích hoặc những cụm các đối tượng tìm thấy trực tiếp từ dữ
liệu mà không cần bất kì một tri thức cơ sở nào. Giống như cách tiếp cận học
máy, phân cụm dữ liệu được hiểu như là phương pháp “học không có thầy”
(unsupervised learning). 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 (learning by
observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by
example). Trong phương pháp này sẽ không thể biết kết quả các cụm thu được
sẽ như thế nào khi bắt đầu quá trình. Vì vậy, cần có một chuyên gia để đánh
giá các cụm thu được. Phân cụm dữ liệu được sử dụng nhiều trong các ứng
7
dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân
loại trang Web… 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.
1.5.3.Phân lớp dữ liệu và hồi quy
Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các
mẫu dữ liệu. Quá trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô
hình và sử dụng mô hình:
- Bước 1: một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu
dữ liệu sẵn có. Mỗi mẫu tương ứng với một lớp, được quyết định bởi
một thuộc tính gọi là thuộc tính lớp. Các mẫu dữ liệu này còn được gọi
là tập dữ liệu huấn luyện (training data set). Các nhãn lớp của tập dữ
liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình, vì
vậy phương pháp này còn được gọi là học có thầy (supervised learning)
khác với phân cụm dữ liệu là học không có thầy (unsupervised
learning).
- Bước 2: sử dụng mô hình để phân lớp dữ liệu. Trước hết phải tính độ
chính xác của mô hình. Nếu độ chính xác là chấp nhận được, mô hình sẽ
được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương
lai. Phương pháp hồi qui khác với phân lớp dữ liệu ở chỗ, hồi qui dùng
để dự đoán về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dự
đoán về các giá trị rời rạc.
1.5.4.Luật kết hợp
Đây là sự kết hợp một hoặc nhiều thuộc tính đối với một hoặc nhiều thuộc
tính khác.
Khái niệm về luật kết hợp được biểu diễn như sau: một luật có dạng X→Y
(c%) với X và Y là tập các thuộc tính với độ tin cậy là c% được coi là luật kết
hợp nếu có ít nhất c% đối tượng trong cơ sở dữ liệu đang xét thoả mãn: nếu
điều kiện X được thoả mãn thì điều kiện Y cũng thoả mãn.
Ví dụ: Xét luật kết hợp: is(x, tã giấy và sữa) → close(x,bia) (66%). Luật trên
thể hiện: 66% khách hàng mua tã giấy và sữa thì có khả năng mua bia.
Do đó có rất nhiều thuộc tính có thể tạo thành những luật kết hợp khiến cho
số luật kết hợp tìm được vượt quá nhu cầu. Để hạn chế số luật kết hợp tìm được,

người ta sử dụng khái niệm hỗ trợ tối thiểu (min support) và độ tin cậy tối thiểu
(min confidence). Hai tham số này giúp loại bớt các luật tìm thấy và để lại các
luật thật sự có ích cho người sử dụng.
8
Hỗ trợ tối thiểu:
Độ hỗ trợ (Support) của luật kết hợp X →Y là tần suất của giao dịch chứa tất
cả các items trong cả hai tập X và Y. Ví dụ, support của luật X →Y là 5% có
nghĩa là 5% các giao dịch X và Y được mua cùng nhau.
Công thức để tính support của luật X →Y như sau:
Trong đó: N là tổng số giao dịch.
Trong CSDL lớn, có rất nhiều luật kết hợp giữa các dội tượng nhưng phần
lớn các luật đó chỉ áp dụng cho một số nhỏ các đối tượng. Chính vì thế mà phần
lớn các luật không có ích với người sử dụng. Ví dụ: Người ta sẽ không quan tâm
nhiều đến mối quan hệ giữa sữa và bia nếu luật đó chỉ áp dụng cho 5% số trường
hợp trong khi người ta chỉ quan tâm đến các luật có độ áp dụng trên 60%. Do đó
ta có thể bỏ những luật kết hợp mà chỉ áp dụng cho x% đối tượng.
Độ tin cậy tối thiểu:
Độ tin cậy (Confidence) của luật kết hợp X →Y là xác suất xảy ra Y khi đã
biết X. Ví dụ độ tin cậy của luật kết hợp {Táo} → Chuối} là 80% có nghĩa
là 80% khách hàng mua Táo cũng mua Chuối.
Công thức để tính độ tin cậy của luật kết hợp X → Y là xác suất có điều
kiện Y khi đã biết X như sau :
Trong đó: n(X) là số giao dịch chứa X
Nếu một luật được đưa ra với mức độ tin cậy (độ tin cậy là tỉ lệ số đối tượng
dữ liệu thoả mãn X và thoả mãn Y so với tổng số các đối tượng thoả mãn X)
thấp thì cũng không có ý nghĩa ứng dụng. Ví dụ như luật: số người bị bệnh tim
do ăn cá biển chỉ đúng 1% thì gần như không có ý nghĩa trong y học khi chuẩn
đoán nguyên nhân bị bệnh tim của một bệnh nhân. Do đó, chúng ta sẽ loại bỏ
những luật có độ tin cậy thấp mà chỉ giữ lại luật có độ tin cậy cao tỷ lệ đúng tối
thiểu c%.

1.5.5.Phân tích theo thứ tự thời gian
Tương tự như khai thác dữ liệu bằng luật kết hợp nhưng có thêm tính thứ tự
và tình thời gian. Xét luật 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 biến cố Y. Hướng tiếp cận này được ứng dụng nhiều trong
lĩnh vực tài chính và thị trường chứng khoán bởi chúng có tính dự báo cao.
9
1.5.6.Khai phá dữ liệu bằng mạng Neural
-Mạng Neural là một phương pháp khai phá dữ liệu phát triển dựa trên
cấu trúc toán học với khả năng học trên mô hình hệ thần kinh con người.
-Mạng Neural có thể đưa ra ý nghĩa các dữ liệu phức tạp hoặc không
chính xác và có thể được sử dụng để chiết suất các mẫu và phát hiện xu hướng
quá phức tạp mà con người cũng như các kỹ thuật máy tính khác không thể
phát hiện được.
-Một trong những ưu điểm của mạng Neural là khả năng tạo ra các mô
hình dự đoán do độ chính xác cao, có thể áp dụng cho nhiều các bài toán khác
nhau, đáp ứng được các nhiệm vụ đặt ra của khai phá dữ liệu như: phân lớp,
phân nhóm, mô hình hoá, dự báo…
-Mẫu chiết suất bằng mạng Neural được thể hiện bằng một trong những nút
đầu của mạng. Mạng Neural sử dụng các hàm số chứ không sử dụng các hàm
biểu tượng để tính mức tích cực của các nút đầu ra và cập nhật các trọng số của
nó.
-Đặc điểm của mạng Neural là không cần gia công dữ liệu nhiều, trước
khi bắt đầu quá trình học như các kỹ thuật khác. Tuy nhiên, để có thể sử dụng
mạng Neural có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:
• Mô hình mạng là gì ?
• Mạng cần bao nhiêu nút ?
• Số lớp ẩn sử dụng cho mạng là như thế nào ?
• Khi nào thì việc học dừng ?
Ngoài ra còn có nhiều bước quan trọng cần phải làm để tiền xử lý dữ liệu
trước khi đưa vào mạng Neural để mạng có thể hiểu được.

Mạng Neural được đóng gói với những thông tin trợ giúp của các chuyên
gia đáng tin cậy và được họ đảm bảo các mô hình này làm việt tốt. Sau khi
học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin mà nó
vừa được học.
1.5.7.Khai phá dữ liệu bằng giải thuật di truyền
Đây là phương pháp không chỉ thực hiện phát hiện tri thức mà còn phục
vụ rất nhiều bài toán khác. Tư tưởng của thuật toán là áp dụng quy luật của sự
chọn lọc tự nhiên. Người ta mô phỏng tập dữ liệu ban đầu bằng ký tự nhị
phân và gọi là những quần thể xuất phát. Bằng các thao tác lai ghép, đột biến
nhằm biến đổi quần thể gene ban đầu và loại đi một số gene, làm cho số lượng
gene trong quần thể là không thay đổi. Một hàm thích nghi được xây dựng để
xác định mức độ thích nghi ngày càng cao. Về mặt lý thuyết giải thuật di
truyền cho lời giải tối ưu toàn cục (khác với phương pháp mạng Neural). Tuy
nhiên, người ta cũng hạn chế lời giải với một mức độ thích nghi nào đó để hạn
chế số lượng các bước xây dựng quần thể.
10
Nói theo nghĩa rộng, giải thuật di truyền mô phỏng lại hệ thống tiến
hoá trong tự nhiên, chính xác hơn là giải thuật chỉ ra tập các cá thể được
hình thành, được ước lượng và biến đổi như thế nào. Ví dụ như xác định
xem làm thế nào để lựa chọn các cá thể tạo giống và lựa chọn các cá thể nào
để loại bỏ.
Giải thuật di truyền là một giải thuật tối ưu hoá, được sử dụng rất rộng rãi
trong việc tối ưu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật
mạng Neural. Sự kết hợp của nó với các giải thuật khai phá dữ liệu ở chỗ tối
ưu hoá là cần thiết để xác định các giá trị tham số nào tạo ra các luật tốt nhất.
1.5.8.Khai thác dữ liệu bằng cây quyết định
Phân lớp khai phá dữ liệu luật là cách tiếp cận quan trọng trong quá
trình khai phá dữ liệu, với mục tiêu nhằm tạo ra một tập luật tương đối nhỏ có
độ đúng đắn cao từ cơ sở dữ liệu lớn. Cây quyết định được cọi là phương
pháp tiếp cận truyền thống cho phép phân lớp luật . Cây quyết định đưa ra

cách tiếp cận heuristic nhằm tìm kiếm các thuộc tính tốt nhất và dẫn đến kết
quả cao nhất. Tuy nhiên, cây quyết định có một số hạn chế khi triển khai lựa
chọn thuộc tính khi xây dựng cây.
Hạn chế của cây quyết định là các trường hợp phân rã và tái tạo, vấn đề
khi phân rã là khi cây quyết định cần phân chia dữ liệu nhiều lần để có thể
nhận biết được toàn bộ dữ liệu mẫu. Vấn đề khi tái tạo là một cây con cần
được xây dựng lại nhiều lần làm cho cây quyết định có độ sâu quá lớn và khó
hiểu.
Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân các đối
tượng dữ liệu thành một số lớp nhất định. Các nút của cây được gán nhãn là
tên của các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc tính,
các lá mô tả các lớp khác nhau. Các đối tượng được phân lớp theo các đường
đi trên cây, qua các cạnh tương ứng với giá trị của thuộc tính của đối tượng tới
lá.
Quá trình xây dựng cây quyết định là quá trình phát hiện ra các luật
phân chia dữ liệu đã cho thành các lớp đã được định nghĩa. Trong thực tế, tập
các cây quyết định có thể có đối với bài toán này rất lớn và rất khó có thể
duyệt hết một cách tường tận.
Có nhiều phương pháp xây dựng cây quyết định khi khai phá dữ liệu, đó là
các phương pháp sử dụng các thuật toán ID3, C4.5,… và một phương pháp
tương đối tiên tiến hiện nay và đang là tâm điểm được nghiên cứu là phương
pháp xây dựng cây quyết định dựa trên phụ thuộc hàm.
11
1.6.Thách thức, khó khăn trong khai thác dữ liệu
Khai thác dữ liệu cần làm việc với lượng dữ liệu rất lớn nên có nhiều khó
khăn như:
-Mức độ nhiễu cao hoặc dữ liệu bị thiếu
- Số chiều 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
Vấn đề tốc độ xử lý rất cần được quan tâm. Để giải quyết vấn đề này ta có
thể nâng cao năng lực phần cứng hoặc cải tiến phần mềm. Trong đó việc nghiên
cứu các thuật toán hiệu quả, có thể xử lý khối liệu dữ liệu lớn với độ phức tạp
tính toán thấp là một hướng nghiên cứu đầy tiềm năng. Nhiều công nghệ mới ra
đời hỗ trợ cho việc KTDL như tính toán song song, máy tính lượng tử, công
nghệ nano…
1.7.Ứng dụng của khai thác dữ liệu
Khai thác dữ liệu được ứng dụng trong rất nhiều lĩnh vực:
o Thông tin thương mại:
 Phân tích dữ liệu tiếp thị và bán hàng và thị trường
 Phân tích vốn đầu tư
 Quyết định cho vay vốn
 Phát hiện gian lận
o Thông tin sản xuất:
 Điều khiển và lập lịch
 Hệ thống quản lý
 Quản trị mạng
 Phân tích kết quả thí nghiệm
o Thông tin khoa học:
 Dự báo thời tiết
 CSDL sinh học
 Khoa học địa lý: tìm động đất, sóng thần…
o Thông tin cá nhân
 Giúp nhà tuyển dụng chọn ứng viên thích hợp
12
CHƯƠNG 2 : Phân cụm dữ liệu
2.1.Phân cụm là gì ?
Phân cụm dữ liệu là quá trình phân chia một tập dữ liệu ban đầu thành các

cụm dữ liệu thỏa mãn:
-Các đối tượng trong cùng một cụm thì tương tự nhau
-Các đối tượng khác cụm thì không tương tự nhau
Phân cụm không cần những thông tin được xác định trước. Nói cách khác,
phân cụm là phương pháp học từ quan sát hay còn gọi là học không thầy
trong trí tuệ nhân tạo. Phân cụm đặc biệt hiệu quả khi không biết về thông tin
các cụm, hoặc khi ta quan tâm tới các thuộc tính của cụm mà chưa biết hoặc
biết rất ít về các thông tin đó
Một trong những câu hỏi lớn đặt ra trong bài toán phân cụm là đo độ tương
đồng không gian giữa các đối tượng dữ liệu (spatial similarity). Trong dữ
liệu không gian thì độ đo tương đồng được xem như sự quan hệ về vị trí
không gian giữa các đối tượng dữ liệu. Nói cách khác thì hai đối tượng dữ
liệu được gọi là tương đồng nếu “khoảng cách không gian” giữa chúng là nhỏ.
1.1. Một số độ đo trong phân cụm
 Minkowski
 Euclidean – p = 2
 Độ đo tương tự (gần nhau): cosin hai vectơ
1.2. Mục đích của phân cụm
Xác định được bản chất của việc nhóm các đối tượng trong 1 tập dữ liệu
không có nhãn.
Phân cụm không dựa trên một tiêu chuẩn chung nào, mà dựa vào tiêu chí mà
người dùng cung cấp trong từng trường hợp.
13
1.3. Các ứng dụng của phân cụm dữ liệu
-Quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lí…
nhằm cung cấp thông tin cho quy hoạch đô thị
-Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất nhằm cung
cấp thông tin cho nhận dạng các vùng nguy hiểm
-Thương mại: Tìm kiếm nhóm các khách hàng quan trọng có đặc trưng
tương đồng và những đặc tả họ từ các bản ghi mua bán trong CSDL mua hàng

-Sinh học: Phân loại các gen với các chức năng tương đồng và thu được
các cấu trúc trong mẫu
-Thư viện: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả
-Bảo hiểm: : Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ
tài chính, dự đoán xu hướng của khách hàng, phát hiện gian lận tài chính
-WWW: Phân loại tài liệu (document classification), phân loại người dùng
web (clustering weblog)
1.4. Các yêu cầu về thuật toán phân cụm dữ liệu
-Thuật toán phải hiệu quả và thời gian chạy phải là tăng tuyến tính theo kích
thước của dữ liệu
-Thuật toán phải xử lý và áp dụng được với cơ sở dữ liệu nhiều nhiễu,
phức tạp gồm cả dữ liệu không gian, phi không gian, dữ liệu số, phi số, kiểu
nhị phân, dữ liệu định danh, hạng mục, thích nghi với kiểu dữ liệu hỗn hợp.
-Thuật toán phải có khả năng xác định được những cụm với hình dáng bất
kỳ bao gồm cả những cụm có hình dạng lồng nhau, cụm có hình dạng lõm,
hình cầu, hình que…
-Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào. Do các giá
trị đầu vào thường ảnh hưởng rất lớn đến thuật toán phân cụm và rất phức
tạp để xác định các giá trị vào thích hợp đối với các CSDL lớn.
-Thuật toán phải thực hiện với mọi thứ tự đầu vào dữ liệu. Nói cách khác
kết quả của thuật toán nên độc lập với dữ liệu đầu vào (Cùng một tập dữ liệu,
khi đưa vào xử lý cho thuật toán PCDL với các thứ tự vào của các đối tượng
dữ liệu ở các lần thực hiện khác nhau thì không ảnh hưởng lớn đến kết quả
phân cụm )
-Thuật toán không đòi hỏi những tri thức về cơ sở dữ liệu từ người dùng
-Thuật toán phải làm việc được với cơ sở dữ liệu chứa nhiều lớp đối tượng
dữ liệu phức tạp và có tính chất khác nhau.
-Thuật toán phải thích nghi với dữ liệu đa chiều: Thuật toán có khả năng
áp dụng hiệu quả cho dữ liệu có số khác chiều nhau.
-Thuật toán phải dễ hiểu, dễ cài đặt và khả thi: Người sử dụng có thể chờ

14
đợi những kết quả phân cụm dễ hiểu, dễ lý giải và dễ sử dụng. Nghĩa là, sự
phân cụm có thể cần được giải thích ý nghĩa và ứng dụng rõ ràng. Việc nghiên
cứu cách để một ứng dụng đạt được mục tiêu rất quan trọng có thể gây
ảnh hưởng tới sự lựa trọn các phương pháp phân cụm.
1.5. Thuật toán K-Means
1.5.1. Khái niệm
Thuật toán phân cụm phân hoạch “k-means” được J. MacQueen giới
thiệu vào năm 1967 và phát triển dựa trên ý tưởng của H.Steinhaus đề
xuất năm 1956. Thuật toán này sử dụng giá trị trung bình của các đối
tượng trong cụm làm tâm của cụm đó. Tư tưởng chính của thuật toán K-
Means là tìm cách phân nhóm các đối tượng đã cho vào K cụm (K là số các
cụm được xác đinh trước, K nguyên dương) sao cho tổng bình phương
khoảng cách giữa các đối tượng đến tâm cụm là nhỏ nhất.
Tổng
bình phương khoảng cách giữa các đối tượng đến tâm cụm còn
gọi là
hàm tiêu chuẩn (criterion function) được tính bởi công thức:
Trong đó, x là một điểm, m
i
là giá trị trung bình của cụm C
i
1.5.2.
Thuật toán
k- means
INPUT: Một CSDL gồm n đối tượng và số cụm cần phân là k.
OUTPUT: Các cụm C
i
(i=1 k) sao cho hàm tiêu chuẩn E đạt giá trị tối thiểu.
Thuật toán tiến hành 4 bước sau:

Bước 1: Khởi tạo
Chọn k đối tượng m
j
(j=1…k) là trọng tâm ban đầu của k cụm từ tập dữ
liệu đầu vào (việc lựa chọn này có thể ngẫu nhiên hoặc chọn theo kinh
nghiệm chuyên gia).
Bước 2: Tính khoảng cách
Đối với mỗi đối tượng X
i
(1 ≤ i ≤ n), tính khoảng cách của nó tới mỗi trọng
tâm m
j
với j=1,…,k , sau đó tìm trọng tâm gần nhất đối với mỗi đối tượng.
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 m
j
bằng cách xác định trung
bình cộng của các vector đối tượng dữ liệu.
Bước 4: Điều kiện dừng
Lặp lại bước 2 và bước 3 cho đến khi các trọng tâm của cụm không thay
đổi.
15
Mô hình thuật toán K-Means
16
1.5.3. Ví dụ minh họa
Giả sử ta có 4 đối tượng A,B,C,D. Mỗi đối tượng được biểu diễn bởi 2
đặc trưng X và Y. Mục đích của ta là nhóm các đối tượng đã cho vào 2
nhóm (K=2) dựa vào các đặc trưng của chúng.
Đối tượng X Y
A 1 1

B 2 1
C 4 3
D 5 4
Bước 1: Khởi tạo
Chọn 2 trọng tâm ban đầu:
c
1
(1,1) ≡ A và c
2
(2,1) ≡ B, thuộc 2 cụm 1 và 2
17
18
Bước 2: Tính toán khoảng cách
• Xét C(4,3):

=
=

=
=
Vì: d(C, c
1
) > d(C, c
2
) nên C thuộc cụm 2
• Xét D(5,4):

=
=


=
=
Vì: d(D, c
1
) > d(D, c
2
) nên D thuộc cụm 2
Bước 3: Cập nhật lại vị trí trọng tâm
• Trọng tâm cụm 1 c
1
≡ A (1, 1)
• Trọng tâm cụm 2 gồm các đối tượng : B(2,1), C(4,3), D(5,4)
c
2
(x,y) =
=() =() = (3.67 , 2.67)
Bước 4-1: Lặp lại bước 2 với các trọng tâm mới:
19
c1(1,1), c2(3.67 , 2.67)
Tính toán khoảng cách:
• d(A, c
1
) = 0 < d(A, c
2
) = 3.14
Vậy A thuộc cụm 1


d(B, c
1

) = 1 < d(B, c
2
) = 2.36
Vậy B thuộc cụm 1
• d(C, c
1
) = 3.61 > d(C, c
2
) = 0.47
Vậy C thuộc cụm 2
• d(D, c
1
) = 5 > d(D, c
2
) = 1.89
Vậy D thuộc cụm 2
Bước 4-2: Lặp lại bước 3-Cập nhật trọng tâm
c
1
= () và c
2
= ( )
Bước 4-3: Lặp lại bước 2 với các trọng tâm mới:
c
1
= () và c
2
= ( )
• d(A, c
1

) = 0.5 < d(A, c
2
) = 4.30
Vậy A thuộc cụm 1
• d(B, c
1
) = 0.5 < d(B, c
2
) = 3.54
Vậy B thuộc cụm 1
• d(C, c
1
) = 3.20 < d(C, c
2
) = 0.71
Vậy C thuộc cụm 2
• d(D, c
1
) = 4.61 > d(D, c
2
) = 0.71
Vậy D thuộc cụm 2
20
Ta thấy không có sự thay đổi vị trí các đối tượng trong nhóm => trọng
tâm không thay đổi => Thuật toán dừng với kết quả như sau:
Đối tượng X Y Nhóm
A 1 1 1
B 2 1 1
C 4 3 2
D 5 4 2

Trọng tâm: c
1
= () và c
2
= ( )
1.5.4. Đánh giá thuật toán
Ưu điểm:
-Độ phức tạp: O(k.n.l ) với
21
k: số cụm
n: số đối tượng
l: số lần lặp
-Có khả năng mở rộng, có thể dễ dàng sửa đổi với những dữ liệu mới.
-Bảo đảm hội tụ sau 1 số bước lặp hữu hạn.
-Luôn có K cụm dữ liệu
-Luôn có ít nhất 1 điểm dữ liệu trong 1 cụm dữ liệu.
-Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau.
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:
-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.
-Khó khăn trong việc xác định các trọng tâm cụm ban đầu
- Chọn ngẫu nhiên các trung tâm cụm lúc khởi tạo
- Độ hội tụ của thuật toán phụ thuộc vào việc khởi tạo các vector trung
tâm cụm
-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.
-Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu.
-Không phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1 cụm, chỉ phù

hợp với đường biên giữa các cụm rõ.
CHƯƠNG 1 : Chương trình minh họa KTDL bằng thuật toán K-
Means
2.2.Mục đích
Cài đặt chương trình minh họa việc phân cụm dữ liệu bằng thuật toán K-Means
2.3.Bài toán
Giả sử ta có 4 đối tượng A1,A2,A3,A4. Mỗi đối tượng được biểu diễn bởi 2 đặc trưng X
và Y. Hãy nhóm các đối tượng đã cho vào 2 cụm (K=2) dựa vào các đặc trưng của chúng.
Biết: A1(1,3), A2(1.5,3.2), A3(1.3,2.8), A4(3,1)
2.4.Cài đặt
-File “DemoKhaiThacDuLieu.zip” gồm :
• Data.ini: dữ liệu mẫu để demo.
• DemoKhaiThacDuLieu.au3: source code viết bằng AutoIt.
22
• DemoKhaiThacDuLieu.ex_ : đổi tên thành “DemoKhaiThacDuLieu.exe”
(có thể bị các chương trình AntiVirus cảnh báo nhầm, nên tắt các trình
AntiVirus (Add Exception hoặc cho phép thực thi chương trình demo)).
Thực thi file này để xem chi tiết chương trình demo.
-Các bước demo:
 Nạp dữ liệu:
• Cách 1:Nhập trên giao diện các tham số: n,k rồi nhấn nút “khởi
tạo”, sau đó nhập tọa độ các đối tượng và các tâm của cụm vào 2
ma trận trên giao diện.
• Cách 2: nhấn nút “Nạp dữ liệu”, chọn file “Data.ini” để nạp dữ liệu
mẫu của chương trình.
 Thực hiện: Nhấn nút “Thực hiện” để tiến hành phân cụm các đối tượng.
Kết quả phân cụm sẽ hiển thị trên vùng “Kết quả phân cụm” , chi tiết các
bước thực hiện sẽ hiển thị trên vùng “chi tiết giải thuật”.
23
2.5.Giao diện

Dữ liệu mẫu
24
Giao diện chương trình demo
25

×