Nội dung thuật toán K-means cần được giả định số K để xác định số lượng cụm cần được tạo trong quá trình phân nhóm, như nếu K = 2, sẽ có cụm và đối với K = 3, sẽ có 2 3 cụm … K-means dự
Trang 1
TR¯àNG Đ¾I HàC PHENIKAA
KHOA CÔNG NGH THÔNG TIN à
-÷ö -
Báo cáo bài t ập lß n môn Khai phá d li u ữ ệ
SVTH:
Trang 22
Lái m u ở đầ
D ữ li u trong t nhiên là m t tài nguyên vô t n, nó t n t i r t nhi u d ng, v t ệ ự ộ ¿ ồ ¿ ở ấ Á ¿ ¿
ch ất, thông tin k c à ả con người Và trong th i i c a công ngh thông tin, d li u ờ đ¿ ủ ệ ữ ệ
c ủa t nhiên dự ần d n chuyầ Ãn thành thông tin và lưu trữ khắp nơi trên th¿ gi ới số Khai thác d li u là m t ngành khoa h c có nhi u ng d ng trong th c tữ ệ ộ ọ Á ứ ụ ự ¿, đặc bi t ệ
trong các ngành kinh t h c Vi c khai thác d li u có hi¿ ọ ệ ữ ệ ệu qu hay không ph ả ụ
thu ộc vào nhi u y u t Hai trong s Á ¿ ố ố đó là thu¿t toán dùng đà khai phá dữ liệu và
lo ¿i d li u muữ ệ ốn khai phá Trong điÁu kiện công ngh thông tin phát tri n m nh, ệ Ã ¿
d ữ li u t ệ ự nhiên đã hầu như chuyÃn thành d ữ liệu số và đó chính là điÁu kiện đÃ
các thu t toán khai phá d li¿ ữ ệu có cơ hội phát triÃn bùng n ổ
Trong các thu t toán v khai phá d li u, thu t toán phân c¿ Á ữ ệ ¿ ụm d liữ ệu được bi t ¿đ¿n nhi u vì khÁ ả năng áp dụng của nó trong công vi c phân tích và ch n l c d ệ ọ ọ ữ
li ệu c n thiầ ¿t từ ngu n dồ ữ liệu số Và trong các thu t toán phân c¿ ụm đó, thu¿t toán K-means được xem như một thu¿t toán cơ bản, khởi đầu cho phương pháp khai
phá d li u bữ ệ ằng cách phân c m ụ
Tuy còn h n ch ¿ ¿ nhưng thu¿t toán K-means là n n t ng, ch ra mÁ ả ỉ ột hướng đi vÁ
khai phá d li ữ ệu b ng cách gom cằ ụm và đ¿t được hi u qu cao Không nh ng vệ ả ữ ¿y, K-means còn là khởi đầu cho nhi u thu t toán phân cÁ ¿ ụm ra đờ ¿i ti p theo v i m c ớ ụ
đích đ¿t được hiệu qu t ả ối ưu nhất
Và trong báo cáo này chúng em xin được trình bày vÁ K-means, v nhÁ ững ưu
nhược điÃm và đÁ xuất ra những hướng kh c ph c cho thu t toán này ắ ụ ¿
Và đà hoàn thành bài báo cáo này chúng em xin được cảm ơn sự giúp đỡ và h ỗ trợ nhi ệt tình t TS Trừ ịnh Thành đã giúp chúng em hiÃu được nh ững vấn đÁ quan
tr ọng của thu¿t toán K-means
Trang 3M ục lục:
N i dung
L ái m ở đầ 2 u
M ục lụ 3 c:
1 Thu t toán K-meansậ 4
1.1 T ng quan 4 ổ 1.2 N i dung thu t toán 5 ộ ậ 1.3 Đặc điểm c a thu t toán 7 ÿ ậ 1.4 Các bi n th cế ể ÿa K-means 11
2 Āng dụng cÿa thuật toán K means trong thực tế- 12
2.1.Phân đoạn ảnh 13
2.2.Nhận dạng 15
2.3.Khai phá d li u 17 ữ á 3 Cài đặt thuật toán K-means 18
3.1 Ý tưởng thuật toán K-means 18
3.2 Cài đặt và kiểm th thu t toán 19 ử ậ 3.3 Nhận xét và đưa ra hướng phát tri n 23 ể 4 Kết luận 26
5 Phân công công việc 26
Bảng phân công công vi c 26 á 6 Tài liệu tham khảo 26
Trang 4Thuật toán phân cụm K-means tính toán các tâm cÿa mỗi cụm dữ liáu và lặp lại cho đến khi tâm mỗi cụm đươc tối ưu Thuật toán cần giả định dữ liáu cần phân rabao nhiêu cụm trước khi phân K-means còn được gọi là thuật toán phân cụm phẳng Số lượng các cụm được tìm thấy từ dữ liáu bằng phương pháp này được ký hiáu bằng chữ 'K' trong K-means
Trong phương pháp này, các điểm dữ liáu được gán cho các cụm sao cho tổng bình phương khoảng cách các điểm dữ liáu đếntừ tâm mỗi cụm càng nhỏ càng tốt Cần lưu ý rằng tính đa dạng giảm trong các cụm dẫn đến nhiều điểm dữ liáu giống hát nhau hơn trong cùng một cụm
Trang 5Ví dụ:Một công ty mu n t o ra nh ng ố ạ ữ chính sách ưu đãi cho những nhóm khách hàng khác nhau d a trên s ự ự tương tác giữa mỗi khách hàng với công ty đó (số năm
là khách hàng; s tiố ền khách hàng đã chi trả cho công ty; độ tuổi; giới tính; thành phố; ngh nghiề áp; …) Giả sử công ty đó có rất nhiều dữ liáu c a rÿ ất nhi u khách ềhàng, để phân loại thì đầu tiên ta nghĩ đến chính là K-means Clustering Sau khi đã phân ra đượ ừng nhóm, nhân viên công ty đó có thểc t lựa chọn ra m t vài khách ộhàng trong mỗi nhóm để quyết định xem mỗi nhóm tương āng đó ng v i nhóm ā ớkhách hàng nào Ph n vi c cu i cùng này c n s can thi p cầ á ố ầ ự á ÿa con người, nhưng lượng công viác đã được rút gọn đi rất nhiều
1.2 Nội dung thuật toán
K-means cần được giả định số K để xác định số lượng cụm cần được tạo trong quá trình phân nhóm, như nếu K = 2, sẽ có cụm và đối với K = 3, sẽ có 2 3 cụm … K-means dựa trên tâm mỗi cụm, trong đó các điểm dữ liáu bất kì được liên kết với một tâm Mục đích chính cÿa thuật toán này là giảm thiểu tổng khoảng cách giữa điểm dữ liáu và tâm các cụm tương āng cÿa chúng
Thuật toán lấy tập dữ liáu không được gắn nhãn làm đầu vào, chia tập dữ liáu thành K số cụm và lặp lại quá trình cho đến khi nó không tìm thấy cụm tối ưu hơn Giá trị cÿa cần được xác định trước trong thuật toán này K
Mô tả bằng toán học:
Bước 1: Tạo các trung tâm ngẫu nhiên
Trang 66
C là tập K phần tử m là tâm cÿa K cụm ta sẽ phân ra
Bước 2: Gán các điểm dữ liáu vào các cụm
Với mỗi điểm dữ liáu, ta sẽ tính toán khoảng cách cÿa nó tới các tâm m ở trên (bằng Khoảng cách Euclid) Ta sẽ gắn chúng vào các tâm gần nhất Tập hợp các điểm được gán vào cùng một tâm sẽ tạo thành một cụm
Tập hợp các điểm x là con cÿa tập S khi khoảng cách bình phương từ điểm p i
xp đến tâm mi ((xp -mi) 2) cÿa tập m là nhỏ nhất so với các khoảng cách từ i
điểm x đến các tâm còn lại.p
Bước 3: Cập nhật trung tâm
Với mỗi cụm đã được tìm ở bước 2, tâm mới sẽ là trung bình cộng cÿa các điểm dữ liáu trong cụm đó
Tâm m isẽ được tính lại bằng tổng tọa độ tất cả các điểm trong tập Si và chia tổng số phần tử cÿa tập để lấy trung bình cho tâm mi
Như vậy, thuật toán phân cụm K-means chÿ yếu thực hián hai thao tác sau:
A Xác định giá trị tốt nhất cho mỗi tâm cÿa K cụm bằng một quy trình lặp lại
B Gán mỗi điểm dữ liáu cho tâm K gần nhất cÿa nó Những điểm dữ liáu gần tâm K cụ thể nào thì sẽ được phân vào cụm đó
Do đó mỗi cụm có các điểm dữ liáu với một số điểm chung và nó nằm cách
xa các cụm khác
Trang 7Biểu diễn thuật toán bằng hình ảnh:
• K tâm ban đầu được tạo ngẫu nhiên (K=3) và được biểu dißn bằng 3 màu khác nhau
• K cụm được tạo ra bằng cách tính khoảng cách đến từ các điểm dữ liáu đến mỗi tâm, khoảng cách điểm dữ liáu đến tâm nào gần nhất thì điểm dữ liáu sẽ thuộc cụm có tâm đó
• Tâm mới cÿa mỗi cụm sẽ được tính lại bằng cách tính trung bình tọa độ cÿa tất cả các điểm trong cụm
• Bước 2 và 3 sẽ được lặp đi, lặp lại cho đến khi đạt được sự hội tụ
1.3 Đặc điểm cÿa thuật toán
- Số cụm k luôn ổn định, bảo đảm hội tụ sau một s ố bước h u h n ữ ạ
- Các cụm được tách bi t rõ ràng không có hiá án tượng một đối tượng xuất hián trong nhi u c m d li u khác nhau ề ụ ữ á
Trang 88
- Có kh ả năng sửa đổi, nâng cấp để tổng quát hóa v i các cớ ụm có hình
dạng, kích thước khác nhau, chẳng hạn như các cụm hình elip
• Nh°ợc điểm:
- Lựa ch n K th công ọ ÿ
- Kết qu u ra ph thu c vào các giá tr ả đầ ụ ộ ị ban đầu
Trang 9- Khó xác định được s c m th c s có trong không gian d liố ụ ự ự ữ áu, ph i th ả ửvới nhi u K khác nhau ề
Đố ới v i K nh , ta có th gi m thi u s ph thu c bỏ Ã ả Ã ự ụ ộ ằng cách ch y K-means ¿
nhi Áu lần với các giá tr kh i t o khác nhau và ch n ra k t qu t t nh t ị ở ¿ ọ ¿ ả ố ấ
Nhưng khi tăng K lên, ta cần có các phiên b n nâng c p c a K-ả ấ ủ means đÃ
ch ọn các giá tr t ị ốt hơn của các tâm ban đầu (K-mean seeding)
- Khó phát hi n các loá ại c m có hình d ng ph c t p ụ ạ ā ạ
Trang 1010
- Phân nhóm d li u vữ á ới các kích thước và mật độ khác nhau
K-means g p s cặ ự ố khi phân c m d li u trong các c m có kích ụ ữ ệ ụ thước va
m¿t độ khác nhau ĐÃ phân c ụm d liữ ệu như v¿y, ta c n sầ ửa đổi, nâng c p ấ
K- means đà tổng quát hóa v i các c m có hình dớ ụ ¿ng, kích thước khác nhau
Trang 11- Không th x ể ử lý được nhóm các giá tr ngo i lai.ị ạ
Các tâm có th b kéo theo các ph n t ngo i lai, ho c các ph n t ngo i à ị ầ ử ¿ ặ ầ ử ¿
lai có th nhà ¿n được cụm riêng thay vì b qua chúng ỏ ➔ cân nh c loắ ¿ ỏi b
ho ặc c t b ắ ớt các điÃm dữ li u ngoệ ¿i lai trước khi phân c m ụ
1.4 Các biến thể cÿa K-means
K-medoid: Tương tự thuật toán K-means, m i cỗ ụm được đại dián bởi một trong các tr ng s ọ ố các đối tượng cÿa cụm Thông thường điểm gần trọng tâm s ẽ được
chọn làm điểm đại di n c a c m Thu t toán này kh c phá ÿ ụ ậ ắ ục được nhiều điểm yếu trong K-means nhưng có độ phāc tạp tính toán cao
Tìm hi u thêm v K-medoidể ề : https://en.wikipedia.org/wiki/K-medoids
Fuzzy C-means: Có chiến lược phân c m gi ng K-ụ ố means nhưng có điểm khác là một điểm dữ liáu có th có có nhi u c m khác nhau Fuzzy C-means có kh ể ề ụ ả năng phân cụm trong không gian đa chiều, có kh ả năng tối ưu hóa tâm cụm Tuy nhiên thuật toán này có độ phāc tạp tính toán l n và tớ ốc độ ội t ph thu c nhi u vào d h ụ ụ ộ ề ữliáu ban đầu
Trang 1212
Tìm hi u thêm v Fuzzy C-meansể ề : https://en.wikipedia.org/wiki/Fuzzy_clustering
Tương tự như thuật toán logistic regression , clustering được āng dụng phổ biến rất nhiều ở các lĩnh vực khác nhau từ kinh tế,y tế, đến khoa học xã hội
Vì khả năng cơ bản cÿa K means Clustering là chia nhỏ dữ liáu ban đầu thành các nhóm nhỏ , tất cả các hoạt động dựa trên thuật toán mà không yêu cầu bất kì kiến thāc cÿa người sử dụng về dữ liáu đã được thu thập Nó có thể được sử dụng
-để xác nhận các giả thiết về viác phân chia làm bao nhiêu nhóm , là những nhóm nào , khi mà lượng dữ liáu thu thập được rất lớn và phāc tạp khi 2 thông tin trên xác định, với bất kì một sample mới được thêm vào cũng dß dàng được gán nhãn một cách chính xác
Đây là một thuật toán linh hoạt có thể āng dụng vào bất kỳ quy trình phân loại và chia nhóm
Ví dụ 1:Trong giao dịch ngân hàng , viác phân loại dữ liáu khách hàng là đặc biát quan trọng, thường được dựa vào đó để đưa ra các chính sách chung cho toàn bộ
há thống hay là có những chính sách chăm sóc với từng khách hàng
Một vài phân loại người dùng:
• Phân loại dựa trên lịch sử thanh toán(chi tiêu)
• Phân loại dựa trên hoạt động trên āng dụng di động, hay trên nền tảng ATM
• Tạo profile cÿa khách hàng dựa trên dữ liáu theo dõi hoạt động
Ví dụ 2:Trong kinh doanh
Trang 13Từ hình ảnh ta thấy sẽ rất khó để tìm sản phẩm tiêu dùng phù hợp với từng người Nhưng nếu có thể áp dụng clustering thì công viác sẽ dß dàng hơn.
Phân đoạn ảnh là từ một ảnh đầu vào , thông qua các thuật toán phân cụm mà tách thành các vùng khác nhau và các đối tượng được tách ra gọi là ảnh con Phân đoạn ảnh là một thao tác trong toàn bộ quá trình xử lý ảnh Quá trình này thực hián viác phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau Các vùng ảnh đồng nhất này thông thường sẽ tương āng với toàn bộ hay từng phần cÿa các đối tượng thực sự bên trong ảnh Mục tiêu cÿa phân đoạn ảnh là để xác định vị trí các đối tượng trong hình ảnh
2.1.2.Āng dụng cÿa phân cụm dữ liệu
Āng dụng đặc điểm cÿa thuật toán phân cụm để chia ảnh thành các vùng không trùng lặp Mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo một tiêu chí
Trang 1414
nào đó Tiêu chí này phụ thuộc vào mục tiêu cÿa quá trình phân đoạn Ví dụ về màu sắc, độ sâu cÿa các layer,…Sau khi phân đoạn mỗi pixel chỉ thuộc về một vùng duy nhất Để đánh giá chất lượng cÿa quá trình phân đoạn là rất khó Vì vậy trước khi phân đoạn ảnh cần xác định rõ mục tiêu cÿa quá trình phân đoạn Tổng quát , ta có thể phân đoạn ảnh thành các nhóm:
• Kỹ thuật dựa trên không gian đặc trưng
• Các kỹ thuật dựa trên không gian ảnh
2.1.2.1 Kỹ thuật dựa trên không gian đặc tr°ng
Nếu chúng ta giả định màu sắc bề mặt cÿa các đối tượng trong ảnh là một thuộc tính bất biến và các màu sắc ấy được ánh xạ vào một không gian màu nào đó, vậy thì ta sẽ có một cái nhìn đối với mỗi đối tượng trong ảnh với các đặc điểm trong không gian màu đỏ Hoặc ta có thể xây dựng biểu đồ dựa trên các đặc trưng màu sắc cÿa ảnh Do vậy , viác phân vùng các đối tượng trong ảnh tương āng với viác xác định các cụm , các vùng āng với các cách biểu dißn
2.1.2.2 Các kỹ thuật dựa trên không gian ảnh
Phương pháp trong hoạt động dựa trên các không gian đặc trưng cÿa ảnh(thường
là màu sắc) Do đó , các vùng ảnh kết quả là đồng nhất tương āng với các đặc trưng đã chọn cho từng không gian Tuy nhiên không đảm bảo tính cô đọng, còn khi xây dựng biểu đồ thì đều bỏ qua các thông tin về vị trí cÿa các pixel trong ảnh Trong báo cáo khoa học về vùng xám, có các kỹ thuật thỏa mãn đồng thời 2 tiêu chí về tính đồng nhất trong không gian đặc trưng cÿa ảnh và tính cô đọng tùy theo các kỹ thuật mà chúng được chia thành các nhóm sau:
• Các thuật giải áp dụng kỹ thuật chia và trộn vùng
• Các thuật giải áp dụng kỹ thuật tăng trưởng vùng
• Các thuật giải áp dụng mạng neural
Ví dụ: Ta thấy thấy bāc ảnh bên trái nó bao gồm bầu trời, cây, cỏ và con mèo
Trang 15Ta sẽ phân đoạn ảnh ra thành các vùng dựa trên các đặc tính māc xám, màu sắc cÿa hình ảnh gốc
2.2.Nhận d¿ng
Có 2 kỹ thuật nhận dạng chính trong thuật toán nhận dạng là nhận d¿ng đối t°ợng và nhận d¿ng ký tự:
Nhận d¿ng đối t°ợng là một kỹ thuật trong thị giác máy tính để xác định đối tượng xuất hián trong hình ảnh hoặc video Mục đích là dạy cho máy tính làm những nội dung cÿa hình ảnh , giống như cách ta nhận biết đồ vật , cảnh và các chi tiết khi xem một bāc ảnh hay 1 đoạn video
Trang 1616
Nhận d¿ng đối t°ợng được áp dụng nhiều trong các ngành khoa học tiên tiến
như y khoa, sinh hóa hay khoa học hình sự, Trong y khoa , thuật toán nhận dạng đối tượng giúp ích cho viác xác định các đối tượng lạ (vật thể lạ, khối u bướu,…) trong hình ảnh chụp từ bên trong cơ thể Viác xác định các đối tượng cÿa hai bāc ảnh tương đương, dựa vào đó mà các chuyên viên y khoa sẽ biết được những vấn
đề về sāc khỏe cÿa bánh nhân Trong kỹ thuật sinh hóa , thuật toán nhận dián đối tượng giúp cho viác phát triển các biến thể mới hình thành…Trong khoa học hình
sự, viác nhận dạng đối tượng là nguồn hỗ trợ chính trong phân tích và nhận dạng các đối tượng hình sự
Ví dụ: nhận dián xem trong hình ảnh có con chó hay không?
Nhận d¿ng ký tự là phương pháp rút trích các chuỗi ký tự(có thể là một ký tự ) trong một chuỗi các kí tự đưa vào với mục đích nhận dạng(dự đoán) nội dung cÿa văn bản Nhận d¿ng ký tự được áp dụng trong các thuật toán như lọc email, phân loại văn bản hay tóm lược nội dung các văn bản đầu vào
Trang 17Ví dụ: nhận dián số viết tay
Viác nhận d¿ng ký tự còn được phát hián và áp dụng trong nhận dạng chữ viết Các thông tin nhận dạng trong văn bản chữ viết bao gồm điểm đặt bút, nét các kí
tự, độ dài rộng các kí tự, các nét lên, xuống cÿa từng ký tự
2.3.Khai phá dữ liệu
Thuật toán gom cụm được āng dụng khá hiáu quả và phổ biến trong viác khai phá dữ liáu
Trang 1818
Hián nay , bên cạnh nguồn dữ liáu có được từ viác thu thập thực tế thông qua khảo sát thị trường thì nguồn dữ liáu từ internet đã và đang đóng vai trò cốt yếu trong viác khai thác thị trường Nguồn dữ liáu từ internet được xem là một trong những nguồn dữ liáu chính và là nguồn dữ liáu vô tận mà rất nhiều tổ chāc (cá nhân) quan tâm và muốn khai thác Ví dụ: thông tin khách hàng, ý kiến khách hàng
về sản phẩm hay quan điểm khách hàng về những mặt hàng sẽ xuất hián trong tương lai.Với sự phát triển mạnh mẽ cÿa công nghá thông tin hián nay, internet đã
và đang trở thành cơ sở dữ liáu vô tận Nguồn dữ liáu này rất có ý nghĩa với rất nhiều tổ chāc và cá nhân , đặc biát là các tổ chāc và cá nhân trong lĩnh vực kinh doanh Do đó , viác khai thác nguồn dữ liáu vô tận được lưu trữ trên internet đã và đang trở thành một hướng đi mới trong viác khai thác thị trường Một khi thành công trong viác khai thác dữ liáu khách hàng từ internet , vấn đề tìm hiểu và khai thác thị trường sẽ trở nên đơn giản và hiáu quả cao Hiáu quả về chi phí là điểm nổi bật nhất có thể nhìn thấy được, bên cạnh đó hiáu quả về thời gian cũng là một điểm đáng chú ý Mọi thông tin khách hàng đã có sẵn , tuy nhiên làm thế nào để phân loại và đánh giá nó chính xác đòi hỏi người làm công viác khai thác thị trường phải bỏ công sāc đầu tư để có một thuật toán phân tích và tổng hợp thật hiáu quả
3 Cà i đặt thuật toán K-means
3.1 Ý t°ởng thuật toán K-means
Với mỗi đối t°ợng, chúng ta sẽ vector hoá để biểu dißn đặc trưng cÿa đối tượng
dưới dạng một data point Và ta biết rằng, những điểm dữ liệu t°¡ng đồng về bản chất thì sẽ ở gần nhau hơn Khi đó, bài toán phân cụm cÿa ta sẽ là bài toán đi tìm những data point nằm gần nhau
(Nguồn nh: geekforgeeks.org) ả