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

THUẬT TOÁN K-MEANS VỚI BÀI TOÁN PHÂN CỤM DỮ LIỆU

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 (352.76 KB, 22 trang )

KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
MỤC LỤC
Trang 1
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
GIỚI THIỆU
Trong những năm gần đây cùng với phát triển nhanh chóng của khoa học kỹ
thuật là sự bùng nỗ về tri thức. Kho dữ liệu, nguồn tri thức của nhân loại cũng trở nên
đồ sộ, vô tận làm cho vấn đề khai thác các nguồn tri thức đó ngày càng trở nên nóng
bỏng và đặt ra thách thức lớn cho nền công nghệ thông tin thế giới.
Cùng với những tiến bộ vượt bậc của công nghệ thông tin là sự phát triển mạnh
mẽ của mạng thông tin toàn cầu, nguồn dữ liệu Web trở thành kho dữ liệu khổng lồ.
Nhu cầu về tìm kiếm và xử lý thông tin, cùng với yêu cầu về khả năng kịp thời khai
thác chúng để mạng lại những năng suất và chất lượng cho công tác quản lý, hoạt động
kinh doanh, đã trở nên cấp thiết trong xã hội hiện đại.
Nhưng vấn đề tìm kiếm và sử dụng nguồn tri thức đó như thế nào để phục vụ
cho công việc của mình lại là một vấn đề khó khăn đối với người sử dụng. Để đáp ứng
phần nào yêu cầu này, người ta đã xây dựng các công cụ tìm kiếm và xử lý thông tin
nhằm giúp cho người dùng tìm kiếm được các thông tin cần thiết cho mình, nhưng với
số lượng văn bản khổng lồ cộng với lượng thông tin lớn trong các văn bản đã làm cho
người sử dụng cảm thấy khó khăn trước những kết quả tìm được. Với các phương pháp
khai thác cơ sở dữ liệu truyền thống chưa đáp ứng được các yêu cầu đó. Để giải quyết
vấn đề này, kỹ thuật khai phá dữ liệu và khám phá tri thức trong việc phân loại văn
bản đã được áp dụng.
Trong phạm vi của đề tài em xin trình bày một số khái niệm khái quát về khai
phá dữ liệu, phân cụm dữ liêu và thuât toán K-means trong phân cụm dữ liệu. Để ứng
dụng cho việc sử dụng thuật toán K-means, Việc thực thi và ứng dụng của thuật toán
được cài đăt và thực hiện trong chương trình demo.
Trang 2
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIÊU
1. Giới thiệu chung


Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông
tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng
đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày một
tích luỹ nhiều lên. Việc sử dụng lượng dữ liệu này đã và đang được sự quan tâm
của tất cả mọi người. Khai phá dữ liệu là một quá trình trích xuất tri thức từ
lượng lớn dữ liệu và trích xuất thông tin ẩn, hữu ích từ những khối dữ liệu
khổng lồ.
Việc xử lý khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn đề
cần giải quyết. Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng giải
pháp. Bước tiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng thành
dạng sao cho giải thuật khai phá dữ liệu có thể hiểu được. Chọn thuật toán khai
phá dữ liệu thích hợp và thực hiện việc khai phá dữ liệu để tìm được các mẫu
(pattern) có ý nghĩa dưới dạng biểu diễn tương ứng với các ý nghĩa đó (thường
được biểu diễn dưới dạng các luật xếp loại, cây quyết định, luật sản xuất, biểu
thức hồi quy, …).
Xác định nhiệm vụ
Xác định dữ liệu liên quan
Thu thập và tiền xử lý dữ liệu
Giải thuật khai phá dữ liệu
Thkê tóm tắt
Mẫu
DL trực tiềp
Trang 3
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Quá trình khai phá dữ liệu.
2. Các phương pháp trong khai phá dữ liệu
Phương pháp quy nạp (induction)
Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp.
- Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các
thông tin trong cơ sở dữ liệu.

- Phương pháp quy nạp: phương pháp quy nạp suy ra các thông tin
được sinh ra từ cơ sở dữ liệu. Có nghĩa là nó tự tìm kiếm, tạo mẫu và
sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước.
Các thông tin mà phương pháp này đem lại là các thông tin hay các
tri thức cấp cao diễn tả về các đối tượng trong cơ sở dữ liệu. Phương
pháp này liên quan đến việc tìm kiếm các mẫu trong CSDL.
Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và
tạo luật.
Cây quyết định và luật
- Cây quyết định: 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á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
Trang 4
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
đố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 các giá trị của thuộc tính của đối tượng tới lá.
- Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý
nghĩa về mặt thống kê. Các luật có dạng NẾU P THÌ Q, với P là mệnh
đề đúng với một phần trong CSDL, Q là mệnh đề dự đoán.
Phát hiện các luật kết hợp
Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần
dữ liệu trong cơ sở dữ liệu. Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật
kết hợp tìm được.
Phân cụm và phân đoạn (clustering and segmentation)
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu
sao cho mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó. Mối
quan hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các
thành viên và từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong
nhóm. Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tập

mẫu chứa các dữ liệu có chung những tính chất nào đó được phân tách từ cơ sở
dữ liệu
Các phương pháp dựa trên mẫu
Sử dụng các mẫu mô tả từ cơ sở dữ liệu để tạo nên một mô hình dự đoán
các mẫu mới bằng cách rút ra những thuộc tính tương tự như các mẫu đã biết
trong mô hình. Các kỹ thuật bao gồm phân lớp theo láng giềng gần nhất, các
giải thuật hồi quy (Dasarathy 1991) và các hệ thống suy diễn dựa trên tình
huống (case-based reasoning) (Kolodner 1993)
Khai phá dữ liệu dạng văn bản (Text Mining)
Kỹ thuật này được ứng dụng trong một loạt các công cụ phần mềm
thương mại. Công cụ khai phá dữ liệu rất phù hợp với việc tìm kiếm, phân tích
Trang 5
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
và phân lớp các dữ liệu văn bản không định dạng. Các lĩnh vực ứng dụng như
nghiên cứu thị trường, thu thập tình báo, v.v… Khai phá dữ liệu dạng văn bản
đã được sử dụng để phân tích câu trả lời cho các câu hỏi mở trong khảo sát thị
trường, tìm kiếm các tài liệu phức tạp.
Mạng neuron
Mạng neuron là tiếp cận tính toán mới liên quan đến việc phát triển các
cấu trúc toán học với khả năng học. Các phương pháp là kết quả của việc
nghiên cứu mô hình học của hệ thống thần kinh con người. Mạng neuron có thể
đưa ra ý nghĩa từ 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 xuất các mẫu và phát hiện ra các 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.
Giải thuật di truyền
Giải thuật di truyền, nói theo nghĩa rộng là mô phỏng lại hệ thống tiến
hóa 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 sẽ bị loại bỏ.
Giải thuật cũng mô phỏng lại yếu tố gen trong nhiễm sắc thể sinh học trên máy

tính để có thể giải quyết nhiều bài toán thực tế khác nhau.
3. Ứng dụng của KDD và những thách thức của KDD
Khai phá dữ liệu được ứng dụng trong tất cả các lĩnh vực của đời sống xã
hội:
- Trong kinh doanh (business)
- Trong tài chính (finance) và tiếp thị bán hàng (sales marketing)
- Trong thương mại (commerce) và ngân hàng (bank)
- Trong bảo hiểm (insurance)
- Trong khoa học (science) và y sinh học (biomedicine)
- Trong điều khiển (control) và viễn thông (telecommunication)
Trang 6
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
4. Kết luận
Kỹ thuật phát hiện tri thức và khai phá dữ liệu đã và đang được nghiên
cứu, ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt
Nam kỹ thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiên cứu
và dần đưa vào ứng dụng. Bước quan trọng nhất của quá trình này là Khai phá
dữ liệu (Data Mining - DM), giúp người sử dụng thu được những tri thức hữu
ích từ những CSDL hoặc các nguồn dữ liệu khổng lồ khác. Rất nhiều doanh
nghiệp và tổ chức trên thế giới đã ứng dụng kĩ thuật khai phá dữ liệu vào hoạt
động sản xuất kinh doanh của mình và đã thu được những lợi ích to lớn.
CHƯƠNG 2: TỔNG QUAN THUYẾT VỀ PHÂN CỤM TRONG KHAI PHÁ DỮ
LIỆU
1. Định nghĩa về phân cụm dữ liệu :
Phân cụm là hình thức học không giám sát trong đó các mẫu chưa được
gán nhãn. Mục đích của phân cụm dữ liệu là gom dữ liệu tương tự nhau,
thành từng cụm theo một chuẩn nào đó. Các dữ liệu trong các cụm khác
nhau thì có độ tương tự thấp hơn so với các đối tượng trong cùng một cụm.
Có nhiều phương pháp phân cụm như:
o Phương pháp phân hoạch

o Phương pháp phân cấp
o Phương pháp dựa trên mật độ
o Phương pháp dựa trên mô hình
o Phương pháp dựa trên lưới
2. Mục đích của phân cụm dữ liệu
Mục đích của phân cụm dữ liệu là nhằmkhám phá ra cấu trúc dữ liệu thành
lậpcác tập dữ liệu từ các nhóm dữ liệu lớn.
Phân cụm dữ liệu giúp ta có thể hệ thống lạidữ liệu làm cho chúng không
bị rời rạc. Với một cơ sở dữ liệu lớn và rời rạc thì việcphân cụm rất cần thiết
và hầu như là khôngthể thiếu.
Trang 7
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Phân cụm ta có thể đi sâu vào phân tíchnghiên cứu từng cụm dữ liệu
nhằm khám phá và tìm kiếm các thông tin ẩn nhằm hỗtrợ cho việc ra quyết
định
3. Yêu cầu của phân cụm dữ liệu
Phân cụm là một thách thức trong lĩnh vực nghiên cứu ở chỗ những
ứng dụng tiềm năng của chúng được đưa ra ngay chính trong những yêu cầu
đặc biệt của chúng. Sau đây là những yêu cầu cơ bản của phân cụm
trong KPDL:
Có khả năng mở rộng: Nhiều thuật toán phân cụm làm việc tốt với
những tập dữ liệu nhỏ chứa ít hơn 200 đối tượng, tuy nhiên, một CSDL
lớn có thể chứa tới hàng triệu đối tượng. Việc phân cụm với một tập dữ
liệu lớn có thể làm ảnh hưởng tới kết quả. Vậy làm cách nào để chúng
ta có thể phát triển các thuật toán phân cụm có khả năng mở rộng cao
đối với các CSDL lớn ?
Khả năng thích nghi với các kiểu thuộc tính khác nhau: Nhiều thuật
toán được thiết kế cho việc phân cụm dữ liệu có kiểu khoảng (kiểu số).
Tuy nhiên, nhiều ứng dụng có thể đòi hỏi việc phân cụm với nhiều kiểu
dữ liệu khác nhau, như kiểu nhị phân, kiểu tường minh (định

danh - không thứ tự), và dữ liệu có thứ tự hay dạng hỗn hợp của những
kiểu
dữ liệu này.
Khám phá các cụm với hình dạng bất kỳ: Nhiều thuật toán phân cụm
xác định các cụm dựa trên các phép đo khoảng cách Euclidean và
khoảng cách Manhattan. Các thuật toán dựa trên các phép đo như vậy
hướng tới việc tìm kiếm các cụm hình cầu với mật độ và kích cỡ tương
tự nhau. Tuy nhiên, một cụm có thể có bất cứ một hình dạng nào. Do
đó, việc phát triển các thuật toán có thể khám phá ra các cụm có hình
dạng bất kỳ là một việc làm quan trọng.
Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào: Nhiều
thuật toán phân cụm yêu cầu người dùng đưa vào những tham số nhất
định trong phân tích phân cụm (như số lượng các cụm mong
muốn). Kết quả của phân cụm thường khá nhạy cảm với các tham số đầu
vào. Nhiều tham số rất khó để xác định, nhất là với các tập dữ liệu có
lượng các đối tượng lớn. Điều này không những gây trở ngại cho người
dùng mà còn làm cho khó có thể điều chỉnh được chất lượng của phân
cụm.
Khả năng thích nghi với dữ liệu nhiễu: Hầu hết những CSDL thực đều
chứa đựng dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chưa biết hoặc dữ liệu
sai. Một số thuật toán phân cụm nhạy cảm với dữ liệu như vậy và
có thể dẫn đến chất lượng phân cụm thấp.
Trang 8
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Ít nhạy cảm với thứ tự của các dữ liệu vào: Một số thuật toán phân
cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ như với cùng một tập dữ
liệu, khi được đưa ra với các thứ tự khác nhau thì với cùng một thuật
toán có thể sinh ra các cụm rất khác nhau. Do đó, việc quan trọng là phát
triển các thuật toán mà ít nhạy cảm với thứ tự vào của dữ liệu.
Số chiều lớn: Một CSDL hoặc một kho dữ liệu có thể chứa một

số chiều hoặc một số các thuộc tính. Nhiều thuật toán phân cụm áp dụng
tốt cho dữ liệu với số chiều thấp, bao gồm chỉ từ hai đến 3 chiều. Người
ta ánh giá việc phân cụm là có chất lượng tốt nếu nó áp dụng được cho
dữ liệu có từ 3 chiều trở lên. Nó là sự thách thức với các đối tượng dữ
liệu cụm trong không gian với số chiều lớn, đặc biệt vì khi xét những
không gian với số chiều lớn có thể rất thưa và có độ nghiêng lớn.
Phân cụm ràng buộc: Nhiều ứng dụng thực tế có thể cần thực
hiện
phân cụm dưới các loại ràng buộc khác nhau. Một nhiệm vụ đặt ra là đi
tìm nhóm dữ liệu có trạng thái phân cụm tốt và thỏa mãn các
ràng buộc.
Dễ hiểu và dễ sử dụng: Người sử dụng có thể chờ đợ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.
4. Phân loại các kiểu phân cụm chính
Các phương pháp phân cụm đề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ủa thuật toán.
các kỹ thuật. Phân cụm có thể phân loại theo các cách tiếp cận chính sau :
Phương pháp 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. Số các cụm được
thiết lập là các đặc trưng được lựa chọn trước. Phương pháp này là tốt cho
việc tìm các cụm hình cầu trong không gian Euclidean. Ngoài ra,
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 nào 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
mỗi điểm khác. Tuy nhiên, 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 đề PCDL, do nó phải tìm kiếm tất cả các cách phân hoạch có

Trang 9
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
thể được. Chính vì vậy, 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. Như vậy, ý tưởng chính của 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 (Greedy) để tìm kiếm nghiệm.
Phương pháp phân cấp: Phương pháp này 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ó hai cách tiếp cận phổ biến của kỹ thuật này
đó là:
* Hòa nhập nhóm, thường được gọi là tiếp cận Bottom-Up
* Phân chia nhóm, thường được gọi là tiếp cận Top-Down.
Phương pháp 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 đó. Trong cách tiếp cận
này, khi một dữ liệu đã xác định thì nó tiếp tục được phát triển thêm 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. Phương pháp phân cụm dựa trên mật độ của
các đối tượng để xác định các cụm dữ liệu có thể phát hiện ra các cụm dữ
liệu với hình thù bất kỳ. Kỹ thuật này có thể khắc phục được các phần tử
ngoại lai hoặc giá trị nhiễu rất tốt, tuy nhiên việc xác định các tham số mật
độ của thuật toán là rất 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.
Phương pháp dựa trên mô hình:
Phương 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 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. Phương pháp phân cụm dựa trên
mô hình 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.
Các thuật toán phân cụm dựa trên mô hình có hai cách tiếp cận chính:
mô hình thống kê và 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 đó, nhưng đôi 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
Trang 10
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Phương pháp dựa trên lưới: Kỹ thuật phân cụm dựa trên lưới thích hợp
với dữ liệu nhiều chiều, dựa trên cấu trúc dữ liệu lưới để phân cụm, 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ục tiêu
của phương pháp này là lượng hóa dữ liệu thành các ô tạo thành cấu trúc dữ
liệu lưới. Sau đó, 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
dựa trên lưới 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 ô, đồng thời giải quyết 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 phân cụm dựa trên mật độ không giải
quyết được. Ưu điểm của phương pháp phân cụm dựa trên lưới là thời gian
xử lí nhanh và độc lập với số đối tượng dữ liệu trong tập dữ liệu ban đầu,
thay vào đó là chúng phụ thuộc vào số ô trong mỗi chiều của không gian
lưới.
5. Ứng dụng của kỹ thuật phân cụm
Phân nhóm được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau như
khoa học máy tính (xử lý ảnh), địa chất (phân tích bề mặt trái đất) và một số
lĩnh vực khác:

Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng,
khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản
phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu
quả hơn;
Biology: Phận nhóm động vật và thực vật dựa vào các thuộc tính của
chúng;
Libraries: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…;
Insurance, Finance: 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 (trend) của khách hàng, phát hiện gian
lận tài chính (identifying frauds);
WWW: Phân loại tài liệu (document classification); phân loại người
dùng web (clustering weblog);…
6. Phương pháp đánh giá phân cụm dữ liệu
• Đánh giá ngoại (external validation)
• Đánh giá kết quả phân cụm dựa vào cấu trúc đuợc chỉ định trước cho
tập dữ liệu
• Độ đo : Rand statistic, Jaccard coefficient, Folkes and Mallowsindex
• Đánh giá nội (internal validation)
Trang 11
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
• Đánh giá kết quả phân cụm theo số lượng các vector của chính tập dữ
liệu (ma trận gần – proximity matrix)
• Độ đo : :Hubert’s statistic, Silhouette index, Dunn’s index, …
• Đánh giá tương đối (relative validation)
• Đánh giá kết quả phân cụm bằng việc so sánh các kết quả phân cụm
khác ứng với các bộ trị thông số khác nhau
Tiêu chí cho việc đánh giá và chọn kết quả phân cụm tối ưua
- Độ nén (compactness): các đối tượng trong cụm nên gần nhau.
- Độ phân tách (separation): các cụm nên xa nhau.
CHƯƠNG 3: THUẬT TOÁN K-MEANS VỚI BÀI TOÁN PHÂN CỤM DỮ LIỆU

1. Khái quát về bài toán K-means
K-means là thuật toán phân cụm theo phương pháp phân hoạch và đã được
sử dụng rộng rãi. Cho tập các đối tượng, mục tiêu phân cụm hay phân mảnh là chia
tập đối tượng này thành nhiều nhóm hay “cụm” sao cho các đối tượng trong một
cụm có khuynh hướng tương tự nhau hơn so với đối tượng khác nhóm. Nói cách
khác, các thuật toán phân cụm đặt các điểm tương tự trong cùng một cụm trong khi
các điểm không tương tự đặt trong nhóm khác. Lưu ý, ngược với các tác vụ có
giám sát như hồi qui hay phân lớp, ở đó có khái niệm giá trị mục tiêu hay nhãn lớp,
các đối tượng là đầu vào cho một thủ tục phân cụm không cần một mục tiêu. Vì
vậy, phân cụm thường được xem là học không có giám sát. Do không cần dữ liệu
nhãn, các thuật toán không giám sát thích hợp với nhiều ứng dụng không có dữ liệu
được gán nhãn. Các tác vụ không giám sát như phân cụm thường được dùng để
khám phá và mô tả tập dữ liệu trước khi thực hiện công việc học có giám sát. Do
phân cụm không dùng các nhãn lớp, khái niệm. về độ tương tự phải được định
nghĩa dựa trên các thuộc tính của đối tượng. Định nghĩa về độ tương tự và phương
thức mà ở đó các điểm được phân cụm khác nhau dựa trên thuật toán phân cụm
được áp dụng. Các thuật toán phân cụm khác nhau thích hợp với các kiểu khác
nhau về tập dữ liệu và các mục tiêu khác nhau. Vì vậy thuật toán phân cụm “tốt
Trang 12
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
nhất” để sử dụng tùy thuộc vào ứng dụng.
Thuật toán k-means là thuật toán phân cụm lặp đơn giản. Nó phân mảnh tập
dữ liệu cho trước thành k cụm, giá trị k do người dùng xác định. Thuật toán dễ thực
hiện, thi hành nhanh, dễ thích nghi và phổ biến trong thực tế. Đây là một trong
những thuật toán kinh điển trong khai thác dữ liệu.
2. Thuật toán k-means
Thuật toán k-means áp dụng cho các đối tượng được biểu diễn bởi các điểm
trong không gian vectơ d chiều U ={xi | i =1, , N} , với xi ∈R
d
biểu thị đối tượng

(hay điểm dữ liệu) thứ i. Thuật toán k-means phân cụm toàn bộ các điểm dữ liệu
trong U thành k cụm C ={C1 ,C2 ,K,Ck }, sao cho mỗi điểm dữ liệu x
i
nằm trong
một cụm duy nhất. Để biết điểm dữ liệu thuộc cụm nào người ta gán cho nó một mã
cụm. Các điểm có cùng mã cụm thì ở cùng cụm, trong khi các điểm khác mã cụm
thì ở trong các cụm khác nhau. Một cụm có thể biểu thị bằng vec-tơ liên thuộc cụm
v có độ dài N, với v
i
là mã cụm của x
i
.
Giá trị k là đầu vào của thuật toán. Giá trị k dựa trên tiêu chuẩn tri thức
trước đó. Sẽ có bao nhiêu cụm thực sự xuất hiện trong U, bao nhiêu cụm được đề
nghị cho ứng dụng hiện hành, hay các kiểu cụm được tìm thấy bằng cách dựa vào
thực nghiệm với nhiều giá trị k khác nhau. Không cần thiết phải hiểu k được chọn
như thế nào khi k-means phân mảnh tập dữ liệu U, việc chọn giá trị k như thế nào
sẽ được thảo luận trong phần kế tiếp.
Trong các thuật toán phân cụm, các điểm được nhóm theo khái niệm “độ
gần” hay “độ tương tự”. Với k-means, phép đo mặc định cho “độ tương tư” là
khoảng cách Euclide. Đặc biệt, có thể thấy k-means cố gắng cực tiểu hóa hàm giá
trị không âm sau:
Trang 13
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Nói cách khác, k-means cố gắng cực tiểu khoảng cách Euclide tổng bình
phương giữa mỗi điểm xi và thể hiện cụm gần nhất của nó Cj. Biểu thức 2.1 thường
được xem là hàm mục tiêu k-means.
Thuật toán k-means, như mô tả trong thuật toán 2.1, thay đổi giữa 2 bước:
(1) gán lại mã cụm của tất cả điểm trong U và (2) cập nhật các thể hiện cụm dựa
trên các điểm dữ liệu trong mỗi cụm. Thuật toán làm việc như sau: đầu tiên, các thể

hiện nhóm được khởi tạo bằng cách chọn k điểm trong d . Các kỹ thuật để chọnℜ
các hạt giống khởi tạo bao gồm lấy mẫu ngẫu nhiên từ tập dữ liệu, xem chúng như
giải pháp phân cụm tập con nhỏ dữ liệu, hay làm thay đổi giá trị trung bình toàn
cục của k lần dữ liệu. Trong thuật toán 2.1, ta khởi tạo k điểm ngẫu nhiên. Sau đó
thuật toán lặp 2 bước cho đến khi hội tụ.
Bước 1. [Gán dữ liệu] Mỗi điểm được gán vào trọng tâm gần nhất.
Bước 2. Tái định vị “độ trung bình”. Mỗi thể hiện nhóm được tái định vị vào
tâm của tất cả các điểm được gán cho nó. Cho trước tập các điểm, thể hiện tốt nhất
đối với tập này (theo ý nghĩa tối thiểu tổng khoảng cách Euclide giữa mỗi điểm và
thể hiện) thì không là gì cả ngoài độ trung bình của các điểm dữ liệu. Đó là lý do tại
sao thể hiện nhóm (hay còn gọi là tâm của nhóm) thường được tính là trung bình
nhóm và đó là cách thuật toán mang tên.
Thuật toán hội tụ khi việc gán không còn thay đổi. Người ta có thể thấy rằng
hàm mục tiêu k-means được định nghĩa trong biểu thức 2.1 sẽ giảm bất cứ khi nào
có một thay đổi trong bước gán hay bước tái định vị và sự hội tụ được đảm bảo sau
hữu hạn bước lặp. Lưu ý, mỗi bước lặp cần Nk phép so sánh. Đây là độ phức tạp
thời gian trong mỗi bước lặp. Số bước lặp cần cho sự hội tụ thay đổi và có thể tùy
thuộc vào N, nhưng ở lần cắt đầu tiên, k-means có thể được xem là tuyến tính với
kích thước tập dữ liệu. Hơn nữa, do thao tác so sánh là tuyến tính với d nên thuật
toán cũng tuyến tính theo chiều dữ liệu.
Thuật toán K-Means được mô tả như sau
Trang 14
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Trang 15
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Thuật toán K-Means thực hiện qua các bước chính sau:
1. Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster). Mỗi cụm được
đại diện bằng các tâm của cụm.
2. Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng
khoảng cách Euclidean)

3. Nhóm các đối tượng vào nhóm gần nhất
4. Xác định lại tâm mới cho các nhóm
5. Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của
các đối tượng
Độ phức tạp của thuật toán:
Độ phức tạp dữ liệu được tính là O(n.k.d.t.T)
Trong đó : n là số đối tượng dữ liệu
k là số cụm dữ liệu
d là số chiềut là số vòng lặp
T là thời gian tính toán một phép tính cơ sở như : cộng , trừ, nhân hoặc
chia
Trang 16
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Ưu điểm :K-Means phân tích phân cụm đơngiản nên có thể áp dụng với tập
dữ liệu lớn
Nhược điểm: K -Means chỉ áp dụng với dữliệu có thuộc tính số và khám phá
ra cáccụm có dạng hình cầu, k -means còn rấtnhạy cảm với nhiễu và các phần tử
ngoại laitrong dữ liệu. Ngoài ra còn phụ thuộc nhiềuvào các thông số đầu vào
Trong trường hợp, các trọng tâm khởi tạo ban đầumà quá lệch so với các
trọng tâm cụm tự nhiên thìkết quả phân cụm của k - means là rất thấp, nghĩa làcác
cụm dữ liệu được khám phá rất lệch so với cáccụm trong thực tế. Trên thực tế
người ta chưa có một giải pháp tối ưu nào để chọn các tham số đầu vào, giải pháp
thường được sử dụng nhất là thửnghiệm với các giá trị đầu vào k khác nhau rồi
sauđó chọn giải pháp tốt nhất.
3. Các giới hạn của thuật toán k-means
Sự hội tụ chỉ là tối ưu cục bộ và thuật toán khá nhạy cảm với các định vị tâm
khởi tạo. Nói cách khác, việc khởi tạo tâm các thể hiện cụm C khác nhau có thể dẫn
đến rất nhiều cụm, thậm chí trên cùng tập dữ liệu U. Việc khởi tạo nghèo nàn có thể
dẫn đến các cụm rất nghèo nàn.
Như đã đề cập, việc chọn giá trị tối ưu của k có thể khó. Nếu hiểu rõ về tập

dữ liệu, như là số mảnh tự nhiên có trong tập dữ liệu thì sự hiểu biết đó là cơ sở để
chọn k.
Ngược lại, ta phải dùng một chuẩn khác để chọn k. Một giải pháp là thử
nhiều giá trị khác nhau của k và chọn cụm mà nó cực tiểu hàm mục tiêu k-means.
Giá trị hàm mục tiêu không giống thông tin như mong muốn. Điều này làm bài toán
khó hơn khi dùng hàm mục tiêu cho (a) các giải pháp so sánh trực tiếp với nhiều số
cụm khác nhau và
(b) tìm giá trị tối ưu của k. Vì vậy, nếu không biết được giá trị k mong chờ,
người ta sẽ chạy k-means với các giá trị k khác nhau rồi chọn ra một trong những
giá trị tốt nhất. Người ta có thể tăng dần số cụm, kết hợp với chuẩn dừng thích hợp.
Trang 17
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Chia k-mean làm 2, đầu tiên cho tất cả dữ liệu vào trong một cụm, sau đó chia một
cách đệ quy cụm ít bền vững nhất thành 2 cụm dùng 2-means. Thuật toán LBG [7]
dùng cho lượng tử hóa vec-tơ gấp đôi số cụm cho đến khi có kích thước hợp lý. Cả
hai hướng tiếp cận trên làm nhẹ bớt nhu cầu biết trước k. Nhiều nhà nghiên cứu
khác vẫn tiếp tục nghiên cứu vấn đề này.
Với các giới hạn trên, k-means kém chất lượng do nhiều vấn đề khác. Đầu
tiên có thể được hiểu bằng bài toán khớp dữ liệu dùng cách trộn k Gaussian với các
ma trận thống kê ∑=σ
2
I (isotropic convariance matrices), với I là ma trận xác định,
các kết quả trong phiên bản “mềm” của k-means. Chính xác hơn, nếu các phép gán
mềm của các điểm dữ liệu cho những thành phần trộn của một mô hình như vậy trở
nên khó, sao cho mỗi điểm dữ liệu được định vị đơn độc cho thành phần giống
nhất, đó là thuật toán k-means. Từ đó có thể thấy, k-means sẽ gặp khó khăn bất cứ
lúc nào khi dữ liệu không được mô tả tốt theo vị trí của các phân bố Gaussian. Ví
dụ, k-means sẽ có vấn đề nếu có các nhóm có hình dạng không lồi.
Phương pháp khác để làm việc với các cụm không lồi bằng cách bắt cặp k-
means với thuật toán khác. Ví dụ, đầu tiên ta có thể phân cụm dữ liệu thành số

lượng lớn các nhóm dùng k-means. Sau đó tích tụ các nhóm này thành các cụm lớn
hơn dùng cụm phân cấp liên kết đơn, có thể dò tìm ra hình dạng phức tạp. Hướng
tiếp cận này cũng là giải pháp ít nhạy cảm hơn so với khởi tạo. Do phương pháp
phân cấp cho ra nhiều kết quả trong nhiều giải pháp, ta không cần lo lắng về việc
chọn k chính xác; thay vì, ta có thể dùng giá trị lớn cho k khi tạo các cụm khởi tạo.
Thuật toán cũng nhạy cảm với sự hiện diện của những phần nằm ngoài, do
sử dụng độ đo trung bình. Để xử lý vấn đề này, đầu tiên là tiền xử lý loại bỏ những
phần nằm ngoài có thể hữu ích. Sau đó hậu xử lý kết quả, ví dụ để loại bỏ các cụm
nhỏ hay trộn các cụm gần nhau thành cụm lớn hơn cũng cần thiết. Thuật toán
ISODATA năm 1967 sử dụng hiệu quả cho cả tiền và hậu xử lý trên k-means.
Vấn đề tiềm ẩn khác là vấn đề các cụm “rỗng”. Khi thực hiện k-means, đặc
biệt với những giá trị lớn của k và khi dữ liệu nằm trong không gian có chiều rất
Trang 18
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
cao, có thể tại một điểm nào đó trong thi hành, tồn tại thể hiện nhóm Cj sao cho tất
cả các điểm xi gần với thể hiện cụm nào đó mà không là Cj. Khi các điểm trong U
được gán với cụm gần nhất của chúng, cụm thứ j sẽ có các điểm zero được gán vào
nó. Lúc đó, cụm Cj là rỗng.
Tóm lại, thuật toán k-means là thuật toán phân cụm bằng cách lặp, phân tập
dữ liệu thành k cụm. Thuật toán lặp đi lặp lại 2 bước: (1) phân cụm tất cả các điểm
trong tập dữ liệu dựa trên khoảng cách giữa mỗi điểm và thể hiện cụm gần nhất của
nó và (2) ước tính lại các thể hiện cụm. Các giới hạn của thuật toán k-means gồm
sự nhạy cảm của k-means trong sự khởi tạo và xác định giá trị k. Tuy nhiên, k-
means là thuật toán phân cụm được sử dụng rộng rãi trong thực tế vì tính đơn giản,
dễ hiểu và có thể chỉnh sửa dễ dàng. Có nhiều phiên bản như học nửa giám sát hay
dữ liệu dòng. Việc tiếp tục cải tiến và tổng quát hóa thuật toán cơ bản sẽ nâng cao
tính hiệu quả của thuật toán.
Trang 19
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM

1. Giao diện của chương trình
Trang 20
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
2. Kết quả sau khi thực hiện phân phân cụm
TÀI LIỆU THAM KHẢO
1. Đỗ Phúc, Giáo trình Khai thác dữ liệu, NXB ĐHQG TP. HCM, 2005.
2. Đỗ Thanh Nghị, Khai Mỏ Dữ Liệu Minh Họa Bằng Ngôn Ngữ R,2011
3. Knowledge Discovery Nuggets: />4. Ian H., Eibe Frank, Data Mining: Practical Machine Learning Tools and Techniques,
Morgan Kaufmann, 2005.
5. J. Han and M. Kamber. Data Mining: Concepts and Techniques. Morgan Kaufmann,
2001.
6. Pieter Adriaans, Dolf Zantinge, Data Mining, Addition - Wesley, 1998.
7. T. Bhavani, Data Mining: Technologies, Techniques, Tools and Trends. CRC Press
1999.
Trang 21
KHAI PHÁ DỮ LIỆU SVTH:Nguyễn Thị Thu Ngân (CH1101022)
Trang 22

×