KHAI PHÁ DỮ LIỆU VÀ NHÀ KHO DỮ LIỆU
!"#$%&'($#
$%
Giảng viên hướng dẫn : P) )*+,
Học viên thực hiện: -.//0//12
Lớp 03
TP. Hồ Chí Minh, tháng 11 năm 2012
Lời mở đầu
Với môn cơ sở dữ liệu truyền thống, ta thấy các lợi ích mà nó mang lại là
không thể phủ nhận trong việc giải quyết các vấn đề thông dụng như tìm kiếm thông
tin, thống kê, kết xuất Tuy nhiên với nhiều năm lưu trữ và tích luỹ một lượng rất lớn
dữ liệu và giá trị của nguồn dữ liệu này là một tài sản vô giá thì còn tìm ẩn. Để có thể
khai thác và xử lý hiệu quả nguồn “tài nguyên- khoáng sản” này, các chuyên gia công
nghệ thông tin đã có rất nhiều công trình nghiên cứu và từ đó hình thành lĩnh vực
riêng về đề tài này, cụ thể là “Kỹ thuật phát hiện tri thức và khai phá dữ liệu” (KDD -
Knowledge Discovery and Data Mining) đã ra đời và đã được ứng dụng rộng rãi vào
thực tế.
Về mặt thực tiễn, khai phá dữ liệu hiện đang được áp dụng một cách rộng rãi
trong nhiều lĩnh vực kinh doanh và đời sống khác nhau như: marketing, tài chính,
ngân hàng và bảo hiểm, khoa học, y tế, an ninh, internet, … rất nhiều tổ chức và công
ty lớn trên thế giới đã áp dụng kỹ thuật khai phá dữ liệu vào các hoạt động sản xuất
kinh doanh. Các công ty phần mềm lớn trên thế giới cũng rất quan tâm và chú trọng
tới việc nghiên cứu và phát triển kỹ thuật khai phá dữ liệu: hãng Oracle tích hợp các
công cụ khai phá dữ liệu vào bộ Oracle9i, hãng Microsoft thì tích hợp các công cụ và
SQL 2005, IBM đã đi tiên phong trong việc phát triển các ứng dụng khai phá dữ liệu
với các ứng dụng như Intelligence Miner,…
Với niềm yêu thích về môn cơ sở dữ liệu truyền thống và bị lôi cuốn bởi sự
mới mẻ và hữu dụng ngay từ đầu của môn học Khai phá dữ liệu và nhà kho dữ liệu,
cũng như nhận thấy. Trong quá trình học, tôi nhận thấy gom cụm dữ liệu là kỹ
thuật rất quan trọng trong khai phá dữ liệu và k-means là một thuật toán rất hay trong
gom cụm dữ liệu nên tôi quyết định chọn đề tài khoá luận cho mình là “Tìm hiểu và
hiện thực hóa thuật toán gom cụm dữ liệu (K-means)” với mục đích tìm hiểu rõ hơn
và biểu diễn thuật toán K-Means một cách trực quan hơn.
Qua môn học “Khai phá dữ liệu”, tôi cũng như các bạn cùng lớp đã đúc kết
được rất nhiều kiến thức bổ ích cho bản thân. Tuy thời gian nghiên cứu cho môn học
không nhiều nhưng những thông tin mới mẻ cũng như những ứng dụng rất thực tế mà
Thầy PGS-TS. Đỗ Phúc cung cấp trong môn học đã giúp tôi hình thành những cái
2
nhìn mới hơn, sâu hơn về khám phá tri thức và khai phá dữ liệu, cũng như các ứng
dụng của chúng vào trong công việc thực tiễn.
Đề tài thực hiện gồm các chương:
Chương I: Tổng quan về khai phá tri thức
Chương II: Thuật toán K-Means
Chương III: Một số ứng dụng
Chương IV: Kết luận
45
…………………………………………………………………………………………
………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
3
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
………………………………………………………………………………….
……………………………………………………………………………….
………………………………………………………………………………….
…………………………………………………………………………………
4
67867
-/&9$%
I. -):;<
/*/* =>=?@=AB7@BCDEFG@HIJ@H?K=?@L7EMG@N=J@HOP8=AB
Nếu cho rằng, điện tử và truyền thông chính là bản chất của khoa học điện tử, thì
dữ liệu, thông tin, và tri thức hiện đang là tiêu điểm của một lĩnh vực mới để nghiên cứu
và ứng dụng, đó là khám phá tri thức và khai phá dữ liệu.
Thông thường, chúng ta coi dữ liệu như là một chuỗi các bits, hoặc các số và các
ký hiệu hay là các “đối tượng” với một ý nghĩa nào đó khi được gửi cho một chương
trình dưới một dạng nhất định. Các bits thường được sử dụng để đo thông tin, và xem nó
như là dữ liệu đã được loại bỏ phần tử thừa, lặp lại, và rút gọn tới mức tối thiểu để đặc
trưng một cách cơ bản cho dữ liệu. Tri thức được xem như là các thông tin tích hợp, bao
gồm các sự kiện và mối quan hệ giữa chúng, đã được nhận thức, khám phá, hoặc nghiên
5
cứu. Nói cách khác, tri thức có thể được coi là dữ liệu ở mức độ cao của sự trừu tượng và
tổng quát.
Khám phá tri thức hay phát hiện tri thức trong CSDL là một quy trình nhận biết
các mẫu hoặc các mô hình trong dữ liệu với các tính năng: Phân tích, tổng hợp, hợp thức,
khả ích và có thể hiểu được.
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ố qui đị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. Nói cách khác, mục tiêu của
Khai phá dữ liệu là tìm kiếm các mẫu hoặc mô hình tồn tại trong CSDL nhưng ẩn trong
khối lượng lớn dữ liệu.
/ BH?KQC@G@HIJ@H?K=?@L7
Hình 1: Quá trình Khám phá tri thức.
6
Bao gồm các bước sau:
• Làm sạch dữ liệu (Data Cleaning
• Tích hợp dữ liệu (Data Intergation)
• Lựa chọn dữ liệu (Data Selection)
• Chuyển đổi dữ liệu (Data Transformation
• Khai phá dữ liệu (Data Mining)
• Đánh giá mẫu (Pattern Evaluation)
• Biểu diễn tri thức (Knowledge Presentation)
R BH?KQC@G@N=J@HOP8=AB
KPDL là một giai đoạn quan trọng trong quá trình KPTT. 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.
Quá trình KPDL bao gồm các bước chính được thể hiện như hình sau:
7
Hình 2: Quá trình Khai phá dữ liệu.
• Xác định nhiệm vụ
• Xác định các dữ liệu liên quan
• Thu thập và tiền xử lý dữ liệu
• Thuật toán khai phá dữ liệu
1 H7J@STCDJ@HJG@N=J@HOP8=AB
Với hai mục đích khai phá dữ liệu là Mô tả và Dự đoán, người ta thường sử dụng
các phương pháp sau cho khai phá dữ liệu:
• Luật kết hợp (association rules)
• Phân lớp (Classfication)
• Hồi qui (Regression)
• Trực quan hóa (Visualiztion)
• Gom 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)
Có nhiều phương pháp khai phá dữ liệu được nghiên cứu ở trên, trong đó có ba
phương pháp được các nhà nghiên cứu sử dụng nhiều nhất đó là: Luật kết hợp, Phân lớp
dữ liệu và Gom cụm dữ liệu.
U H78VC@EW7LCDO6CD?@W7?=XC7YN$
KPDL là một lĩnh vực mới phát triển nhưng thu hút được khá nhiều nhà nghiên
cứu nhờ vào những ứng dụng thực tiễn của nó. Sau đây là một số lĩnh vực ứng dụng thực
tế điển hình của KPDL:
• 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à gom cụm ảnh màu
8
• 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 gía 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 hàng.
• Điều khiển và lập lịch trình
• Bảo hiểm
• Giáo dục
Z H7@S>CD?=[J7\C7T]^CEMG_?@B\?HJO6CD?K`CD$
Vấn đề khai phá dữ liệu có thể được phân chia theo lớp các hướng tiếp cận chính
sau:
• Phân lớp và dự đoán (classification &prediction)
• Gom cụm (clustering/segmentation)
• Luật kết hợp (association rules)
• Phân tích chuỗi theo thời gian (sequential/temporal patterns)
• Mô tả khái niệm (concept desccription & summarization)
3 H7?@H7@?@L7 G@aG@bC?K`CDEM$
KPTT và KPDL 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. Sau đây là một số các thách
thức và khó khăn cần được quan tâm:
• Các cơ sở dữ liệu lớn, các tập dữ liệu cần sử lý có kích thước cực lớn, Trong thực
tế, kích thước của các tập dữ liệu thường ở mức tera-byte (hàng ngàn giga-byte).
• 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
9
II. @cC76IOP8=ABd8Be?fK=CDg
R*/* @H=C=AIJ@cC76IOP8=AB
Gom cụm dữ liệu là vấn đề rất quan trọng, được dùng trong nhiều lĩnh vực. Mục
đích của gom cụm là xác định các cụm tồn tại bên trong một tập hợp dữ liệu không có nhãn
(không biết phần tử nào thuộc vào lớp nào) cho trước.
Gom cụm dữ liệu là một phương pháp học không giám sát (unsupervised learning).
Gom 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. Gom cụm dữ liệu là một ví dụ
của phương pháp học không có thầy. Không giống như phân lớp dữ liệu, gom 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
gom 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 gom 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.
Hình 3: Mô tả tập dữ liệu vay nợ đ
ư
ợc gom thành 3 cụm.
10
Gom cụm có ý nghĩa rất quan trọng trong hoạt động của con người. Ngay từ lúc
bé, con người đã học cách làm thế nào để phân biệt giữa mèo và chó, giữa động vật và
thực vật và liên tục đưa vào sơ đồ phân loại trong tiềm thức của mình. Gom cụm được sử
dụng rộng rãi trong nhiều ứng dụng, bao gồm nhận dạng mẫu, phân tích dữ liệu, xử lý
ảnh, nghiên cứu thị trường Với tư cách là một chức năng khai phá dữ liệu, phân tích
gom cụm có thể được sử dụng như một công cụ độc lập chuẩn để quan sát đặc trưng của
mỗi cụm thu được bên trong sự phân bố của dữ liệu và tập trung vào một tập riêng biệt
của các cụm để giúp cho việc phân tích đạt kết quả.
/ 67?=hB7YNJ@cC76IOP8=AB
Mục tiêu của gom cụm là xác định được bản chất nhóm trong tập dữ liệu chưa có
nhãn. Nhưng để có thể quyết định được cái vì tạo thành một cụm tốt. Nó có thể được chỉ
ra rằng không có tiêu chuẩn tuyệt đối “tốt” mà có thể không phụ thuộc vào kq gom cụm.
Vì vậy, nó đòi hỏi người sử dụng phải cung cấp tiêu chuẩn này, theo cách mà kết quả
gom cụm sẽ đáp ứng yêu cầu.
Theo các nghiên cứu cho thấy thì hiện nay chưa có một phương pháp gom cụm
tổng quát nào có thể giải quyết trọ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 gom cụm cần có cách thức biểu diễn cấu trúc của các dữ liệu, với mỗi
cách thức biểu diễn khác nhau sẽ có tương ứng một thuật toán gom cụm phù hợp. Vì vậy
gom cụm dữ liệu vẫn đang là một vấn đề khó và mở, vì phải giải quyết nhiều vấn đề cơ
bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau, đặc biệt là đối với
dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị dữ liệu và đây cũng là một
trong những thách thức lớn trong lĩnh vực KPDL.
R H7LCDO6CD7YNJ@cC76IOP8=AB
Gom cụm dữ liệu có thể được ứng dụng trong nhiều lĩnh vực như:
• 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
trong CSDL mua hàng
11
• Sử dụng đất: nhận dạng các vùng đất sử dụng giống nhau khi khảo sát CSDL quả
đất
• Bảo hiểm: nhận dạng các nhóm công ty có chính sách bảo hiểm mô tô với chi phí
đền bù trung bình cao.
• 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: Phân loại các cụm sách có nội dung và ý nghĩa tương đồng nhau để
cung cấp cho độc giả
• 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ị
• WWW: Có thể khám phá các nhóm tài liệu quan trọng, có nhiều ý nghĩa trong môi
trường Web. Các lớp tài liệu này trợ giúp cho việc KPTT từ dữ liệu.
1 H7ihB7jB7YNJ@cC76IOP8=AB
Gom 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 gom cụm trong KPDL:
• Có khả năng mở rộng.
• Khả năng thích nghi với các kiểu thuộc tính khác nhau.
• Khám phá các cụm với hình dạng 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.
• 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
gom cụm nhạy cảm với dữ liệu như vậy và có thể dẫn đến chất lượng gom cụm
thấp.
• Ít nhạy cảm với thứ tự của các dữ liệu vào.
• Số chiều (thuộc tính) lớn.
• Gom cụm ràng buộc.
• Dễ hiểu và dễ sử dụng.
12
Với những yêu cầu đáng lưu ý này, nghiên cứu của ta về phân tích gom cụm diễn
ra như sau: Đầu tiên, ta nghiên cứu các kiểu dữ liệu khác và cách chúng có thể gây ảnh
hưởng tới các phương pháp gom cụm. Thứ hai, ta đưa ra một cách phân loại chung trong
các phương pháp gom cụm. Sau đó, ta nghiên cứu chi tiết mỗi phương pháp gom cụm,
bao gồm các phương pháp phân hoạch, phân cấp, dựa trên mật độ, Ta cũng khảo sát sự
gom cụm trong không gian đa chiều và các biến thể của các phương pháp khác.
U @PCDG_?@B\??=[J7\C?K`CDJ@cC76IOP8=AB
Các kỹ thuật gom cụm có rất nhiều cách tiếp cận và các ứng dụng trong thực tế,
nó đề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. Hiện nay, các kỹ thuật gom 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:
• Phương pháp phân cấp:
Hình 4: Các chiến lược gom cụm phân cấp
• Phương pháp dựa trên mật độ:
• Phương pháp cụm dựa trên lưới:
13
Hình 5: Cấu trúc phân cấp.
• Phương pháp cụm dựa trên mô hình
• Phương pháp có dữ liệu ràng buộc:
Hình 6: Các cách mà các cụm có thể
đư
a ra
14
Hiện nay, các phương pháp gom cụm trên đã và đang được phát triển và áp dụng
nhiều trong các lĩnh vực khác nhau và đã có một số nhánh nghiên cứu được phát triển
trên cơ sở của các phương pháp đó như:
• Gom cụm thống kê.
• Gom cụm khái niệm.
• Gom cụm mờ.
• Gom cụm mạng Kohonen.
15
Z k?el?@B\??`HC7T]^C?K`CDD`I76IOP8=AB
• Các thuật toán gom cụm phân hoạch
o Thuật toán k-means.
o Thuật toán PAM.
o Thuật toán CLARA.
o Thuật toán CLARANS.
• Các thuật toán gom cụm phân cấp:
o Thuật toán CURE.
o Thuật toán BIRCH.
o Thuật toán AGNES.
o Thuật toán DIANA.
o Thuật toán ROCK.
o Thuật toán CHANMELEON.
• Các thuật toán gom cụm dựa trên mật độ
o Thuật toán DBSCAN
o Thuật toán OPTICS.
o Thuật toán DENCLUE.
• Các thuật toán gom cụm dựa trên lưới
o Thuật toán STING
o Thuật toán CLIQUE.
• Các thuật toán gom cụm dựa trên mô hình
o Thuật toán EM
o Thuật toán COBWEB.
• Các thuật toán gom cụm có dữ liệu ràng buộc
o FCM.
o ɛFCM.
o FCM-Cải tiến.
16
-R !)
I -):;<
*/* @H=C=AI
K-means là thuật toán gom cụm theo phương pháp phân hoạch và đã được sử
dụngrộng rãi. Cho tập các đối tượng, mục tiêu gom cụm hay phân mảnh là chia tập
đốitượ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ácthuật toán gom cụm đặt các điểm tương tự trong cùng một cụm trong khi các
điểmkhô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ồiqui 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à đầuvào cho một thủ tục gom cụm không cần một mục tiêu. Vì vậy, gom
cụm thường đượcxem 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ámsá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ônggiám sát như gom cụm thường được dùng để khám phá và
mô tả tập dữ liệu trước khithực hiện công việc học có giám sát. Do gom cụm
không dùng các nhãn lớp, khái niệmthức mà ở đó các điểm được gom cụm khác
nhau dựa trênthuật toán gom cụm được áp dụng. Các thuật toán gom cụm khác
nhau thích hợp vớicá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 gomcụm “tốt 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 gom cụm lặp đơn giản. Nó phân mảnh tập dữ
liệucho 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, thihành nhanh, dễ thích nghi và phổ biến trong thực tế. Đây là một trong
những thuậttoán kinh điển trong khai thác dữ liệu.
K-means được nhiều nhà nghiên cứu khám phá thông qua nhiều cách khác
nhau, đángchú ý nhất là Lloyd (1957, 1982), Forgey (1965), Friedman và Rubin
(1967) vàMcQueen (1967). Jain và Dubes mô tả lịch sửk-means theo nhiều biến
17
thể. Gray vàNeuhoff cung cấp nền tảng cho k-means diễn ra trong ngữ cảnh lớn
hơn trên các thuậttoán leo đồi.
*R* @B\??`HC
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
trongkhông gian vectơd chiều U {x | i 1, , N} i = = , với di x ∈ℜbiểu thị đối
tượng (hay điểmdữ liệu) thứi. Thuật toán k-means gom cụm toàn bộ các điểm dữ
liệu trong U thành kcụm C ={C
1
, C
2
, … , C
k
},sao cho mỗi điểm dữ liệu xi 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ùngmã 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ácnhau. 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 vi là mãcụm của xi.
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ềugiá 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-meansphâ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ầnkế tiếp.
Trong các thuật toán gom 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:
18
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ữamỗi điểm xi và thể hiện cụm gần nhất của nó Cj. Biểu thức trên
thường được xem làhàm mục tiêu k-means.
Thuật toán k-means, thay đổi giữa 2 bước: (1) gán lạimã 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 đượckhở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ạobao gồm lấy
mẫu ngẫu nhiên từ tập dữ liệu, xem chúng như giải pháp gom cụm tậpcon 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. Trongthuậ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 khihội tụ.
mS>7/*[Gán dữ liệu] Mỗi điểm được gán vào trọng tâm gần nhất.
mS>7R*Tái định vị “độ trung bình”. Mỗi thể hiện nhóm được tái định vị
vàotâ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 đốivớ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ụctiê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ướclặ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ỗibướ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
theochiều dữ liệu.
19
Hình 4. Thuật toán k-means
*1* @n=D=NCEMokJ@L7?pJ7YN?@B\??`HC IfNCe*
- Độ phức tạp của việc chọn k cụm ban đầu là O(k).
- Tính khoảng cách của n đối tượng với trọng tâm của từng cụm là O(kn).
- Thời gian cập nhật lại centriods là O(n).
- Thời gian của bước 4 là O(n)
Vậy độ phức tạp của thuật toán K-means là:
O(k) + t(O(kn) + O(n) + O(n)) = O(tkn)
*U* Bo=qI
- Hiệu suất tương đối: do t, k << n (t là số lần lặp, k là số cụm, n là tậpvăn
bản) cho nên có sự thực thi rất tốt trong hầu hết các ứng dụng.
- Scalable tương đối: trong khi xử lý các tập dữ liệu lớn.
- Kết thúc ở điểm tối ưu cục bộ, có thể dùng thuật toán di truyền để tìm tối
ưu toàn cục.
*Z* k?el@pC7@[7YN?@B\??`HCG IfNCe
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ể
20
dẫn đến rấtnhiề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 đếncá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ụctiê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ùnghà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. Chia k-
mean làm2, đầ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 ítbền vững nhất thành 2 cụm dùng 2-means. Thuật toán LBG dùng cho
lượng tử hóavec-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ênlà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ứuvấ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ốngkê Σ=σ 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ó, saocho 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ánk-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ếucó các nhóm có hình dạng không lồi.
21
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ớithuật toán khác. Ví dụ, đầu tiên ta có thể gom cụm dữ liệu thành số
lượng lớn cácnhó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ụmphâ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ằmngoà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ộncá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 1967sử 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ớinhững giá trị lớn của k và khi dữ liệu nằm trong không gian có chiều rất cao, có
thể tạimộ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ầnvớ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ầnnhấ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 gom cụm bằng cách lặp, phân tập dữ
liệuthành k cụm. Thuật toán lặp đi lặp lại 2 bước: (1) gom cụm tất cả các điểm
trong tậpdữ 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ảmcủ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ángom 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ỉnhsử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ụccả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.
22
II r!)!$!4d)g
*3* =>=?@=AB
Mô hình không gian vector được nếu như số lượng từ chỉ mục tăng rất lớn thì
kích thước của ma trận từ chỉ mục (term document) A cũng tăng theo rất lớn. Hơn
nữa độ đo Cosines giữa vector truy vấn và vector văn bản là phải khác Zero nếu và
chỉ nếu tồn tại ít nhất từ chỉ mục giữa 2 vector trên.
Latent Semantic Indexing (LSI ) là phương pháp tạo chỉ mục tự động dựa trên
khái niệm để khắc phục hai hạn chế tồn tại trong mô hình không gian vector chuẩn
về hai vấn đề synoymy và polysemy . Với synoymy, nhiều từ có thể được sử dụng
để biểu diễn một khái niệm, vì vậy hệ thống không thể trả về những văn bản liên
quan đến câu truy vấn của người dùng khi họ sử dụng những từ trong câu truy vấn
đồng nghĩa với những từ trong văn bản. Với polysemy, một từ có thể có nhiều
nghĩa, vì vậy hệ thống có thể trả về những văn bản không liên quan. Điều này thực
tế rất thường xảy ra bởi vì các văn bản trong tập văn bản được viết bởi rất nhiều
tác giả, với cách dùng từ rất khác nhau. Một cách tiếp cận tốt hơn cho phép người
dùng truy vấn văn bản dựa trên khái niệm (concept) hay nghĩa (meaning) của văn
bản.
Mô hình LSI cố gắng khắc phục hai hạn chế trên trong mô hình không gian
vector bằng cách chỉ mục khái niệm được tạo ra bởi phương pháp thống kê ( phân
tích SVD ma trận term – document A) thay cho việc sử dụng các từ chỉ mục đơn.
Mô hình LSI dựa trên giả thiết là có các ngữ nghĩa tiềm ẩn (latent semantic) trong
việc sử dụng từ: có nhiều từ biểu diễn cho một khái niệm và một khái niệm có thể
được biểu diễn bởi nhiều từ. Mô hình LSI sử dụng phân tích SVD (Singular Value
Decomposition) ma trận term – document A để phát hiện ra các quan hệ ngữ nghĩa
trong cách dùng từ trong toàn bộ văn bản .
23
*s* @cC?t7@)=CDB8NK&N8Bf$f7`IJ`e=?=`Cd)&$g7YNIN?K\C?u7@vI67
d?fKIO`7BIfC?g
Vấn đề cơ bản của mô hình LSI là phân tích SVD của ma trận term document
A. Nó được biểu diễn như sau:
T
VUA
Σ=
Trong đó:
- U là ma trận trực giao cấp m x r (msố từ chỉ mục) các vector dòng của U là
các vector từ chỉ mục.
- ∑ là ma trận đường chéo cấp rx r có các giá trị suy biến (singular value)
r
σσσ
≥≥≥
21
, với r = rank(A).
- V là ma trận trực giao cấp r x n (n số văn bản trong tập văn bản) - các
vector cột của V là các vector văn bản.
Ví dụ 2.2.2.1: Ta quay lại ví dụ 2.1.3.1 ở trên, phân tích SVD của ma trận term
– document
T
VUA Σ=
trong đó:
−
−
−−
−−−
−−
−−−
=
7071.006394.02774.00127.01182.0
001158.00838.08423.05198.0
7071.006394.02774.00127.01182.0
07071.02847.05308.02567.02670.0
000816.05249.03981.07479.0
07071.02847.05308.02567.02670.0
U
=Σ
4195.0000
08403.000
001158.10
0006950.1
24
−−
−
−−−
−−
−−
=
7071.00577.03712.02815.05288.0
06571.05711.00346.04909.0
5000.01945.06247.03568.04412.0
5000.02760.00998.07549.03067.0
06715.03688.04717.04366.0
V
Ma trận xấp xỉ
T
kkkk
VUA Σ=
có hạng là k với k << r . Trong đó, các cột của U
k
là k cột đầu tiên của U, các cột của V
k
là k cột đầu tiên của của V và
k
Σ
là ma trận
đường chéo cấp k x k với các phần tử nằm trên đường chéo là k giá trị suy biến lớn
nhất của A.
Hình 2.2 Biểu diễn ma trận xấp xỉ A
k
có hạng là k
Ví dụ 2.2: cho k=3, Tìm ma trận xấp xỉ A
3
= U
3
∑
3
V
3
T
:
25