Có nhiều kỹ thuật phân nhóm dữ liệu, trong đó K-means là một thuật toán phân nhóm kinh điển, đã và đang được ứng dụng trong nhiều lĩnh vực như: y học, sinh học, tìm kiếm Web, chăm sóc kh
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
LÂM THỊ HẬU
NGHIÊN CỨU MÔ HÌNH CẢI TIẾN KỸ THUẬT
PHÂN NHÓM K-MEANS
LUẬN VĂN THẠC SĨ
KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS NGUYỄN VĂN HIỆU
Đà Nẵng – Năm 2018
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
LÂM THỊ HẬU
NGHIÊN CỨU MÔ HÌNH CẢI TIẾN KỸ THUẬT
PHÂN NHÓM K-MEANS
Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS NGUYỄN VĂN HIỆU
Đà Nẵng – Năm 2018
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
- Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của TS Nguyễn Văn Hiệu
- Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung thực
về tên tác giả, tên công trình, thời gian và địa điểm công bố
- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo tôi xin chịu hoàn toàn trách nhiệm
Trang 4MỤC LỤC
DANH MỤC CÁC KÍ HIỆU, CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG BIỂU vii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ viii
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 1
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn 2
6 Cấu trúc của luận văn 2
CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT PHÂN NHÓM 3
1.1 Giới thiệu về khai phá dữ liệu 3
1.2 Phân nhóm dữ liệu là gì? 5
1.3 Kiểu dữ liệu đối tượng được phân nhóm 6
1.3.1 Các kiểu thuộc tính 8
1.3.2 Phép đo độ tương tự và độ không tương tự đối với các kiểu dữ liệu 9
1.4 Quá trình phân nhóm dữ liệu 17
1.5 Các phương pháp phân nhóm dữ liệu phổ biến 18
1.5.1 Phương pháp phân hoạch (Partitioning Methods) 18
1.5.2 Phương pháp phân cấp (Hierarchical Methods) 19
1.5.3 Phương pháp dựa trên mật độ (Density-Based Methods) 20
1.5.4 Phương pháp dựa trên lưới (Gird-Based Methods) 22
1.5.5 Phương pháp dựa trên mô hình xác suất (Model-Based Methods) 24
1.6 Phương pháp đánh giá việc phân nhóm dữ liệu 26
1.7 Một số ứng dụng của phương pháp phân nhóm dữ liệu 27
1.8 Kết chương 28
CHƯƠNG 2: MÔ HÌNH ĐỀ XUẤT VỀ KỸ THUẬT PHÂN NHÓM 29
2.1 Mô hình K-means truyền thống 29
2.1.1 Giới thiệu thuật toán K-means 29
2.1.2 Thuật toán K-means 31
2.1.3 Minh họa thuật toán 32
Trang 52.1.4 Ưu nhược điểm của thuật toán K-means 36
2.2 Lập trình song song MapReduce 37
2.2.1 Giới thiệu lập trình MapReduce 37
2.2.2 Các mô hình sử dụng MapReduce vào kỹ thuật phân nhóm 38
2.3 Mô hình đề xuất 41
2.3.1 Mô hình K-means cải tiến của Weizhong Zhao 41
2.3.2 Mô hình K-means cải tiến sử dụng phương pháp lấy mẫu 42
2.4 Kết chương 49
CHƯƠNG 3: KẾT QUẢ THỬ NGHIỆM BÀI TOÁN THỰC TẾ VÀ ĐÁNH GIÁ 50
3.1 Môi trường và công cụ thử nghiệm 50
3.1.1 Giới thiệu Anaconda Navigator 50
3.1.2 Ngôn ngữ lập trình Python 50
3.1.3 Công cụ Jupyter notebook 50
3.2 Dữ liệu đầu vào của bài toán thử nghiệm 51
3.2.1 Bộ dữ liệu thử nghiệm 51
3.2.2 Phân chia dữ liệu đầu vào ứng dụng K-means MapReduce 53
3.3 Kết quả thử nghiệm 53
3.3.1 Bộ dữ liệu House 53
3.3.2 Bộ dữ liệu Data_fake 54
3.4 Đánh giá chất lượng và tốc độ 55
3.4.1 Đánh giá chất lượng 55
3.4.2 Đánh giá tốc độ 58
3.5 Kết chương 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
TÀI LIỆU THAM KHẢO 62
Trang 6NGHIÊN CỨU MÔ HÌNH CẢI TIẾN KỸ THUẬT
PHÂN NHÓM K-MEANS
Học viên: Lâm Thị Hậu Chuyên ngành: Khoa học máy tính
Mã số: Khóa: K34, Trường Đại học Bách khoa - ĐHĐN
Tóm tắt - Ngày nay, với sự gia tăng vượt bậc của nguồn dữ liệu khổng lồ, nhu cầu cấp thiết
làm thế nào để trích xuất các thông tin và tri thức hữu ích nhằm đem lại những lợi ích tốt nhất
Để giải quyết vấn đề, con người đã tiến hành khai phá nguồn dữ liệu này nhằm đánh giá các mẫu, rút trích các thông tin hữu ích, chưa biết, tiếm ẩn trong khối dữ liệu lớn Quá trình khai phá dữ liệu gồm nhiều bước, trong đó phân nhóm là một kỹ thuật quan trọng của quá trình khai phá dữ liệu
Có nhiều kỹ thuật phân nhóm dữ liệu, trong đó K-means là một thuật toán phân nhóm kinh điển, đã và đang được ứng dụng trong nhiều lĩnh vực như: y học, sinh học, tìm kiếm Web, chăm sóc khách hàng, …
Tuy nhiên, đối với những tập dữ liệu lớn, thuật toán K-means tốn nhiều thời gian và hiệu quả phân nhóm tùy thuộc vào khởi tạo trọng tâm ban đầu, vì vậy có rất nhiều phương pháp cải tiến thuật toán K-means đã được nghiên cứu và thực hiện Trên cơ sở thuật toán K-means, tôi đã nghiên cứu mô hình cải tiến kỹ thuật phân nhóm K-means sử dụng phương pháp lấy mẫu kết hợp với lập trình song song MapReduce
Kết quả nghiên cứu của đề tài góp phần mở rộng lĩnh vực ứng dụng kỹ thuật phân nhóm trong việc khai phá nguồn thông tin khổng lồ để giải quyết các vấn đề trong thực tế
Từ khóa – phân nhóm dữ liệu, kỹ thuật phân nhóm, thuật toán K-means, cải tiến K-means sử
dụng phương pháp lấy mẫu, K-means MapReduce
RESEARCH TECHNICAL IMPROVEMENT MODEL
DIVISION OF K-MEANS GROUP
Today, with the enormous increase in data availability, there is an urgent need to extract useful information and knowledge for the best benefit In order to solve the problem, people have exploited this data source to evaluate the samples, extract useful information, unknown and hidden in large data blocks Data mining involves many steps, where clustering is an important technique for data mining
There are many data classification techniques in which K-means is a classic clustering algorithm that has been applied in many fields such as medicine, biology, web search, customer care, However, for large data sets, the K-means algorithm takes time and the clustering efficiency depends on initial initialization, so there are many methods for improving the K-means algorithm be studied and implemented Based on the K-means algorithm, the thesis studied the improved model of K-means division using the sampling method in combination with the parallel mapreduction program
The research results of the thesis contribute to expanding the field of application of grouping techniques in exploring huge sources of information to solve problems in practice
Keywords - Data clustering, clustering techniques, K-means algorithm, Improving K-means
using the sampling method, K-means MapReduce
Trang 7DANH MỤC CÁC KÍ HIỆU, CÁC TỪ VIẾT TẮT
STT Ký hiệu/
1 s f Tính độ lệch trung bình của các thuộc tính
2 m f Giá trị trung bình của thuộc tính f
3 z if Độ đo được chuẩn hóa
4 d(i,j) Độ đo khoảng cách (không tương tự) giữa 2 đối tượng i và j
5 sim(i,j) Độ tương tự giữa 2 đối tượng i và j
6 x if Giá trị của thuộc tính f đối với đối tượng thứ i
7 r if Xếp hạng trong thuộc tính thứ f của đối tượng thứ i
8 CSDL Cơ sở dữ liệu
9 HDFS Hệ thống tập tin phân toán
10 DBI chỉ số Davies-Bouldin (DBI) của kỹ thuật đánh giá trong
11 EM Thuật toán tối ưu hóa kỳ vọng
Trang 8DANH MỤC CÁC BẢNG BIỂU
1.1 Ví dụ về các kiểu thuộc tính dữ liệu 11 1.2 Bảng sự kiện ngẫu nghiên của các thuộc tính nhị phân 13 1.3 Bảng thông tin bệnh nhân được mô tả bởi các thuộc tính
2.1 Thông tin học sinh cần phân nhóm 32 2.2 Kết quả minh họa quá trình phân nhóm dữ liệu 36 2.3 CSDL1 và tọa độ trọng tâm ban đầu của CSDL1 44 2.4 CSDL2 và tọa độ trọng tâm ban đầu của CSDL2 44 2.5 CSDL3 và tọa độ trọng tâm ban đầu của CSDL3 45 2.6 Phân nhóm các đối tượng của CSDL1 và tính lại tọa độ tâm 45 2.7 Phân nhóm các đối tượng của CSDL2 và tính lại tọa độ tâm 46 2.8 Phân nhóm các đối tượng của CSDL3 và tính lại tọa độ tâm 47 2.9 Tập các đối tượng của CSDL mẫu 47 2.10 Tọa độ trọng tâm ban đầu của CSDL mẫu 48 2.11 Phân nhóm các đối tượng của CSDL mẫu vào k=3 nhóm 48 2.12 Phân nhóm các đối tượng của CSDL D 49 3.1 Thông tin thuộc tính bộ dữ liệu House 51 3.2 Chỉ số DB của K-means và SK-meansMR trên bộ dữ liệu
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Số hiệu
1.1 Quy trình khai phá dữ liệu 4 1.2 Mô hình phân nhóm dữ liệu 5 1.3 Cách biểu diễn các nhóm trong CSDL 6 1.4 Mô tả khoảng cách Euclidean và Mahata 13 1.5 Quá trình phân nhóm của R XU, D Wunsch II Survey 17 1.6 Mô hình thuật toán phân cấp (thuật toán AGNES và DIANA) 20 1.7 Mô hình tiếp cận mật độ và kết nối mật độ 21 1.8 Mô hình phân nhóm dựa trên lưới (thuật toán STING) 23 2.1 Sơ đồ thuật toán phân nhóm K-means 31 2.2 Khởi tạo trọng tâm cho thuật toán K-means 32 2.3 Tính lại tọa độ trọng tâm lần 1 34 2.4 Tính lại tọa độ trọng tâm lần 2 35 2.5 Mô hình lập trình MapReduce 38 2.6 Mô hình MapReduce cho thuật toán DBSCAN 40 2.7 Sơ đồ thuật toán PK-means 41 2.8 Quá trình phân nhóm theo phương pháp SK-meansMR 42 2.9 Sơ đồ thuật toán SK-meansMR 43 3.1 Giao diện Jupyter Notebook 51 3.2 Thông tin bộ dữ liệu House 52 3.3 Thông tin bộ dữ liệu Data_fake 52 3.4 Bộ dữ liệu House được phân chia làm đầu vào cho hàm Map 53 3.5 Bộ dữ liệu Data_fake được phân chia làm đầu vào cho hàm Map 53 3.6 Kết quả chạy thuật toán K-means với bộ dữ liệu House 53 3.7 Kết quả chạy thuật toán SK-meansMR với bộ dữ liệu House 54 3.8 Kết quả chạy thuật toán K-means với bộ dữ liệu Data_fake 54 3.9 Kết quả chạy thuật toán SK-meansMR với bộ dữ liệu Data_fake 55 3.10 Biểu đồ chất lượng phân nhóm K-means và SK-meansMR trên bộ
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Những năm gần đây, sự tiến bộ vượt bậc của công nghệ thông tin cùng với sự phát triển kinh tế, xã hội và Internet đã tạo ra nguồn dữ liệu khổng lồ, đa dạng về thể loại và ngành nghề Bên cạnh đó, thế giới đang trong xu thế toàn cầu hóa, các tổ chức chính phủ, y tế, giáo dục, thương mại, … đang phải đối mặt với nhiều khó khăn, thách thức, dẫn đến nhu cầu cấp thiết làm thế nào để trích xuất những thông tin, các tri thức hữu ích từ nguồn dữ liệu này, để vận dụng cải thiện hiệu quả hoạt động của hệ thống thông tin ban đầu nhằm đem lại lợi ích và mục đích tốt nhất Giải pháp hữu hiệu để con người giải quyết các vấn đề nêu trên là khai phá khối lượng dữ liệu đang gia tăng chóng mặt này
Có nhiều kỹ thuật để khai phá dữ liệu như phân lớp, dự đoán, phân nhóm, luật kết hợp, Trong đó phân nhóm là một bước quan trọng trong khai phá dữ liệu Kỹ thuật này đã, đang và sẽ có nhiều ứng dụng trong các lĩnh vực như thương mại điện tử, chăm sóc sức khỏe, ngân hàng, viễn thông, v.v…
Với mong muốn góp phần nghiên cứu và ứng dụng kỹ thuật phân nhóm vào việc
khai phá dữ liệu để giải quyết các vấn đề thực tế, tôi quyết định chọn đề tài “Nghiên
cứu mô hình cải tiến kỹ thuật phân nhóm K-means”
2 Mục tiêu và nhiệm vụ nghiên cứu
- Tìm hiểu về kỹ thuật phân nhóm;
- Tìm hiểu mô hình lập trình song song MapReduce;
- Tìm hiểu về dữ liệu thực tế (cụ thể các bài toán thực tế)
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
- Kỹ thuật phân nhóm dữ liệu tập trung vào kỹ thuật K-means;
- Mô hình lập trình song song MapReduce
Phạm vi nghiên cứu
- Các thuật toán của kỹ thuật phân nhóm dữ liệu;
- Mô hình lập trình song song MapReduce
Trang 11- Các bài toán đặc trưng cho thuật toán phân nhóm với bộ dữ liệu thực nghiệm gồm có: Individual Household Electric Power Consumption (House) 9 thuộc tính, 2.049.280 điểm, kích thước 126 MB tải về tại UCI Machine Learning Repository http://archive.ics.uci.edu/ml/index.php và bộ dữ liệu tự tạo Data_fake 3 thuộc tính có số lượng 5.000.000 điểm, kích thước 144 MB
4 Phương pháp nghiên cứu
Nghiên cứu lý thuyết
- Tìm hiểu lý thuyết về thuật toán phân nhóm dữ liệu K-means;
- Tìm hiểu về mô hình lập trình song song MapReduce;
- Tìm hiểu các bài toán thực tế
Nghiên cứu thực nghiệm
- Xây dựng bộ dữ liệu thử nghiệm;
- Xây dựng chương trình thực nghiệm để so sánh mô hình đề xuất và mô hình truyền thống
5 Ý nghĩa khoa học và thực tiễn
Về mặt khoa học:
- Nghiên cứu, tìm hiểu kỹ thuật phân nhóm dữ liệu trên cơ sở thuật toán K-means
để ứng dụng vào các bài toán thực tế;
- Nghiên cứu hướng cải tiến K-means truyền thống kết hợp với lập trình song song
Về mặt thực tiễn:
Kết quả nghiên cứu của đề tài góp phần mở rộng lĩnh vực ứng dụng kỹ thuật phân nhóm dữ liệu trong việc khai thác nguồn thông tin khổng lồ đang gia tăng mỗi ngày
6 Cấu trúc của luận văn
Sau phần mở đầu, nội dung chính của luận văn được chia thành 3 chương: Chương 1: Trình bày tổng quan về khai phá dữ liệu, phân nhóm dữ liệu và quá trình phân nhóm Các phương pháp phân nhóm dữ liệu và ứng dụng, …
Chương 2: Trình bày kỹ thuật phân nhóm theo mô hình K-means truyền thống, giới thiệu lập trình song song MapReduce và đề xuất mô hình K-means cải tiến sử dụng phương pháp lấy mẫu
Chương 3: Trình bày môi trường, công cụ và thử nghiệm bài toán với các bộ dữ liệu thực tế, so sánh đánh giá chất lượng và tốc độ của thuật toán K-means truyền thống
và K-means cải tiến
Cuối cùng là phần đánh giá kết luận và hướng phát triển của đề tài
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT PHÂN NHÓM
1.1 Giới thiệu về khai phá dữ liệu
Mọi người thường nói “Chúng ta đang sống trong thời đại thông tin” nhưng thực
ra chúng ta đang sống trong thời đại dữ liệu Bởi các Terabyte hoặc petabyte dữ liệu đổ vào các mạng máy tính, World Wide Web và các thiết bị lưu trữ dữ liệu khác nhau mỗi ngày từ xã hội, kinh doanh, khoa học kỹ thuật, y học và hầu như mọi khía cạnh khác của cuộc sống hàng ngày
Sự tăng trưởng bùng nổ của khối lượng dữ liệu này là kết quả của việc tin học hoá xã hội và sự phát triển nhanh chóng của các công cụ thu thập và lưu trữ dữ liệu Danh sách các nguồn tạo ra lượng dữ liệu khổng lồ là vô tận
Cơ sở dữ liệu đang phát triển, có sẵn và rộng lớn này rất cần các công cụ mạnh
mẽ và linh hoạt để tự động phát hiện thông tin có giá trị từ lượng dữ liệu khổng lồ và chuyển đổi dữ liệu đó thành kiến thức có tổ chức Sự cần thiết này đã dẫn đến sự ra đời của khai phá dữ liệu (data mining)
Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, và là bước quan trọng phát hiện các thông tin có ích, tiềm ẩn chưa được biết trước trong cơ sở dữ liệu Trong ngành công nghiệp, trong truyền thông và trong nghiên cứu, thuật ngữ khai phá
dữ liệu thường được sử dụng để chỉ toàn bộ quá trình khám phá tri thức (khám phá tri thức từ dữ liệu) Từ đó, khai phá dữ liệu được định nghĩa là quá trình khám phá và đánh giá các mẫu, rút trích các thông tin hữu ích, chưa biết, tiếm ẩn trong khối dữ liệu lớn Các nguồn dữ liệu có thể bao gồm cơ sở dữ liệu, kho dữ liệu, Web, kho lưu trữ thông tin khác hoặc dữ liệu được truyền trực tiếp vào hệ thống
❖ Khai phá dữ liệu liên quan chặt chẽ đến các lĩnh vực: Thống kê (Statistics); Máy học (Machine Learning); Cơ sở dữ liệu (Databases); Trực quan hóa (Visualization) giúp dữ liệu dễ hiểu và dễ sử dụng
❖ Các kỹ thuật sử dụng trong khai phá dữ liệu:
- Phân lớp: Tìm các đặc trưng của lớp các đối tượng và sử dụng để phân lớp dữ liệu mới;
- Dự đoán: Dự đoán dữ liệu tương lai dựa trên dữ liệu quá khứ;
- Phân nhóm: Xác định các nhóm tiềm ẩn trong các tập đối tượng chưa được xếp lớp;
- Luật kết hợp: Tìm các mẫu phổ biến từ dữ liệu và mối quan hệ của các đối tượng
dữ liệu;
- Mẫu tuần tự: Khám phá các mẫu tín hiệu phổ biến nhất từ dữ liệu các sự kiện;
Trang 13- Nhà kho – OLAP: Xác định trật tự dữ liệu, cấu trúc lưu trữ phù hợp với tác vụ khai phá
❖ Quy trình khai phá dữ liệu:
❖ Ứng dụng của khai phá dữ liệu:
Khai phá dữ liệu được ứng dụng rộng rãi trong mọi lĩnh vực như:
- Kinh doanh: Phân tích dữ liệu bán hàng và tiếp thị; Phân tích đầu tư; Chứng khoán; Xác định gian lận; …
- Khoa học: Không gian; Sinh học; Địa lý; …
- Sản xuất: Điều khiển và lập lịch; Quản trị mạng lưới; Phân tích kết quả thử nghiệm; …
Chọn các thuật giải khai thác dữ liệu
Khai thác dữ liệu: Tìm kiếm tri thức
Đánh giá mẫu tìm được
Biểu diễn tri thức
Sử dụng các tri thức vừa khám phá
Hình 1.1 Quy trình khai phá dữ liệu
Trang 14- … …
Khai phá dữ liệu là lĩnh vực trẻ, năng động và đầy hứa hẹn Với các lợi ích mang lại cho nhân loại khai phá dữ liệu đã, đang và sẽ tiếp tục có những bước tiến lớn trong hành trình của chúng ta từ thời đại dữ liệu đến thời đại thông tin sắp tới
1.2 Phân nhóm dữ liệu là gì?
Quá trình khai phá dữ liệu bao gồm nhiều bước, trong đó việc lựa chọn kỹ thuật phù hợp để thực hiện khai phá dữ liệu là quan trọng nhất Đối với một số lĩnh vực cần tìm kiếm hoặc trích lọc tri thức trực tiếp từ cơ sở dữ liệu như phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, xử lý ảnh, phân loại trang web,… thì phân nhóm dữ liệu là một kỹ thuật phù hợp để tiến hành khai phá dữ liệu
❖ Định nghĩa
Phân nhóm (clustering) là các qui trình tìm cách nhóm các đối tượng đã cho vào các nhóm (clusters), sao cho các đối tượng trong cùng 1 nhóm tương tự (similar) nhau
và các đối tượng khác nhóm thì không tương tự (dissimilar) nhau
Cho cơ sở dữ liệu D={t1,t2,…,tn} và số nguyên k, phân nhóm là bài toán xác định ánh xạ f : D → {1,…,k} sao cho mỗi ti được gán vào một nhóm kj, 1 <= j <= k
Khác với bài toán phân lớp, các nhóm không được biết trước Hay nói cách khác, phân nhóm là phương pháp học tập theo quan sát (learning from obversation) còn gọi là học không có thầy (unsupervised learning or automatic classfication) trong trí tuệ nhân tạo
Hình 1.2 Mô hình phân nhóm dữ liệu
Phân nhóm
Trang 15❖ Mục đích
Mục đích của phân nhóm là tìm ra bản chất bên trong của các nhóm dữ liệu nhằm thực hiện các mục tiêu như: trích xuất các thông tin hữu ích, giảm kích thước dữ liệu, phát hiện các giá trị ngoại lai, …
1.3 Kiểu dữ liệu đối tượng được phân nhóm
Dữ liệu đối tượng được phân nhóm thường diễn tả dưới dạng các biến hoặc thuộc tính Các thuộc tính này là các tham số để giải quyết vấn đề phân nhóm và sự lựa chọn
1 2 3 I1
I2
…
In 0.5 0.2 0.3
Hình 1.3 Cách biểu diễn các nhóm trong CSDL
Trang 16chúng có tác động đáng kể đến kết quả phân nhóm Phân loại các kiểu thuộc tính khác nhau là vấn đề cần giải quyết đối với hầu hết các tập dữ liệu nhằm cung cấp các phương tiện thuận lợi để nhận dạng sự khác nhau của các phần tử dữ liệu Các thuật toán phân nhóm thường sử dụng một trong hai cấu trúc dữ liệu sau:
Ma trận dữ liệu (Data matrix): Là mảng hai chiều gồm n hàng, p cột
Trong đó: n là số đối tượng (objects), p là số biến/thuộc tính (variables/attributes) của mỗi đối tượng Mỗi hàng biểu diễn một đối tượng, các phần tử trong mỗi hàng chỉ giá trị thuộc tính tương ứng của đối tượng đó
Ma trận không tương tự (dissimilarity matrix): Là mảng hai chiều gồm n hàng,
n cột
Trong đó phần tử d(i,j) chứa khoảng cách hay độ khác biệt giữa các đối tượng i
và đối tượng j, d(i,j) là một số không âm, nếu d(i,j) xấp xỉ 0 thì hai đối tượng i và j là gần giống nhau, nếu d(i,j) càng lớn thì hai đối tượng i, j càng khác nhau, d(i,i) = 0 và d(i,j) = d(j,i), d(i,j) được tính tuỳ thuộc vào kiểu của các biến/thuộc tính
Phần lớn các thuật toán phân nhóm sử dụng cấu trúc ma trận không tương tự Do vậy, nếu dữ liệu cần phân nhóm được tổ chức dưới dạng ma trận dữ liệu thì cần biến đổi
về dạng ma trận không tương tự trước khi tiến hành phân nhóm
Cho một CSDL D chứa n đối tượng vector trong không gian p chiều; x, y, z là các đối tượng thuộc D:
x= (x1, x2, … , xp); y= (y1, y2, … , yp); z= (z1, z2, … , zp)
Trong đó x i , y i , z i với i=1,2, …,p là các thuộc tính tương ứng của các đối tượng
x, y, z Các thuộc tính này có các kiểu dữ liệu như sau:
Trang 171.3.1 Các kiểu thuộc tính
❖ Thuộc tính định danh/chuỗi (Norminal): Là thuộc tính lấy giá trị từ một tập
không có thứ tự Các giá trị của thuộc tính định danh là các kí hiệu hoặc tên của sự vật
Ví dụ màu tóc là thuộc tính định danh có các giá trị là đen, nâu, vàng nhạt, xám,… hoặc thuộc tính nghề nghiệp có các giá trị như giáo viên, bác sỹ, lập trình viên, nông dân, …
❖ Thuộc tính có thứ tự (Ordinal): Là thuộc tính định danh có các giá trị có thể
có một thứ tự có ý nghĩa hoặc được xếp hạng trong số đó Ví dụ các thuộc tính lấy giá trị số như: Age, Height,… hoặc thuộc tính Income lấy giá trị từ tập {low, medium, high}
❖ Thuộc tính số (Numeric Attributes): Là một số lượng đo lường, đại diện cho
số nguyên hoặc các giá trị thực Các thuộc tính số có thể được tính bằng khoảng cách hoặc tỉ lệ
• Thuộc tính được tính bằng khoảng cách (Interval-scaled variables/attributes)
còn gọi là thuộc tính khoảng:
Là một tập giá trị mà các phần tử cách đều nhau (thường dùng làm các thang đo) Các thuộc tính khoảng cách được đo bằng một đơn vị có kích thước bằng nhau Giá trị của các thuộc tính khoảng có thứ tự và có thể là dương, 0 hoặc âm Do đó, ngoài việc cung cấp thứ hạng các giá trị, các thuộc tính như vậy cho phép chúng ta so sánh và xác định sự khác biệt giữa các giá trị cũng như giá trị trung bình, trung vị và yếu trung vị
Ví dụ: Thuộc tính nhiệt độ là thuộc tính khoảng cách Giả sử chúng ta có giá trị nhiệt độ ngoài trời trong một số ngày khác nhau, trong đó mỗi ngày là một đối tượng Bằng cách xếp thứ tự các giá trị, chúng ta có được một thứ hạng của các đối tượng về nhiệt độ Ngoài ra, chúng ta có thể xác định sự khác biệt giữa các giá trị như nhiệt độ
200C cao hơn năm 5 độ so với nhiệt độ 150C
• Thuộc tính được tính bằng tỉ lệ (Ratio-Scaled Attributes) còn gọi là thuộc
tính tỉ lệ:
Thuộc tính tỉ lệ tương tự thuộc tính khoảng nhưng điểm khác biệt là được xác định một cách tương đối so với điểm mốc (0) Các phần tử thuộc kiểu dữ liệu này có thể
so sánh như là bội số với nhau Dữ liệu kiểu tỉ lệ có thể thực hiện các phép nhân, chia
Ví dụ: Thang đo nhiệt độ Kelvin (K) khác với nhiệt độ Celsius và Fahrenheit, có điểm mốc là 0 (00K = -273.150C) Thuộc tính trọng lượng, 10kg là hai lần 5 kg Hoặc các ví dụ khác bao gồm các thuộc tính để đo chiều cao, vĩ độ và kinh độ, …, đếm số năm kinh nghiệm, đếm số lượng từ,…
❖ Thuộc tính nhị phân (Binary attributes): là một trường hợp đặc biệt của kiểu
định danh Tập các giá trị chỉ gồm có 2 giá trị (Y/N, 0/1, T/F)
Trang 18❖ Thuộc tính liên tục (Continuous-valued attributes): Miền giá trị của thuộc
tính là vô hạn không đếm được, các giá trị là các số thực (ví dụ: các thuộc tính nhiệt độ, cường độ âm thanh,…)
❖ Thuộc tính rời rạc (Discrete-valued attributes): Miền giá trị của thuộc tính là
tập hữu hạn Bao gồm các thuộc tính có kiểu giá trị là các số nguyên và cả các thuộc tính nhị phân (ví dụ: Yes/No, True/False, On/Off, …)
❖ Thuộc tính có kiểu hỗn hợp (Attributes of mixed types)
Cơ sở dữ liệu có thể chứa tất cả kiểu thuộc tính trên được gọi là kiểu hỗn hợp của thuộc tính
❖ Ngoài ra còn có dữ liệu không gian có thể được coi là các tính năng được đặt
trên hoặc được tham chiếu đến bề mặt của trái đất, như đường, suối, ranh giới chính trị, trường học, phân loại sử dụng đất, tài sản sở hữu tài sản, … Dữ liệu không gian là loại
dữ liệu có thuộc tính số khái quát trong không gian nhiều chiều, mô tả các thông tin liên quan đến không gian, chứa đựng các đối tượng Dữ liệu không gian có thể là dữ liệu liên tục hoặc rời rạc
1.3.2 Phép đo độ tương tự và độ không tương tự đối với các kiểu dữ liệu
Việc lựa chọn đơn vị đo cho các thuộc tính cũng ảnh hưởng đến chất lượng phân nhóm Nếu đơn vị độ đo của một thuộc tính càng được chia nhỏ, thì khoảng cách xác định của thuộc tính đó càng lớn và ảnh hưởng nhiều hơn đến kết quả phân nhóm Để tránh phụ thuộc vào việc lựa chọn đơn vị đo, dữ liệu cần được chuẩn hóa Việc chuẩn hóa sẽ gán cho tất cả các thuộc tính một trọng số bằng nhau Tuy nhiên, trong nhiều trường hợp người sử dụng có thể thay đổi trọng số cho các thuộc tính ưu tiên Để chuẩn hóa các độ đo, một cách làm phổ biến là biến đổi các thuộc tính về dạng không có đơn vị đo Giả sử đối với các thuộc tính f, ta thực hiện như sau:
Tính độ lệch trung bình (Mean absolute deviation):
Trong đó x 1f , …, x nf là giá trị thuộc tính f của n phần tử dữ liệu, và m f là giá trị trung bình của f, được tính như sau:
(1.1)
(1.2)
Trang 19Độ đo được chuẩn hóa (Z-score measurement):
Phép đo độ tương tự hoặc không tương tự là để đo sự giống nhau hoặc khác nhau giữa các cặp đối tượng dữ liệu, chúng thường được đo bằng khoảng cách giữa các đối tượng Giá trị của hàm tính độ tương tự càng lớn thì sự giống nhau giữa các đối tượng càng lớn và ngược lại Hàm tính độ không tương tự tỉ lệ nghịch với hàm tính độ tương
tự Tất cả các cách đo độ tương tự đều phụ thuộc vào kiểu thuộc tính mà con người phân tích
Các độ đo dưới đây được xác định trong không gian metric Một không gian metric là một tập trong đó có xác định “khoảng cách” giữa từng cặp phần tử, với những tính chất thông thường của khoảng cách hình học
❖ Đo độ tương tự cho các thuộc tính định danh
Một thuộc tính định danh có thể có hai hoặc nhiều giá trị Gọi M là số lượng các giá trị của một thuộc tính định danh Các giá trị có thể được ký hiệu bởi các ký tự, ký hiệu, hoặc tập các số nguyên, chẳng hạn như 1, 2, , M
Độ không tương tự giữa hai đối tượng i và j được tính theo công thức:
𝒅(𝒊, 𝒋) =𝒑 − 𝒎
𝒑Trong đó:
- m là số thuộc tính định danh được so sánh có giá trị tương ứng trùng nhau của hai đối tượng i và j
- p là tổng số các thuộc tính định danh
- d(i,j) được đánh giá là 0 (= 0) nếu hai đối tượng i và j có giá trị thuộc tính định danh giống nhau và 1 (=1) nếu i và j có giá trị thuộc tính định danh khác nhau
Và độ tương tự của hai đối tượng i và j được tính theo công thức:
𝒔𝒊𝒎(𝒊, 𝒋) = 𝟏 − 𝒅(𝒊, 𝒋) = 𝒎
𝒑
Ví dụ: Độ không tương tự của các thuộc tính định danh
Giả sử có dữ liệu mẫu trong Bảng 1.1, với Test-1 là thuộc tính định danh Ma trận không tương tự được thể hiện như sau:
(1.3)
(1.4)
(1.5)
Trang 200 𝑑(2,1) 0 𝑑(3,1) 𝑑(3,2) 0 𝑑(4,1) 𝑑(4,2) 𝑑(4,3) 0
1, ba thuộc tính còn lại đỏ, xanh, tím được đặt là 0 Khi đó độ đo khoảng cách cho các đối tượng này sẽ áp dụng độ đo khoảng cách của các thuộc tính nhị phân
❖ Đo độ tương tự cho các thuộc tính có thứ tự
Gọi M là tổng số các giá trị của thuộc tính có thứ tự (thuộc tính thứ f của đối tượng thứ i) Các giá trị được sắp xếp thứ tự 1, , Mf (Ví dụ: thuộc tính Incom có tập các giá trị là {flow, median, height} thì có M=3 và thứ tự sắp xếp là {1,2,3})
Độ không tương tự đối với thuộc tính f gồm các bước:
1 Giá trị của thuộc tính f đối với đối tượng thứ i là x if, và f có Mf các giá trị, được xếp thứ tự 1, , Mf
Thay thế mỗi x if bằng thứ hạng tương ứng của nó là r if , với r if ∈ {1, , Mf} (ví dụ
giá trị flow được thay bằng 1, median được thay bằng 2,…)
Trang 212 Do mỗi thuộc tính thứ tự có thể có một số giá trị khác nhau, nên thường phải chuyển đổi chúng về cùng miền giá trị [0,1] sao cho mỗi thuộc tính đều có trọng số như
nhau Thực hiện chuẩn hóa dữ liệu bằng cách thay thế r if (xếp hạng trong thuộc tính thứ
f của đối tượng thứ i) bằng z if theo công thức sau:
𝒛𝒊𝒇 = 𝒓𝒊𝒇− 𝟏
𝑴𝒇 − 𝟏
3 Độ không tương tự sau đó được tính (theo z if) bằng cách sử dụng bất kỳ độ đo
khoảng cách được mô tả cho các thuộc tính số dưới đây, sử dụng z if để biểu diễn giá trị
f cho đối tượng thứ i
❖ Đo độ tương tự cho thuộc tính số
Phép đo khoảng cách phổ biến nhất là khoảng cách Euclide Cho i = (x i1 , x i2 , ,
x ip ) và j = (x j1 , x j2 , , x jp) là hai đối tượng được mô tả bởi các thuộc tính số p Khoảng cách Euclide giữa các đối tượng i và j được định nghĩa:
𝑑(𝑖, 𝑗) = √(|𝑥𝑖1 − 𝑥𝑗1|2+ |𝑥𝑖2 − 𝑥𝑗2|2+ ⋯ + |𝑥𝑖𝑝 − 𝑥𝑗𝑝|2)
Một phép đo nổi tiếng khác là khoảng cách Manhattan, được định nghĩa:
𝑑(𝑖, 𝑗) = |𝑥𝑖1 − 𝑥𝑗1| + |𝑥𝑖2 − 𝑥𝑗2| + ⋯ + |𝑥𝑖𝑝− 𝑥𝑗𝑝| Khoảng cách Euclide và Manhattan đều đáp ứng được các tính chất toán học sau:
d (i, j) ≥ 0 khoảng cách là một số không âm;
d (i, i) = 0 khoảng cách của một đối tượng đến chính nó là 0;
d (i, j) = d (j, i) khoảng cách là đối xứng;
d (i, j) ≤ d (i, k) + d (k, j) với k là một đối tượng bất kỳ
Ví dụ về khoảng cách Euclide và khoảng cách Manhattan
Cho x1 = (1, 2) và x2 = (3, 5) đại diện cho hai đối tượng i và j như thể hiện trong hình 1.4 Khoảng cách Euclide giữa hai đối tượng là:
𝑑(𝑖, 𝑗) = √(|𝑥𝑗1− 𝑥𝑖1|2+ |𝑥𝑗2− 𝑥𝑖2|2)
= √(|3 − 1|2+ |5 − 2|2) = √22+ 32 = 3.61 Khoảng cách Manhattan giữa hai đối tượng là:
𝒅(𝒊, 𝒋) = |𝒙𝒊𝟏− 𝒙𝒋𝟏| + |𝒙𝒊𝟐− 𝒙𝒋𝟐| = |𝟏 − 𝟑| + |𝟐 − 𝟓| = 𝟐 + 𝟑 = 𝟓
(1.6)
(1.7)
(1.8)
Trang 22Khoảng cách Minkowski là một khái quát về khoảng cách Euclide và Manhattan
Nó được định nghĩa như sau:
𝑑(𝑖, 𝑗) = √(|𝑥𝑞 𝑖1− 𝑥𝑗1|𝑞+ |𝑥𝑖2 − 𝑥𝑗2|𝑞 + ⋯ + |𝑥𝑖𝑝− 𝑥𝑗𝑝|𝑞)
Với q là số nguyên dương (q>=1)
- Nếu q=1 d(i,j) là khoảng cách Manhattan;
- Nếu q=2 d(i,j) là khoảng cách Euclide
❖ Đo độ tương tự đối với thuộc tính nhị phân
Thuộc tính nhị phân như đã nêu ở trên chỉ có một trong hai trạng thái: 0 và 1 Nếu tất cả các thuộc tính nhị phân được cho là có trọng số như nhau, chúng ta có bảng ngẫu nhiên 2 × 2 các sự kiện có thể xảy ra như sau:
Bảng 1.2 Bảng sự kiện ngẫu nhiên của các thuộc tính nhị phân
q là số thuộc tính bằng 1 đối với cả hai đối tượng i và j
r là số thuộc tính bằng 1 đối với đối tượng i nhưng bằng 0 đối với đối tượng j
s là số thuộc tính bằng 0 đối với đối tượng i nhưng bằng 1 đối với đối tượng j
t là số thuộc tính bằng 0 đối với cả đối tượng i và j
= 2 + 3 = 5
Hình 1.4 Mô tả khoảng cách Euclidean và Mahattan
(1.9)
Trang 23p là tổng số thuộc tính của 2 đối tượng i và j
Đối với các thuộc tính nhị phân đối xứng, mỗi trạng thái đều có giá trị như nhau
Sự không tương tự dựa trên các thuộc tính nhị phân đối xứng được gọi là sự khác biệt nhị phân đối xứng (symmetric binary dissimilarity) Nếu các đối tượng i và j được mô
tả bởi các thuộc tính nhị phân đối xứng, thì độ không tương tự giữa i và j là:
𝑑(𝑖, 𝑗) = 𝑟 + 𝑠
𝑞 + 𝑟 + 𝑠 + 𝑡Đối với các thuộc tính nhị phân không đối xứng, hai trạng thái không quan trọng bằng nhau Sự không tương tự dựa trên các thuộc tính này được gọi là sự khác biệt nhị phân không đối xứng, trong đó số lượng các kết quả âm (0-0), t được coi là không quan trọng và do đó bỏ qua trong công thức sau:
Hệ số sim (i, j) của phương trình trên được gọi là hệ số Jaccard
Khi cả hai thuộc tính nhị phân đối xứng và không đối xứng xảy ra trong cùng một bộ dữ liệu, độ không tương tự lúc này được tính bởi công thức tính độ không tương
tự của các thuộc tính hỗn hợp
Ví dụ: Giả sử có một bảng ghi thông tin bệnh nhân (Bảng 1.3) chứa các thuộc tính: tên (Name), giới tính (Gender), sốt (Fever), ho (Cough), Test-1, Test-2, Test-3 và Test-4, trong đó tên là một định danh đối tượng, giới tính là một thuộc tính đối xứng, và các thuộc tính còn lại là nhị phân bất đối xứng
Bảng 1.3 Bảng thông tin bệnh nhân được mô tả bởi các thuộc tính nhị phân
Name Gender Fever Cough Test-1 Test-2 Test-3 Test-4
Trang 24Đặt Y và P là 1 và N là 0, khoảng cách giữa các đối tượng dựa trên thuộc tính nhị phân không đối xứng và độ không tương tự của các đối tượng được tính như sau:
❖ Độ không tương tự đối với các thuộc tính của kiểu hỗn hợp
Một cơ sở dữ liệu có thể chứa tất cả các thuộc tính được gọi là kiểu thuộc tính hỗn hợp Phương pháp thích hợp để xử lý tất cả các kiểu thuộc tính với nhau là thực hiện một phân tích duy nhất bằng cách kết hợp các thuộc tính khác nhau vào một ma trận không tương tự, đưa tất cả các thuộc tính có ý nghĩa vào miền giá trị [0, 1]
Giả sử tập dữ liệu chứa p thuộc tính kiểu hỗn hợp Sự không tương đồng d(i,j) giữa các đối tượng i và j được định nghĩa là:
𝑑(𝑖, 𝑗) = ∑ 𝛿𝑖𝑗
(𝑓)𝑑𝑖𝑗(𝑓)
𝑝 𝑓=1
∑𝑝𝑓=1𝛿𝑖𝑗(𝑓)Trong đó: 𝛿𝑖𝑗𝑓= 0 nếu x if hoặc x jf là thiếu hoặc x if = x jf = 0 và thuộc tính f là nhị phân đối xứng; Ngược lại 𝛿𝑖𝑗𝑓 = 1
Độ đo không tương tự giữa i và j (𝑑𝑖𝑗𝑓) được tính toán dựa vào kiểu của thuộc tính f:
Trang 25𝑧𝑖𝑓 = 𝑟𝑖𝑓 − 1
𝑀𝑓− 1
và xử lý z if như thuộc tính số
❖ Độ tương tự Cosine (Cosine Similarity)
Độ tương tự cosin là một phép đo tương tự có thể được sử dụng để so sánh các tài liệu hoặc đưa ra một bảng xếp hạng các tài liệu liên quan đến một vector đã cho của các từ truy vấn Cho x và y là hai vectơ để so sánh Đối tượng i và j được biểu diễn tương ứng bởi vector x và y
Độ tương tự (similarity) giữa i và j được tính bởi độ đo Cosine:
Trang 261.4 Quá trình phân nhóm dữ liệu
Quá trình phân nhóm dữ liệu bao gồm bốn bước với một lộ trình phản hồi Các bước này có liên quan chặt chẽ và ảnh hưởng với nhau bắt nguồn từ các nhóm
Bước 1: Lựa chọn hoặc trích xuất tính năng (Feature selection or extraction)
Lựa chọn tính năng là chọn các tính năng nổi bật từ một tập hợp các thuộc tính, trong khi trích xuất tính năng sử dụng một số phép biến đổi để tạo các tính năng hữu ích
và mới lạ từ bản gốc Cả hai đều rất quan trọng đối với hiệu quả của các ứng dụng phân nhóm Việc lựa chọn các tính năng có thể làm giảm đáng kể khối lượng công việc và đơn giản hóa quá trình thiết kế tiếp theo Các tính năng lý tưởng cần được sử dụng trong việc phân biệt các mẫu thuộc các nhóm khác nhau, không bị nhiễu, dễ trích xuất và giải thích
Bước 2: Thiết kế hoặc lựa chọn thuật toán phân nhóm (Clustering algorithm
design or selection)
Bước này thường được kết hợp với việc lựa chọn một phép đo khoảng cách tương ứng và việc xây dựng một hàm tiêu chuẩn Các mẫu được nhóm theo các đối tượng có giống nhau hay không Rõ ràng, các phép đo khoảng cách ảnh hưởng trực tiếp đến sự hình thành của các nhóm kết quả Khi đã chọn một phép đo khoảng cách, việc xây dựng một chức năng tiêu chuẩn phân nhóm tương ứng để tạo phân vùng của các nhóm trở thành một vấn đề tối ưu hóa, được xác định rõ về mặt toán học và có các giải pháp phong phú
Kỹ thuật phân nhóm là phổ biến, nhiều thuật toán phân nhóm đã được phát triển
để giải quyết các vấn đề khác nhau trong các lĩnh vực cụ thể Rất khó khăn để phát triển một khung thống nhất cho lập luận về phân nhóm ở mức độ kỹ thuật, và các phương
Hình 1.5 Quá trình phân nhóm của R XU, D Wunsch II Survey
Trang 27pháp tiếp cận đa dạng sâu sắc để phân nhóm Do đó, điều quan trọng là phải nghiên cứu cẩn thận các đặc điểm của vấn đề để lựa chọn hoặc thiết kế một chiến lược phù hợp
Bước 3: Xác thực các nhóm (Cluster validation)
Với một tập dữ liệu, mỗi thuật toán phân nhóm luôn có thể tạo ra một sự phân chia, cho dù cấu trúc có tồn tại hay không Hơn nữa, các phương pháp tiếp cận khác nhau thường dẫn đến các nhóm khác nhau; ngay cả với cùng một thuật toán, việc xác định tham số hoặc thứ tự trình bày của các mẫu đầu vào có thể ảnh hưởng đến kết quả cuối cùng Do đó, các tiêu chuẩn đánh giá hiệu quả và tiêu chí rất quan trọng để cung cấp cho người dùng mức độ xác thực cho các kết quả phân nhóm xuất phát từ các thuật toán đã sử dụng
Có ba loại tiêu chí kiểm tra: chỉ số bên ngoài, chỉ số nội bộ (bên trong) và chỉ số tương đối Chúng được xác định trên ba kiểu cấu trúc phân nhóm, đó là phân nhóm phân hoạch, phân nhóm theo cấp bậc và các nhóm riêng lẻ Các chỉ số bên ngoài dựa trên một
số cấu trúc tiên quyết, đó là việc xác định lại thông tin trước trên dữ liệu và được sử dụng như một tiêu chuẩn để xác nhận các giải pháp phân nhóm Kiểm tra nội bộ không phụ thuộc vào thông tin bên ngoài (kiến thức trước), ngược lại, chúng kiểm tra cấu trúc phân nhóm trực tiếp từ dữ liệu gốc Tiêu chí tương đối nhấn mạnh vào việc so sánh các cấu trúc phân nhóm khác nhau, để cung cấp một tham chiếu, để quyết định nhóm nào
có thể phát hiện tốt nhất các đặc điểm của các đối tượng
Bước 4: Trình diễn kết quả (Results interpretation)
Mục tiêu cuối cùng của phân nhóm là cung cấp cho người dùng những thông tin chi tiết có ý nghĩa từ dữ liệu gốc để họ có thể giải quyết hiệu quả các vấn đề gặp phải Các chuyên gia trong các lĩnh vực liên quan giải thích sự phân vùng dữ liệu Các phân tích sâu hơn, thậm chí các thí nghiệm, có thể được yêu cầu để đảm bảo độ tin cậy của kiến thức được trích xuất
Phân tích nhóm không phải là quá trình xử lý một lần, trong nhiều trường hợp nó cần một loạt các thử nghiệm và lặp lại Hơn nữa, không có các tiêu chí tổng quát và hiệu quả để hướng dẫn việc lựa chọn các tính năng và lược đồ phân nhóm Tiêu chí xác thực cung cấp một số thông tin chi tiết về chất lượng của giải pháp phân nhóm Nhưng ngay
cả làm thế nào để lựa chọn tiêu chí thích hợp vẫn là yêu cầu đòi hỏi con người phải nỗ lực nhiều hơn
1.5 Các phương pháp phân nhóm dữ liệu phổ biến
1.5.1 Phương pháp phân hoạch (Partitioning Methods)
Phương pháp đơn giản và cơ bản nhất của phân tích nhóm là phân hoạch, nhằm
tổ chức các đối tượng của một tập dữ liệu vào một số nhóm hoặc cụm duy nhất
Trang 28Mục tiêu của phương pháp phân hoạch: Cho một CSDL gồm n đối tượng và k là
số nhóm lượng các nhóm được hình thành (k chọn ngẫu nhiên hoặc tùy mục đích của người sử dụng) Thuật toán phân hoạch tổ chức các đối tượng thành k phân vùng (k<=n), ở đó mỗi phân vùng đại diện cho một nhóm Các nhóm được hình thành để tối ưu hóa một tiêu chí phân vùng mục tiêu, sao cho các đối tượng trong một nhóm là “tương tự” với nhau và các đối tượng trong các nhóm khác nhau thì “không tương tự” theo các thuộc tính của tập dữ liệu
Phân nhóm theo phân hoạch CSDL D thực hiện bằng cách xác định trước các đối tượng trung tâm của các nhóm Kế tiếp mỗi đối tượng dữ liệu sẽ được đưa vào nhóm mà khoảng cách từ đối tượng dữ liệu đến đối tượng trung tâm của nhóm là nhỏ nhất Sau mỗi bước, đối tượng trung tâm của mỗi nhóm có thể được xác định lại dựa vào các đối tượng dữ liệu thuộc nhóm đó
Các thuật toán trong phương pháp phân hoạch: K-MEANS, K-MEDOIDS, PAM (Partitioning Around Medoids), CLARA (Clustering LARge Application), CLARANS (Clustering Large Applications based upon RANdomized Search) Trong đó K-MEANS
là thuật toán tiêu biểu, cấu trúc của thuật toán được trình bày trong chương 2 của luận văn này
1.5.2 Phương pháp phân cấp (Hierarchical Methods)
Phương pháp phân cấp tạo ra một sự phân tích theo cấp bậc của tập các đối tượng
dữ liệu đã cho Phương pháp này có thể được phân loại là hội tụ hoặc phân chia dựa trên cách phân cấp được hình thành
- Phương pháp hội tụ, còn được gọi là tiếp cận Bottom – Up (cách tiếp cận từ dưới lên): Bắt đầu với mỗi đối tượng tạo thành một nhóm riêng biệt, nó liên tục hợp nhất các đối tượng hoặc các nhóm gần nhau theo tiêu chí nào đó, cho đến khi tất cả các nhóm được hợp nhất thành một (cấp cao nhất của hệ thống phân cấp), hoặc thỏa mãn điều kiện kết thúc
- Phương pháp phân chia, còn được gọi là tiếp cận Top – Down (cách tiếp cận từ trên xuống): Bắt đầu với tất cả các đối tượng trong cùng một nhóm, trong mỗi lần lặp liên tiếp, nhóm được chia thành các nhóm nhỏ hơn, cho đến cuối cùng mỗi đối tượng nằm trong một nhóm, hoặc thỏa mãn điều kiện kết thúc Điều kiện kết thúc là điều kiện
để xác định một tập các đối tượng tại mỗi nút có phải là một nhóm hay không và được người sử dụng đưa vào tùy mục đích phân nhóm
Các phương pháp phân nhóm theo cấp bậc có thể dựa trên khoảng cách hoặc mật
độ và tính liên tục
Các phần mở rộng khác nhau của các phương thức phân cấp cũng xem xét phân nhóm trong các không gian con
Trang 29Các phương pháp phân cấp có một thực tế là khi một bước nhập hoặc tách được thực hiện, nó luôn luôn hoàn thành Điều này rất hữu ích vì nó dẫn đến chi phí tính toán nhỏ hơn bằng cách không phải lo lắng về một số tổ hợp các sự lựa chọn khác nhau
Các thuật toán của phương pháp phân cấp: AGNES (Agglomerative NEsting) và DIANA (DIvisia ANAlysic), BIRCH (Balance Iterative Reducing and Clustering using Hierarchies), CURE (Clustering Using Representatives), CHAMELEON
❖ Ưu nhược điểm của phương pháp phân cấp:
- Ưu điểm: Dễ dàng xử lý với bất kỳ kiểu đo độ tương tự/ khoảng cách nào, thích hợp với mọi kiểu dữ liệu thuộc tính
- Nhược điểm: là điều kiện để dừng vòng lặp rất mơ hồ, không cụ thể Mặt khác, phương pháp không duyệt lại các mức trước khi xây dựng để cải tiến chất lượng các nhóm
1.5.3 Phương pháp dựa trên mật độ (Density-Based Methods)
Hầu hết các phương pháp phân nhóm đều dựa trên khoảng cách giữa các đối tượng Các phương pháp này chỉ có thể tìm thấy các nhóm hình cầu và gặp khó khăn trong việc phát hiện các nhóm hình dạng tùy ý
Các phương pháp phân nhóm khác đã được phát triển dựa trên khái niệm về mật
độ Ý tưởng chung của phương pháp là tiếp tục phát triển một nhóm đã cho với điều kiện là mật độ (số lượng đối tượng hoặc điểm dữ liệu) trong "vùng lân cận" vượt quá một số ngưỡng Ví dụ, đối với mỗi điểm dữ liệu trong một nhóm nhất định, vùng lân cận của một bán kính nhất định phải chứa ít nhất một số điểm tối thiểu Phương pháp này có thể được sử dụng để lọc nhiễu hoặc các ngoại lệ và khám phá các nhóm hình
Hình 1.6 Mô hình thuật toán phân cấp (thuật toán AGNES và DIANA)
Trang 30dạng tùy ý Hơn nữa, các phương pháp dựa trên mật độ có thể được mở rộng từ không gian đầy đủ sang phân nhóm không gian con
Thuật toán phân nhóm dựa trên mật độ đã đóng một vai trò quan trọng trong việc tìm kiếm cấu trúc hình dạng phi tuyến tính Phương pháp này bao gồm các thuật toán DBSCAN (Density Based Spatial Clustering of Application with Noise), OPTICS (Ordering Points to Identify the Clustering Structure), DENCLUE (Density-based CLUstEring), DBCLASD (Distribution Based Clustering of Large Spatial Databased) Trong đó thuật toán DBSCAN (phân nhóm không gian dựa trên mật độ của các ứng dụng với nhiễu) được sử dụng rộng rãi nhất Nó sử dụng khái niệm về khả năng tiếp cận mật độ và kết nối mật độ
Khả năng tiếp cận mật độ: Một điểm "p" được gọi là có thể truy cập mật độ từ một điểm "q" nếu điểm "p" nằm trong khoảng cách ε từ điểm "q" và "q" có đủ số điểm trong vùng lân cận nằm trong khoảng cách ε
Khả năng kết nối mật độ - Một điểm "p" và "q" được cho là đã kết nối mật độ nếu tồn tại một điểm "r" có đủ số điểm trong vùng lân cận của nó và cả hai điểm "p" và
"q" đều nằm trong khoảng cách ε
Các bước của thuật toán phân nhóm DBSCAN:
Cho X = {x1, x2, x3, , xn} là tập các điểm dữ liệu DBSCAN yêu cầu hai tham số: ε (eps) và số điểm tối thiểu cần thiết để tạo thành một nhóm (minPts)
Bước 1: Bắt đầu với một điểm bắt đầu tùy ý chưa được truy cập
Bước 2: Trích xuất vùng lân cận của điểm này bằng cách sử dụng ε (Tất cả các điểm nằm trong khoảng cách ε là vùng lân cận)
Bước 3: Nếu có đủ vùng lân cận xung quanh điểm này thì quá trình phân nhóm bắt đầu và điểm được đánh dấu là đã truy cập nếu không điểm này được gắn nhãn là nhiễu (Sau này, điểm này có thể trở thành một phần của nhóm)
Hình 1.7 Mô hình tiếp cận mật độ và kết nối mật độ
Trang 31Bước 4: Nếu một điểm được tìm thấy là một phần của nhóm thì vùng lân cận ε của nó cũng là một phần của nhóm và quy trình trên từ bước 2 được lặp lại cho tất cả các điểm lân cận Điều này được lặp lại cho đến khi tất cả các điểm trong nhóm được xác định
Bước 5: Một điểm mới chưa được truy cập được truy xuất và xử lý, dẫn đến việc phát hiện ra một nhóm khác hoặc nhiễu
Bước 6: Quá trình này tiếp tục cho đến khi tất cả các điểm được đánh dấu là đã truy cập
❖ Ưu điểm của thuật toán:
- Không yêu cầu đặc điểm kỹ thuật trước của số nhóm
- Có thể xác định dữ liệu nhiễu trong khi phân nhóm
- Thuật toán DBSCAN có thể tìm các nhóm có kích thước và hình dạng tùy ý
❖ Nhược điểm:
- Thuật toán DBSCAN không thành công trong trường hợp mật độ các nhóm khác nhau
- Không hoạt động tốt trong trường hợp dữ liệu có kích thước lớn
1.5.4 Phương pháp dựa trên lưới (Gird-Based Methods)
Các phương pháp dựa vào lưới định lượng không gian đối tượng vào một số hữu hạn của các ô tạo thành cấu trúc lưới Tất cả các hoạt động phân nhóm được thực hiện trên cấu trúc lưới (tức là trên không gian lượng tử)
Sử dụng lưới thường là một cách tiếp cận hiệu quả đối với nhiều vấn đề khai thác
dữ liệu không gian, bao gồm cả việc phân nhóm Do đó, các phương pháp dựa vào lưới
có thể được tích hợp với các phương pháp phân nhóm khác như phương pháp dựa trên mật độ và phương pháp phân cấp
Các thuật toán điển hình theo phương pháp dựa trên lưới gồm: STING (STatistical INformation Grid), WaveCluster, CLIQUE (CLustering In QUEst)…
Cấu trúc của thuật toán STING
STING được sử dụng để thực hiện phân nhóm trên dữ liệu không gian, thuật toán
sử dụng cấu trúc dữ liệu lưới có độ phân giải đa phân cấp để phân vùng vùng không gian
Lợi ích lớn của STING là xử lý nhiều truy vấn "theo định hướng phân vùng" phổ biến trên một tập hợp các điểm hiệu quả
Trang 32STING chia miền không gian thành những ô lưới chữ nhật và đánh chỉ số cho từng ô lưới Sau đó, mỗi đối tượng dữ liệu sẽ được đưa vào ô lưới tương ứng
Mỗi ô tạo thành một cấu trúc phân cấp Điều này có nghĩa là mỗi ô ở mức cao hơn sẽ được chia thành 4 ô nhỏ hơn ở cấp độ thấp hơn Nói cách khác, mỗi ô ở mức thứ
i (ngoại trừ lá) có 4 ô ở mức i + 1 Sự kết hợp của 4 ô con sẽ trả lạiô gốc ở mức trên của chúng
Các tham số thống kê được lưu trữ trong mỗi ô Đối với mỗi ô trong mỗi lớp, có:
- Tham số độc lập thuộc tính Count: dùng để đếm số lượng bản ghi hoặc các đối tượng trong ô;
- Tham số phụ thuộc thuộc tính (mỗi thuộc tính của mỗi ô lưu trữ các thông số sau):
+ M: Giá trị trung bình của tất cả các giá trị của mỗi thuộc tính trong ô;
+ S: Độ lệch chuẩn của tất cả các giá trị của mỗi thuộc tính trong ô;
+ Min: Giá trị nhỏ nhất đối với mỗi thuộc tính trong ô;
+ Max: Giá trị lớn nhất đối với mỗi thuộc tính trong ô;
+ Distribution: Kiểu phân bố mà giá trị thuộc tính trong ô tuân theo Kiểu phân
bố có thể là kiểu bình thường, số mũ, v.v… Distribution sẽ không được gán nếu kiểu phân bố không xác định
Các tham số thống kê cho các ô trong lớp thấp nhất được tính toán trực tiếp từ các giá trị có trong bảng Các tham số cho các ô ở tất cả các cấp độ khác được tính toán
từ các ô con tương ứng ở mức thấp hơn
Hình 1.8 Mô hình phân nhóm dựa trên lưới (thuật toán STING)
Tầng 1
Tầng i-1
Tầng i
Trang 33Các bước của thuật toán STING sử dụng cách tiếp cận từ trên xuống để trả lời các truy vấn dữ liệu không gian Có hai loại truy vấn phổ biến:
- Tìm khu vực xác định các ràng buộc nhất định;
- Lấy một vùng và trả về một số thuộc tính của vùng;
Các bước thực hiện như sau:
1 Bắt đầu từ một lớp được chọn trước thường với một số lượng nhỏ các ô (Lớp được chọn trước không nhất thiết phải là lớp trên cùng);
2 Đối với mỗi ô trong lớp hiện tại tính toán khoảng tin cậy (hoặc phạm vi xác suất ước tính) phản ánh sự liên quan của ô với truy vấn đã cho;
3 Khoảng tin cậy được tính bằng cách sử dụng các tham số thống kê của mỗi ô;
4 Loại bỏ các ô không thích hợp sau khi xem xét;
5 Khi kết thúc với lớp hiện tại, tiến tới cấp thấp hơn tiếp theo;
6 Việc xử lý cấp thấp hơn tiếp theo chỉ kiểm tra các ô có liên quan còn lại;
7 Lặp lại quá trình này cho đến khi đạt đến lớp đáy;
8 Trả về các vùng của các ô có liên quan thỏa mãn truy vấn
Độ phức tạp tính toán là O(k) trong đó k là số ô lưới ở mức thấp nhất Thông thường k <= n, trong đó n là số lượng đối tượng
❖ Ưu điểm của thuật toán STING:
truy vấn độc lập, vì thông tin thống kê tồn tại độc lập với các truy vấn;
- Duyệt toàn bộ cơ sở dữ liệu một lần để tính toán các đại lượng thống kê cho mỗi ô nên rất hiệu quả;
- Cấu trúc dữ liệu lưới thuận tiện cho quá trình xử lí song song và cập nhật liên tục
❖ Nhược điểm:
Thuật toán tạo ra các nhóm với ranh giới là chiều ngang hoặc dọc và không có ranh giới đường chéo nào được chọn, điều này cũng ảnh hưởng tới chất lượng thuật toán
1.5.5 Phương pháp dựa trên mô hình xác suất (Model-Based Methods)
Trong tất cả các phương pháp phân tích nhóm đã trình bày ở trên, mỗi đối tượng
dữ liệu có thể được gán cho chỉ một trong một số nhóm Quy tắc gán này là bắt buộc trong một số ứng dụng, tuy nhiên, trong các ứng dụng khác, nhu cầu phân bổ đối tượng
Trang 34linh hoạt trong một số ứng dụng cần có một phương pháp chung để tính toán các nhóm
và phép gán theo xác suất
Theo thống kê, có thể giả định rằng một danh mục ẩn là một phân phối trên không gian dữ liệu, có thể được biểu diễn bằng toán học bằng cách sử dụng hàm mật độ xác suất (hoặc hàm phân phối) Chúng ta gọi một danh mục ẩn như một nhóm xác suất Thuật toán tối ưu hóa kỳ vọng EM (Expectation-Maximization) là một khuôn khổ tiếp cận khả năng tối đa của các tham số trong các mô hình thống kê Trong bối cảnh phân nhóm dựa trên mô hình mờ hoặc xác suất, thuật toán EM bắt đầu với một tập hợp tham
số ban đầu và lặp lại cho đến khi nhóm không thể được cải thiện, có nghĩa là, cho đến khi nhóm hội tụ hoặc thay đổi là đủ nhỏ (ít hơn một ngưỡng đặt trước) Mỗi lần lặp lại bao gồm hai bước:
- Bước kỳ vọng (expectation step) gán các đối tượng cho các nhóm theo phân nhóm mờ hiện tại hoặc các tham số của các nhóm xác suất
- Bước cực đại hóa (maximization step) tìm thấy nhóm hoặc tham số mới tối đa hóa trong phân nhóm mờ hoặc khả năng dự kiến dựa trên mô hình xác suất phân nhóm
Giải thuật Expectation-Maximization (EM)
* Đầu vào: Cho tập dữ liệu n đối tượng, K (số nhóm)
* Đầu ra: Trị tối ưu cho các thông số của mô hình
Giải thuật:
1 Khởi trị
- Chọn ngẫu nhiên K đối tượng làm trung tâm của K nhóm;
- Ước lượng trị ban đầu cho các thông số (nếu cần)
2 Lặp tinh chỉnh các thông số (nhóm):
- Bước kỳ vọng (expectation step): gán mỗi đối tượng xi đến nhóm Ck với xác suất P (xi ∈ Ck) với k=1 K
𝑛
𝑖=1
Với m k là trung tâm của nhóm Ck, j=1 K
- Dừng khi thỏa điều kiện định trước
Trang 35❖ Ưu điểm của thuật toán: Trong nhiều ứng dụng, phân nhóm dựa trên mô hình xác suất đã được chứng minh là có hiệu quả vì nó tổng quát hơn các phương pháp phân vùng và các phương thức phân cụm mờ Một lợi thế khác biệt là các mô hình thống kê thích hợp có thể được sử dụng để nắm bắt các nhóm tiềm ẩn Thuật toán EM thường được sử dụng để xử lý nhiều vấn đề học tập trong khai thác dữ liệu và thống kê do tính đơn giản của nó
1.6 Phương pháp đánh giá việc phân nhóm dữ liệu
Các phương pháp đánh giá việc phân nhóm dữ liệu gồm có:
- Đánh giá ngoài (external evaluation): Đánh giá kết quả gom nhóm dựa vào cấu trúc được chỉ định trước cho tập dữ liệu Đánh giá ngoại bao gồm so sánh kết quả phân tích phân nhóm với kết quả được biết bên ngoài, chẳng hạn như nhãn lớp được cung cấp bên ngoài Phương pháp này chủ yếu được sử dụng để chọn thuật toán phân nhóm phù hợp cho một tập dữ liệu cụ thể
Các độ đo đánh giá: Rand statistic, Jaccard coefficient, Folkes and Mallows index, …
- Đánh giá trong (internal evaluation): Đánh giá kết quả phân nhóm theo số lượng các vector của chính tập dữ liệu (ma trận khoảng cách – proximity matrix) Sử dụng thông tin nội bộ của quá trình phân nhóm để đánh giá chất lượng của cấu trúc phân nhóm
mà không tham chiếu đến thông tin bên ngoài Nó cũng có thể được sử dụng để ước tính
số lượng nhóm và thuật toán phân nhóm thích hợp mà không liên quan bất kỳ dữ liệu bên ngoài nào
Các độ đo đánh giá: Hubert’s Γ statistic, Silhouette index, Dunn’s index, Bouldin (DBI)…
Davies Đánh giá tương đối (relative evaluation): Đánh giá kết quả phân nhóm bằng việc so sánh các kết quả phân nhóm khác nhau ứng với các bộ trị tham số khác nhau cho cùng một thuật toán (ví dụ: thay đổi số nhóm k) Nó thường được sử dụng để xác định
số lượng nhóm tối ưu
❖ Tiêu chí cho việc đánh giá và chọn kết quả phân nhóm tối ưu
- Độ nén (compactness): các đối tượng trong nhóm nên gần nhau
Trang 36- Độ phân tách (separation): các nhóm nên xa nhau
1.7 Một số ứng dụng của phương pháp phân nhóm dữ liệu
Phân nhóm dữ liệu là kỹ thuật đang phát triển mạnh mẽ Các lĩnh vực nghiên cứu bao gồm khai thác dữ liệu, thống kê, học máy, công nghệ cơ sở dữ liệu không gian và nhiều lĩnh vực ứng dụng khác như:
- Kinh doanh: Việc phân nhóm có thể được sử dụng để tổ chức một số lượng lớn khách hàng thành các nhóm có cùng đặc điểm tương tự nhau, tạo thuận lợi cho việc phát triển các chiến lược kinh doanh để tăng cường quản lý quan hệ khách hàng Hoặc trong nghiên cứu thị trường, phân nhóm dữ liệu được sử dụng để phân đoạn thị trường và xác định mục tiêu thị trường; …
- Quản lý dự án: Đối với cơ quan quản lý số lượng lớn các dự án Để cải thiện công tác quản lý, việc phân nhóm có thể được áp dụng cho các dự án phân chia theo loại dựa trên sự tương đồng để kiểm tra và cải thiện việc phân bổ dự án;
- Phân nhóm cũng đã tìm thấy nhiều ứng dụng trong tìm kiếm Web Ví dụ: tìm kiếm từ khóa thường có thể trả về số lượng truy cập rất lớn (tức là các trang có liên quan đến tìm kiếm) do số lượng rất lớn các trang web Phân nhóm có thể được sử dụng để tổ chức các kết quả tìm kiếm thành các nhóm và trình bày các kết quả một cách súc tích và
dễ tiếp cận Bên cạnh đó phân nhóm cũng được sử dụng để phân loại tài liệu, phân loại người dùng web,…
- Y học: Phân nhóm dữ liệu được áp dụng để phân chia cơ sở dữ liệu bệnh nhân thành các nhóm có cùng đặc điểm triệu chứng bệnh nhằm để thống kê, theo dõi bệnh từ
đó y bác sĩ, các chuyên gia nghiên cứu có thể phát hiện và chẩn đoán các loại bệnh và đưa ra phương hướng điều trị tốt hơn Bên cạnh đó phân nhóm cũng được ứng dụng trong lĩnh vực chăm sóc sức khỏe, tâm lý nhằm cải thiện sức khỏe cho con người và công tác phòng chống bệnh tật
- Quy hoạch đô thị: Nhận dạng các nhóm nhà cửa theo loại nhà, giá trị hoặc vị trí địa lí, … nhằm cung cấp thông tin cho quy hoạch đô thị;
- 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
- Dự báo động đất: Dựa trên kết quả phân nhóm các vết đứt gãy của địa tầng
- Sinh học: Phân nhóm động vật và thực vật dựa vào cấu trúc gen với các chức năng tương đồng;
- Bảo hiểm, tài chính: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng của khách hàng, phát hiện gian lận tài chính;
Trang 37- Hơn nữa, các kỹ thuật phân nhóm đã được phát triển để gộp các tài liệu thành các chủ đề, thường được sử dụng trong thực tiễn thu thập thông tin
nó có thể phục vụ như một bước tiền xử lý cho các thuật toán khác, chẳng hạn như đặc tính, lựa chọn tập hợp thuộc tính và phân loại, sau đó sẽ hoạt động trên các nhóm được phát hiện và các thuộc tính hoặc tính năng đã chọn
Trang 38CHƯƠNG 2: MÔ HÌNH ĐỀ XUẤT VỀ KỸ THUẬT
PHÂN NHÓM
2.1 Mô hình K-means truyền thống
K-means là một thuật toán tiêu biểu của phương pháp phân hoạch Giả sử có một tập dữ liệu D, chứa n đối tượng trong không gian Euclide Phương pháp phân hoạch phân chia các đối tượng trong D thành k nhóm C1, C2 , Ck, trong đó Ci D và Ci ∩ Cj
= với (1 ≤ i, j ≤ k)
Kỹ thuật phân hoạch dựa trên trọng tâm (centroid) sử dụng trung tâm của một nhóm Ci để biểu diễn nhóm đó Về mặt khái niệm, trọng tâm của một nhóm là điểm trung tâm của nhóm Các trọng tâm có thể được định nghĩa theo nhiều cách khác nhau, thông thường là tính trung bình của các đối tượng (hoặc điểm) được gán cho nhóm đó
Sự khác biệt giữa một đối tượng o Ci và đại diện của nhóm ci, được đo bằng khoảng cách (o, ci), trong đó d(x, y) là khoảng cách Euclide giữa hai điểm x và y
Chất lượng của nhóm Ci có thể được đo bởi sự thay đổi bên trong nhóm, đó là tổng bình phương sai số giữa tất cả các đối tượng trong Ci và trọng tâm ci, được định nghĩa là:
𝐸 = ∑ ∑ 𝑑(𝑜, 𝑐𝑖)2
𝑜∈𝐶𝑖
𝑘
𝑖=1
Trong đó E là tổng bình phương sai số của tất cả các đối tượng trong tập dữ liệu;
o là điểm trong không gian đại diện cho một đối tượng nhất định; và ci là trọng tâm của nhóm Ci (cả o và ci là đa chiều) Nói cách khác, đối với mỗi đối tượng trong mỗi nhóm, khoảng cách từ đối tượng đến tâm nhóm của nó được bình phương và cộng lại Hàm mục tiêu được sử dụng để đánh giá chất lượng phân hoạch sao cho các đối tượng trong một nhóm tương tự nhau nhưng không giống với các đối tượng trong các nhóm khác Các thuật toán gom nhóm phân hoạch cải tiến tiêu chuẩn gom nhóm bằng cách tính các giá trị độ đo tương tự giữa các đối tượng dữ liệu và sắp xếp các giá trị này, sau đó thuật toán lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu
2.1.1 Giới thiệu thuật toán K-means
Thuật toán phân nhóm K-means do MacQueen giới thiệu trong tài liệu “J Some Methods for Classification and Analysis of Multivariate Observations” năm 1967 K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân nhóm
Cho tập dữ liệu D có n đối tượng gồm {a1, a2, … , an}, với ai là đối tượng thứ i (i=1 n) Biểu diễn các thuộc tính của mỗi đối tượng ai như một điểm của không gian m chiều: ai = (xi1, xi2, … , xim) trong đó xis (i=1 n, s=1 m) là thuộc tính thứ s của đối tượng thứ i
(2.1)
Trang 39Ý tưởng chính của thuật toán K-Means là tìm cách phân nhóm tập dữ liệu D có
n đối tượng, mỗi đối tượng có m thuộc tính, vào k nhóm C1, C2 , Ck, trong đó Ci D
và Ci ∩ Cj = với (1 ≤ i, j ≤ k), k là số các nhóm được xác định trước sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm (centroid) là nhỏ nhất
Phương thức phân nhóm dữ liệu thực hiện dựa trên khoảng cách Euclidean nhỏ nhất giữa đối tượng đến phần tử trung tâm của các nhóm
Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các phần tử trong nhóm
- xis (s=1 m) là thuộc tính thứ s của đối tượng ai;
- xjs (s=1 m) là thuộc tính thứ s của phần tử trung tâm cj;
❖ Phần tử trung tâm (centroid):
Với k nhóm ban đầu được chọn ngẫu nhiên từ tập dữ liệu D có k phần tử trung tâm cj (j=1 k):
- Giả sử nhóm thứ j có t phần tử là {a1, a2, … , at}, i=1 t;
- Mỗi phần tử ai có m thuộc tính là {xi1, xi2, , xim}, s=1 m;
- xis là thuộc tính thứ s của phần tử thứ i;
- cjs là tọa độ thứ s của phần tử trung tâm nhóm j;
Sau mỗi lần nhóm các đối tượng vào các nhóm, tọa độ của phần tử trung tâm cj
là cjs được tính toán lại theo công thức:
𝑐𝑗𝑠 =∑ 𝑥𝑖𝑠
𝑡 𝑖=1
𝑡
(2.2)
(2.3)
Trang 402.1.2 Thuật toán K-means
❖ Đầu vào của thuật toán (Input): Một cơ sở dữ liệu D gồm n đối tượng và số
nhóm cần phân chia là k
❖ Đầu ra của thuật toán (Output): Các cụm Ci (i=1 k) sao cho hàm tiêu chuẩn
E đạt giá trị tối thiểu
❖ Các bước của thuật toán:
- Bước 1: Khởi tạo
Chọn k đối tượng cj (j=1 k) là trọng tâm ban đầu của k nhóm từ tập dữ liệu đầu vào D Mỗi nhóm được đại diện bởi tâm của nhóm
- Bước 2: Đối với mỗi đối tượng ai (1 ≤ i ≤ n), tính khoảng cách từ ai tới mỗi trọng tâm cj với (j=1, , k)
- Bước 3: Nhóm các đối tượng vào nhóm có trọng tâm gần nhất
- Bước 4: Xác định lại tâm mới cj cho các nhóm bằng cách tính trung bình cộng các thuộc tính của các đối tượng trong nhóm
- Bước 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
Nhóm các đối tượng
dựa trên khoảng cách