Kmeans, tối ưu hóa xử lý Kmeans với Spark

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin phân tích hành vi sử dụng dịch vụ viễn thông của khách hàng dựa trên thuật toán phân cụm đưa ra chính sách khuyến mại về sản phẩm và theo phân khúc khách hàng (Trang 52 - 57)

Chương 3: Spark và giải thuật rừng ngẫu nhiên song song (Parallel Random Forest - PRF)

3.3. Kmeans, tối ưu hóa xử lý Kmeans với Spark

Thuật toán K-means cũng là một thuật toán quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm. Tư tưởng chính của nó là tìm cách phân nhóm các đối tượng ( objects ) cho trước vào K cụm ( K là số cụm và đượ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.

Luận văn thạc sĩ Công nghệ thông tin

53

Hình 3.7. Hình dạng cụm dữ liệu được khám phá bởi k-means Nội dung thuật toán cụ thể như sau:

Cho trước mạng lưới gồm N nút và số cụm k.

Bước 1. Khởi tạo: Chọn ra ngẫu nhiên k nút làm trọng tâm {ci} i = 1, ..., k.

Bước 2. Với mọi nút, tính khoảng cách giữa nó với các trọng tâm của các cụm.

Gán nó vào cụm có trọng tâm gần nó nhất.

Bước 3. Cập nhật lại các trọng tâm mới.

𝑐𝑖(𝑡+1) = 1

|𝑆𝑖(𝑡)|∑ 𝑥𝑗

𝑥𝑗∈𝑆𝑖(𝑡)

Bước 4. Lặp lại bước 2 và 3 cho đến khi không có sự thay đổi giữa các cụm

Thuật toán k-means trên được chứng minh là hội tụ và có độ phức tạp tính toán là: 𝑂((3𝑛𝑘𝑑)τ𝑇𝑓𝑙𝑜𝑝)

Trong đó, n là số đối tượng dữ liệu, k là số cụm dữ liệu, d là số chiều, τ là số vòng lặp, Tflop là thời gian để thực hiện một phép tính cơ sở như phép tính nhân, chia,... Như vậy, do k-means phân tích phân cụm đơn giản nên có thể áp dụng đối với tập dữ liệu lớn.Tuy nhiên, nhược điểm của k-means là chỉ áp dụng với dữ liệu có thuộc tính số và khám phá ra các cụm có dạng hình cầu, k-means còn rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu. Hơn nữa, chất lượng phân cụm dữ liệu k của thuật toán k-means phụ thuộc nhiều vào các tham số đầu vào như: số cụm k và k trọng tâm khởi tạo ban đầu. Trong trường hợp các trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm cụm tự nhiên thì kết quả phân cụm của k-means là rất thấp, nghĩa là các cụm dữ liệu được khám phá rất lệch so với các cụm trong thực tế. Trên thực tế chưa có một giải pháp tối ưu nào để chọn các tham số đầu vào, giải pháp thường được sử dụng nhất là thử nghiệm với các giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất.

Luận văn thạc sĩ Công nghệ thông tin

54

Hình 3.8. Thuật toán Kmeans trong Spark

Khi xử lý phân cụm, dữ liệu đầu vào được đưa lên các RDDs , các RDDs này tương ứng được phân chia đồng thời vào các tasks và xử lý. Sau đó tính toán độc lập các tâm cụm với nhau và cập nhật lại tâm cụm. Việc cập nhật lại tâm của k cụm được thực hiện đồng thời và riêng biệt giữa các RDDs, sau đó, sẽ có một giản đồ DAGs được hình thành, với các bước cần thực hiện, khi có có quả tổng hợp, dữ liệu được xáo trộn và tính toán lại giữa các cụm được chuyển về cho Spark master, Spark master thực hiện tính toán lại tâm cụm và chuyển lại các task tính toán dữ liệu cho các Spark slave, quá trình này lặp lại tương ứng cho đến khi không còn thay đổi giữa các tâm cụm và trả ra dữ liệu kết quả.

Việc tối ưu các bước thực thi trong việc song song hóa quá trình xử lý và ghép dữ liệu trên Spark, hỗ trợ trong quá trình xử lý đồng thời dữ liệu lớn.

Theo [17] và [18], các độ đo chất lượng phân cụm được phân thành 3 loại là:

Luận văn thạc sĩ Công nghệ thông tin

55

Đánh giá trong (internal evaluation): Kết quả phân cụm được đánh giá dựa trên chính dữ liệu được phân cụm bằng cách sử dụng các đại lượng đánh giá sự gắn kết cụm như mật độ ( density), khoảng cách giữa các phần tử bên trong cụm hay khoảng cách giữa các cụm với nhau, ... Hướng tiếp cận của loại này dựa trên tiêu chí: các thuật toán phân cụm tốt là các thuật toán tạo ra các cụm mà các phần tử bên trong mỗi cụm có độ tương tự với nhau lớn và độ tương tự với các phần tử bên ngoài nhỏ.

Đánh giá ngoài (external evaluation): Kết quả phân cụm được đánh giá dựa tập dữ liệu chuẩn(mẫu) đã được phân từ trước đó, còn được gọi là tập benchmark. Hướng tiếp cận của loại này đánh giá mức độ tương đồng giữa việc phân cụm bởi thuật toán với tập dữ liệu benchmark.

Đánh giá quan hệ (relative evalution): Đánh giá việc phân cụm bằng cách so sánh nó với các kết quả phân cụm khác được sinh ra bởi cùng thuật toán nhưng với các giá trị tham số khác nhau.

Việc đánh giá số cụm tốt nhất có thể kể đến một số chỉ số như Độ đo bóng (Silhouette), độ đo Davies – Bouldin, độ đo Dunn, độ đo Modularity...

Trong quá trình thực hiện đề tài này, sẽ chỉ sử dụng độ đo Davies – Bouldin.

Độ đo Davies – Bouldin (DB)

Độ đo Davies-Bouldin được tính theo công thức theo [15]:

𝐷𝐵 =1

𝑛∑ 𝑀𝑎𝑥𝑖≠𝑗

𝑛 𝑖=1

𝜎𝑖 + 𝜎𝑗 𝑑(𝑐𝑖, 𝑐𝑗) Trong đó:

n là số cụm.

cx là trọng tâm của cụm x

σx là trung bình khoảng cách của tất cả các phần tử trong cụm x tới trọng tâm cx

d(ci , cj) là khoảng cách giữa hai trọng tâm của cụm i j.

Giá trị DB càng nhỏ thì chất lượng phân cụm càng tốt.

Nhận xét: Do k-means phân tích phân cụm đơn giản nên có thể áp dụng đối với tập dữ liệu lớn. Nhưng k-means còn nhiều mặt hạn chế như: k-means chỉ áp dụng với dạng dữ liệu có thuộc tính số và có dạng hình cầu, k-means còn rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu. Ngoài ra, chất lượng phân cụm của thuật toán k-means phụ thuộc nhiều vào các tham số đầu vào như: số cụm k và k trọng tâm khởi tạo ban đầu. Trong trường hợp, các trọng tâm khởi tạo ban đầu mà quá lệch so

Luận văn thạc sĩ Công nghệ thông tin

56

với các trọng tâm cụm tự nhiên thì kết quả phân cụm của k-means là rất thấp, cụm dữ liệu được khám phá rất lệch so với các cụm trong thực tế.

Luận văn thạc sĩ Công nghệ thông tin

57

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin phân tích hành vi sử dụng dịch vụ viễn thông của khách hàng dựa trên thuật toán phân cụm đưa ra chính sách khuyến mại về sản phẩm và theo phân khúc khách hàng (Trang 52 - 57)

Tải bản đầy đủ (PDF)

(81 trang)