Do đó, việc phân cụm phải được ứng dụng trên tập các tài liệu nhỏ hơn được trả về từ các truy vấn và thay vì trả về một danh sách rất dài các thông tin gây nhập nhằng cho người sử dụng c
Trang 1BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
Trang 2MỤC LỤC
Trang 3Mục lục hình
Trang 4LỜI MỞ ĐẦU
Thế giới con người đang ở trong thời đại thông tin, thời đại mà thông tin có giá trị rất lớn Trong kinh doanh ai có nhiều thông tin hơn người đó sẽ làm chủ thị trường, trong nghiên cứu ai càng nhiều thông tin thì người đó càng có nhiều cơ hội thành công hơn Nhu cầu thu thập các thông tin có ích càng ngày càng trở nên bức thiết Bên cạnh đó, con người lại đối mặt với một thế giới tràn ngập thông tin Thông tin
có ở khắp mọi nơi: internet, phương tiện truyền thông,…và thường có khối lượng khổng lồ, các cơ sở dữ liệu (CSDL) thương mại thường có đến hàng triệu bản ghi.
Để thu thập được các thông tin có ích từ các “núi thông tin” như vậy là một vấn đề không đơn giản? Các công cụ truy vấn truyền thống cũ như SQL không giúp ích được nhiều trong vấn đề này, và từ đó ngành khai khoáng dữ liệu đã ra đời như một
sự tất yếu Khai khoáng dữ liệu giúp cung cấp những thông tin chúng ta cần và đồng thời cũng loại bỏ những thông tin không phù hợp.
Với núi dữ liệu khổng lồ hiện nay, để người sử dụng có thể tìm kiếm được thông tin thích hợp rất khó, vì vậy cần xây dựng các bộ máy tìm kiếm thông minh để giúp người sử dụng chọn được những thông tin gần giống nhau phục vụ yêu cầu của mình Có nhiều hướng tiếp cận khác nhau để giải quyết vấn đề này, các hướng này thường chú ý giảm sự nhập nhằng bằng các phương pháp lọc hay thêm các tùy chọn
để cắt bớt thông tin và hướng biểu diễn các thông tin trả về bởi các máy tìm kiếm thành từng cụm để cho người dùng có thể dễ dàng tìm được thông tin mà họ cần Đã
có nhiều thuật toán phân cụm tài liệu dựa trên phân cụm ngoại tuyến toàn bộ tập tài liệu Tuy nhiên việc tập hợp tài liệu của các máy tìm kiếm là quá lớn và luôn thay đổi
để có thể phân cụm ngoại tuyến Do đó, việc phân cụm phải được ứng dụng trên tập các tài liệu nhỏ hơn được trả về từ các truy vấn và thay vì trả về một danh sách rất dài các thông tin gây nhập nhằng cho người sử dụng cần có một phương pháp tổ chức lại các kết quả tìm kiếm một cách hợp lý
Trang 5Chính vì thế, trong khuôn khổ báo cáo chuyên đề, em xin trình bày sự khái quát về khai phá dữ liệu, và trình bày thuật toán phân cụm dữ liệu K-Means và thuật toán K- Medoids.
Em xin chân thành cảm ơn PGS.TS Đỗ Phúc – Giảng viên môn học Khai phá dữ liệu và kho dữ liệu đã truyền đạt cho em những kiến thức vô cùng quý báu về môn học, cũng như nhiều phương pháp tiếp cận nghiên cứu khoa học bổ ích, và gợi mở cho em nhiều ý tưởng cho quá trình học tập, rèn luyện, phát triển sau này.
Bài báo cáo của em gồm các phần chính:
I Trình bày tổng quan về Khai phá dữ liệu và kho dữ liệu.
II Gom cụm dữ liệu và thuật toán K-Means và thuật toán K-Medoids.
III Trình bày ứng dụng mô phỏng thuật toán K-Means.
Trang 6I Tổng quan về Data mining:[3]
1 Giới thiệu:
Trong thời điểm Công nghệ thông tin đang phát triển mạnh mẽ như hiện nay, vớimật độ sử dụng dày đặt các ứng dụng CNTT vào tất cả mọi ngành nghề trong đờisống, dẫn đến lượng thông tin cần để lưu trữ tăng đột biến
Vậy vấn đề được đặt ra như sau: làm thế nào để người sử dụng sử dụng hiệu quảcác nguồn dữ liệu mà mình đang lưu trữ, làm thế nào để khai thác được dữ liệu có ích
từ những khối dữ liệu khổng lồ có sẵn…
Nhìn vào cách thức hoạt động của một số ứng dụng như: chương trình tìm kiếmGoogle, mạng chia sẻ Facebook, hay website buôn bán trực tuyến Amazon.comngười sử dụng nhận thấy như sau:
• Google luôn trả cho người sử dụng kết quả tìm kiếm tốt nhất, thông minh nhất và có
độ chính xác cao hơn rất nhiều khi người sử dụng đăng nhập và tìm kiếm bằng tàikhoản Google, so với khi tìm kiếm nhưng không sử dụng tài khoản Google
• Khi sử dụng Facebook người sử dụng thường thắc mắc tính năng suggestions friends.Bởi những tài khoản chức năng này giới thiệu đa số là những người mà họ quen biết.Vậy tại sao Facebook lại thông minh đến mức như vậy?
• Amazon.com là website bán hàng trực tuyến lớn trên internet, người sử dụng để ýrằng mỗi khi người sử dụng xem thông tin chi tiết về một món hàng nào, ví dụ mặthàng sách, khi họ xem một quyển sách nào đó trên website thì bao giờ cũng kèm theo
1 danh sách các quyển sách gợi ý mua kèm theo quyển người sử dụng đang xem, mộtthống kê cho thấy có tới trên 70% đầu sách được người dùng mua thêm thông quahình thức gợi ý này Vậy điều gì làm việc bán sách hiệu quả đến như vậy?
Tất cả các vấn đề trên đều có một hướng giải quyết liên quan đến Data mining.Data mining được định nghĩa như là một quá trình chắt lọc, trích xuất thông tin cómối quan hệ hoặc có mối tương quan nhất định từ một kho dữ liệu lớn (cực lớn)nhằm mục đích dự đoán các xu thế, các hành vi trong tương lai, hoặc tìm kiếm nhữngtập thông tin hữu ích mà bình thường không thể nhận diện được Một ví dụ hay được
sử dụng là việc khai thác vàng từ đá và cát, Data mining được ví như công việc "Đãi
Trang 7cát tìm vàng" trongmột tập hợp lớn các dữ liệu cho trước Thuật ngữ Data mining ámchỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô.
2 Ứng dụng của Data mining
Ứng dụng của Data mining rất đa dạng:
• Phân tích dữ liệu và hỗ trợ quyết định
o Phân tích và quản lý thị trường: Quảng cáo cá nhân (target marketing), quản lý quan
hệ kháchhàng (CRM), phân tích giỏ hàng, bán hàng liên quan (crossselling), phânchia thị trường
o Phân tích và quản lý rủi ro: Dự đoán, giữ khách hàng, phân tích cạnh tranh
o Phát hiện gian lận và phát hiện các mẫu bất thường
o Khai phá văn bản (nhóm tin – email, tài liệu…)
o Khai phá Web
o Khai phá dữ liệu luồng (chuỗi)
Các công cụ, kỹ thuật Data mining có thể trả lời các câu hỏi mà các công cụ truyềnthống đòi hỏi rất nhiều thời gian cần thiết để có thể giải đáp Nó có thể tìm thấy đượcnhững thông tin cực kỳ hữu ích mà rất dễ bị bỏ qua hoặc không xem xét đến để cóthể dự đoán những xu thế, hành động xảy ra trong tương lai
Để có thể Data mining một cách hiệu quả, điều đầu tiên cần phải thu thập dữ liệu
và định nghĩa lại theo các tiêu chí cần phân tích Các kỹ thuật Data mining có thể càiđặt rất nhanh chóng trên các nền tảng phần mềm, phần cứng phổ thông mà không cầnđòi hỏi quá phức tạp, tuy vậy Data mining thường gắn liền với việc phân tích mộtkhối lượng dữ liệu cực lớn nên cần ứng dụng các công nghệ high performanceclient/server hoặc xử lý song song (parallel programming)
Data mining ứng dụng trong các bài toán yêu cầu cần có chức năng như:
• Tự động hóa việc dự đoán các xu thế và hành vi sẽ diễn ra trong tương lai: Datamining tự động hóa quá trình tìm kiếm và trích xuất các tập thông tin có mối quan
hệ hoặc tương quan trong một tập dữ liệu cực lớn Một ví dụ đơn giản: tại saoFacebook lại có thể gợi ý cho người sử dụng toàn những người mà họ đã quenbiết? Facebook dựa vào các thông tin mà người sử dụng lưu trữ như: các mối quan
Trang 8hệ, các công ty đã làm, các trường đã học…Facebook đã mô hình hóa các tham số
có độ liên quan nhất định để đưa ra những gợi ý mà có xác xuất đúng rất cao Tất
cả các điều đó Facebook làm được là quá trình thu thập dữ liệu hoạt động củangười dùng trên site, sau đó sử dụng các công nghệ data mining để cung cấp nộidung, tính năng phù hợp nhất cho người dùng
• Tự động hóa việc khám phá, nhận diện ra những tập thông tin quá khứ mà hệthống chưa biết: Công cụ Data mining trong quá trình phân tích dữ liệu sẽ nhậndiện ra những tập thông tin, dữ liệu không có hoặc bị ẩn bởi những mối liên hệ màđược xác định trước Ví dụ như trong việc bán hàng, có những sản phẩm không cómối liên hệ gì với nhau, nhưng lại hay bán được cùng nhau, từ đó đưa ra cơ chếrecommendation (tự động giới thiệu sản phẩm đến khách hàng) Cụ thể, tại saoAmazon lại có thể đưa ra danh sách các quyển sách bán kèm có tỷ lệ bán được caonhư vậy? Để làm được điều này Amazon đã đầu tư phát triển hệ thốngrecommendation trong hàng chục năm, thời gian dài đó không chỉ là phát triểnthuần túy công nghệ mà còn là quãng thời gian thu thập và phân tích hành vi người
sử dụng trên site của Amazon, thời gian càng dài, dữ liệu thu thập càng lớn, dẫnđến tập thông tin có độ tương quan càng nhiều và càng chính xác Ví dụ: khi bạnđăng nhập vào website, hệ thống sẽ lưu lại những nội dung tìm kiếm của bạn, vàkhi bạn xem một cuốn sách A bất kỳ, hệ thống sẽ tự động giới thiệu cuốn sách B
mà tỷ lệ mua cùng cuốn A là cao nhất và những cuốn sách có nội dung gần giốngcuốn A và phù hợp với các nội dung tìm kiếm mà hệ thống đã lưu về bạn Và đâycũng là một quá trình Data mining
Ngày nay, các công nghệ data mining được ứng dụng rộng rãi trong các công tylấy khách hàng làm trung tâm như truyền thông, tài chính, marketing, bán hàng, cácnghành công nghiệp sản xuất … Nó cho phép các công ty xác định được các mốiquan hệ giữa các yếu tố nội tại như giá thành, mẫu mã, cách thức quảng cáo, thậm chí
là kỹ năng của nhân viên công ty… các yếu tố bên ngoài như đối thủ cạnh tranh,chính sách kinh tế hay nhu cầu thị trường … Và nó còn hỗ trợ việc xác định được sự
Trang 9tác động của các chính sách khuyến mãi, giảm giá, độ hài lòng của khách hàng và lợinhuận của doanh nghiệp…
3 Các bước chính của Data mining
Data mining bao gồm các bước sau:
• Thu thập, chuẩn hóa dữ liệu và nhập dữ liệu vào hệ thống kho dữ liệu(Datawarehouse)
• Đưa ra các cơ chế truy xuất cho các ứng dụng phân tích dữ liệu
• Sử dụng các phần mềm phân tích để tính toán
• Kết xuất dữ liệu dưới dạng dễ hiểu, như biểu đồ hoặc dạng report
4 Các hướng chính của data mining
Data mining được chia thành các hướng chính như:
• Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt khái niệm
Ví dụ: tóm tắt văn bản
• Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá đơn giản
Ví dụ: “60 % phụ nữ vào siêu thị nếu mua kem dưỡng da thì có tới 80% trong số họ
sẽ mua thêm sữa rửa mặt”
• Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh, tàichính & thị trường chứng khoán …
• Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trongnhững lớp đã biết trước Ví dụ: phân lớp người truy cập theo quốc gia, tỉnh thành…
• Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây
quyết định, mạng nơ ron nhân tạo
• Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên củacụm chưa được biết trước)
• Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá luật kết hợpnhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụngnhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao
Trang 105 Một số công nghệ thường áp dụng trong data mining:
• Mạng trí tuệ nhân tạo (Artificial neural networks): Đây là mô hình mà hệ thống cóthể tự học thông qua đào tạo với tập dữ liệu ban đầu, từ đó suy đoán ra các tập kếtquả từ tập dữ liệu mà nó khai thác
• Cây quyết định (Decisions Trees):
Học cây quyết định là phương pháp được sử dụng rộng rãi cho việc học quy nạp
từ một mẫu lớn Đây là phương pháp xấp xỉ hàm mục tiêu có giá trị rời rạc Mặtkhác, cây quyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng
tri thức là các luật If-then
Thuộc tính tốt nhất là thuộc tính có độ lấy thông tin lớn nhất
Phương pháp học máy dùng cây quyết định và dựa trên cây quyết định là rấthiệu quả bởi vì nó có thể làm việc được với một số lượng lớn các thuộc tính, và hơnnữa từ cây quyết định có thể rút ra được một hệ thống luật học được
• Giải thuật di truyền (Generic Algorithms): Kỹ thuật này sử dụng trong các quá trìnhphối hợp, biến đổi, chọn lọc tự nhiên kế thừa từ khái niệm tiến hóa
• Phương pháp Người láng giềng gần nhất (Nearest neighbor method): Đây là kỹ thuậtphân loại từng bản ghi/thông tin trong tập dữ liệu dựa trên sự kết hợp của k records
có độ giống nhau nhất trong tập dữ liệu quá khứ
• Nguyên tắc suy diễn (Rule induction): Kỹ thuật bóc tách dữ liệu dựa trên nguyên tắcNếu-Thì từ các tập dữ liệu thống kê
Trang 11II Gom cụm dữ liệu
1 Giới thiệu:
Gom cụm là hình thức học không giám sát trong đó các mẫu chưa được gánnhãn Mục đích của gom cụm dữ liệu là gom dữ liệu tương tự nhau, thành từng cụmtheo 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ấphơn so với các đối tượng trong cùng một cụm
Có nhiều phương pháp gom cụm như:
• Phương pháp dựa trên mật độ
• Phương pháp dựa trên mô hình
• Phương pháp dựa trên lưới
Các thuậ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ểm không tương tự đặt trong nhóm khác 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àđầu và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đượ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ánkhô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áctác vụ không giá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 khi thực hiện công việc học có giám sát Do gom cụm không dùng cácnhã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 gomcụm khác nhau dựa trên thuật toán gom cụm được áp dụng Các thuật toán gom cụmkhá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ácnhau Vì vậy thuật toán gom cụm “tốt nhất” để sử dụng tùy thuộc vào ứng dụng.Thuật toán K-means là phương pháp được sử dụng nhiều nhất trong hướng tiếpcận phân nhóm phân hoạch (Partitional clustering) Thuật toán này có độ phức tạpthấp O(tkn) với t là số lần lặp, k là số cụm, n là số đối tượng sẽ gom cụm Tư tưởngchính của thuật toán K-means là gán mỗi ứng viên vào cụm có tâm cụm gần nó nhất,
Trang 12trong đó tâm cụm là giá trị trung bình của tất cả các đối tượng trong cụm Với mụctiêu cải thiện hiệu quả thuật toán, có khá nhiều thuật toán khác như là: thuật toán k-medoids thuật toán CLARANS, thuật toán DBSCAN …
Thuật toán k-medoids, thay vì lấy giá trị trung bình của các đối tượng trong cụmlàm tâm như K-means, thuật toán này lấy một đối tượng trong cụm làm tâm của cụm(gọi là đối tượng tâm) Thuật toán này vẫn dựa trên nguyên tắc làm cực tiểu sự khácnhau giữa các đối tượng trong cùng một cụm Ý tưởng chính của k-medoids là chọnngẫu nhiên k đối tượng vào k cụm, coi mỗi đối tượng này là tâm của cụm Phân bổcác đối tượng còn lại vào cụm mà sự khác nhau của nó với đối tượng tâm của cụm là
ít nhất Sau đó lặp lại quá trình: Thay đổi đối tượng tâm của mỗi cụm sao cho chấtlượng của cụm được cải thiện Chất lượng của cụm được lượng giá bởi một hàm đo
sự khác nhau giữa một đối tượng và đối tượng tâm của cụm chứa nó Quá trình lặpcho đến khi không còn sự thay đổi nào về lực lượng cũng như hình dạng của cáccụm Thuật toán k-medoids mạnh hơn thuật toán k-means trong các trường hợp dữliệu có nhiễu vì k-medoids chịu ảnh hưởng ít hơn của nhiễu và các giá trị chênh lệnh
so với giá trị trung bình Tuy nhiên, ứng dụng k-means là phương pháp đơn giản hơn
2 Thuật toán k-means
K-means là thuật toán gom 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 gom 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
Thuật toán K-means phân mảnh 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ếntrong thực tế Đây là một trong những thuật toán kinh điển trong khai thác dữ liệu.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 {x i | i= 1,…, N}, xi biểu thị đối tượng (hay điểm dữ
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 k
cụm { C1,C2,…,Ck }, sao cho mỗi điểm dữ liệu x i nằm trong một cụm duy nhất Để
Trang 13Hiệu chỉnh lại trọng tâm của các cluster
Hiệu chỉnh lại trọng tâm của các cluster
Gán mỗi điểm còn lại vào cluster gần nhất
K=2 Chọn ngẫu nhiên các điểm vào K cluster
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 vectơ 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
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
Thuật toán K-Means bao gồm các bước cơ bản như sau:
Input: Một cơ sở dữ liệu bao gồm n đối tượng và số các cụm k ().
Output: Các cụm Ci (i=1,…,k) sao cho khoảng cách từ mỗi điểm đến cụm đó nhỏnhất
Bước 1 Chọn ngẫu nhiên k điểm làm trọng tâm ban đầu của k cụm.
Bước 2 Gán (hoặc gán lại) từng điểm vào cụm có trọng tâm gần điểm đang xét nhất.
Nếu không có phép gán nào thì dừng lại (Vì nếu không có phép gán nào lại có nghĩacác cụm đã ổn định và thuật toán không thể cải thiện làm giảm độ phân biệt hơn đượcnữa)
Bước 3 Tính lại trọng tâm cho từng cụm.
Bước 4 Quay lại bước 2.
Trang 14Điểm mạnh của phương pháp gom cụm k-means
• Scalable tương đối trong khi sử lý các tập dữ liệu lớn
• Độ phức tạp của thuật toán này là O(tkn) Trong đó n là số mẫu trong Cơ sở
dữ liệu, K là số cluster, t là số lần lặp Thông thường t, k << n Nên thuật toánnày có hiệu quả tương đối với các Cơ sở dữ liệu lớn
• Thường kết thúc ở điểm tối ưu cục bộ, có thể tìm được tối ưu toàn cục dùngcác kỹ thuật như thuật toán di truyền
Điểm yếu của phương pháp gom cụm k-means
• Có thể áp dụng chỉ khi xác định được trị trung bình của các đối tượng
• Cần chỉ định trức k, số các cụm
• Không thể xử lý dữ liệu chuỗi và outliers
• Không phù hợp để khám phá các cụm với dạng không lồi hay cụm có kíchthước khác nhau
Đề xuất ứng dụng
• Tiếp thị: khám phá các nhóm khác hàng phân biệt trong CSDL mua hàng
• Sử dụng đất: nhận dạng các vùng đất sử dụng giống nhau khi khảo sát CSDLquả đất
Hình 1: Minh họa thuật toán K-Means
Trang 15• 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 chiphí đền bù trung bình cao.
• Hoạch định thành phố: nhận dạng các nhóm nhà cửa theo loại nhà, giá trị và
vị trí địa lý
3 Thuật toán k-medoids
Thuật toán k-medoids hay được gọi là PAM (Partitioning Around Medoids) đượcKaufman và Rousseeuw đề xuất 1987, là thuật toán mở rộng của thuật toán k-means,
có khả năng xử lý hiệu quả đối với dữ liệu nhiễu hoặc các phần tử ngoại lai.Thay vì
sử dụng các trọng tâm như k-means, PAM sử dụng các đối tượng medoid để biểudiễn cho các cụm dữ liệu, một đối tượng medoid là đối tượng đặt tại vị trí trung tâmnhất bên trong của mỗi cụm Vì vậy, các đối tượng medoid ít bị ảnh hưởng của cácđối tượng ở rất xa trung tâm, trong khi đó các trọng tâm của thuật toán k-means lạirất bị tác động bởi các điểm xa trung tâm này Ban đầu, PAM khởi tạo k đối tượngmedoid và phân phối các đối tượng còn lại vào các cụm với các đối tượng medoid đạidiện tương ứng sao cho chúng tương tự với đối tượng medoid trong cụm nhất Để xác
định các medoid, PAM bắt đầu bằng cách lựa chọn k đối tượng medoid bất kỳ Sau
mỗi bước thực hiện, PAM cố gắng hoán chuyển giữa đối tượng medoid Om và mộtđối tượng Op không phải là medoid, miễn là sự hoán chuyển này nhằm cải tiến chất
lượng của phân cụm, quá trình này kết thúc khi chất lượng phân cụm không thay đổi.Chất lượng phân cụm được đánh giá thông qua hàm tiêu chuẩn, chất lượng phân cụmtốt nhất khi hàm tiêu chuẩn đạt giá trị tối thiểu Để quyết định hoán chuyển hai đốitượng Om và một đối tượng Op hay không, thuật toán PAM sử dụng giá trị tổng chiphí hoán chuyển Cjmp làm căn cứ:
Om: Là đối tượng medoid hiện thời cần được thay thế
Op: Là đối tượng medoid mới thay thế cho Om
Oj: Là đối tượng dữ liệu (không phải medoid) có thể được chuyển sang cụm khác
Om,2: Là đối tượng medoid hiện thời khác với Om mà gần đối tượng Oj nhất
Trang 16Bốn trường hợp như mô tả trong thí dụ trên, PAM tính giá trị hoán đổi Cjmp chotất cả các đối tượng Oj Cjmp ở đây nhằm để làm căn cứ cho việc hoán chuyển giữa Om
và Op Trong mỗi trường hợp Cjmp được tính với 4 cách khác nhau như sau:
Trường hợp 1: Giả sử Oj hiện thời thuộc về cụm có đại diện là Om và Oj tương tựvới Om,2 hơn Op (d(Oj,Op)d(Oj,Om,2)) Trong khi đó, Om,2 là đối tượng medoid tương tựxếp thứ 2 tới Oj trong số các medoid Trong trường hợp này, ta thay thế Om bởi đốitượng medoid mới Op và Oj sẽ thuộc về cụm có đối tượng đại diện là Om,2 Vì vậy, giátrị hoán chuyển Cjmp được xác định như sau: Cjmp= d(Oj,Om,2) - d(Oj,Om) Giá trị Cjmp làkhông âm
Trường hợp 2: Oj hiện thời thuộc về cụm có đại diện là Om nhưng Oj ít tương tựvới Om,2 so với Op (d(Oj,Op)d(Oj,Om,2)) Nếu thay thế Om bởi Op thì Oj sẽ thuộc về cụm
có đại diện là Op Vì vậy, giá trị Cjmp được xác định như sau:
Cjmp= d(Oj,Op) - d(Oj,Om) Giá trị Cjmp có thể là âm hoặc dương
Hình 2: Trường hợp C jmp = d(O j ,O m,2 ) - d(O j, O m ) không âm
Trang 17Trường hợp 3: Giả sử Oj hiện thời không thuộc về cụm có đối tượng đại diện là
Om mà thuộc về cụm có đại diện là Om,2 Mặt khác, giả sử Oj tương tự với Om,2 hơn sovới Op, khi đó, nếu Om được thay thế bởi Op thì Oj vẫn sẽ ở lại trong cụm có đại diện
là Om,2 Do đó: Cjmp= 0
Trường hợp 4: Oj hiện thời thuộc về cụm có đại diện là Om,2 nhưng Oj ít tương tựtới Om,2 hơn so với Op.Vì vậy, nếu ta thay thế Om bởi Op thì Oj sẽ chuyển từ cụm Om,2
sang cụm Op Do đó, giá trị hoán chuyển Cjmp được xác định là:
Hình 3: Trường hợp C jmp = d(O j ,O p ) - d(O j, O m ) có thể là âm hoặc dương
Hình 4: Trường hợp C jmp bằng
không
Trang 18Cjmp= d(Oj,Op) - d(Oj,Om,2) Giá trị Cjmp luôn âm.
Kết hợp cả bốn trường hợp trên, tổng giá trị hoán chuyển Om bằng Op được xácđịnh như sau:
Thuật toán PAM gồm các bước thực hiện chínhnhư sau:
INPUT: Tập dữ liệu có n phần tử, số cụm k
OUTPUT: k cụm dữ liệu sao cho chất lượng phân hoạch là tốt nhất.
Bước 1: Chọn k đối tượng medoid bất kỳ;
Bước 2: Tính TCmp cho tất cả các cặp đối tượng Om, Op.Trong đó Om là đối tượngmedoid và Op là đối tượng không phải là modoid
Bước 3: Với mỗi cặp đối tượng Om và Op Tính min Om, min Op, TCmp Nếu TCmp là
âm, thay thế Om bởi Op và quay lại bước 2 Nếu TCmp dương, chuyển sang bước 4
Bước 4: Với mỗi đối tượng không phải là medoid, xác định đối tượng medoid tương
tự với nó nhất đồng thời gán nhãn cụm cho chúng
Trong bước 2 và 3, có PAM phải duyệt tất cả k(n-k) cặp Om,Op Với mỗi cặp,việc tính toán TCmp yêu cầu kiểm tra n-k đối tượng Vì vậy, độ phức tạp tính toán của
Hình 5: Trường hợp C jmp = d(O j ,O p ) - d(O j, O m,2 ) luôn âm
Trang 19Tính giá trị khi thay đổi
Chọn một đối tượng không là trọng tâm Orandom
Gán mỗi đối tượng còn lại vào cụm gần nhất
Chọn đối tượng bất kỳ vào k cụm
PAM là O( I.k.(n-k)2), trong đó I là số vòng lặp Như vậy, thuật toán PAM kém hiệu
quả về thời gian tính toán khi giá trị của k và n là lớn
Ví dụ: Trong không gian hai chiều cho n = 10 điểm, cần chia thành k =2 cụm.
Các bước thực hiện của thuật toán k-medoids được chỉ ra:
Hình 6: Các bước thực hiện của k-medoids
Đầu tiên, chọn hai điểm bất kì vào hai cụm (điểm màu xanh đậm), rồi xét các điểm
còn lại và đưa chúng vào một trong hai cụm với điểm tâm lần lượt là hai điểm đã
chọn ban đầu
Tiếp theo, chọn một điểm bất kì khác điểm tâm (điểm màu đỏ) Tính giá của phép
chuyển đổi điểm tâm từ điểm màu xanh -> điểm màu đỏ Nếu giá này chất lượng hơn
thì coi điểm đỏ là tâm của cụm mới và thực lặp lại quá trình đó cho đến khi không
còn sự thay đổi nào
Nhận xét:
Thuật toán k-medoids mạnh hơn thuật toán k-means trong các trường hợp dữ liệu
có nhiễu vì k-medoids chịu ảnh hưởng ít hơn của nhiễu và các giá trị chênh lệnh so
với giá trị trung bình Tuy nhiên cả hai thuật toán này đều yêu cầu đưa vào số lượng
cụm k [2]
K=2
Lặp lại cho đến khi không
còn sự thay đổi nào
Thay thế
O bởi Orando
m nếu giá trị tốt hơn