tỷ lệ cá cược bóng đá ngoại hạng anh là một thuật toán phân cụm dữ liệu kinh điển trong học máy (Machine learning), thuộc lớp thuật toán học không giám sát (Unsupervised learning). Bài viết sau đây nhằm giúp các bạn sinh viên CNTT hiểu rõ hơn về thuật toán trong phân cụm dữ liệu và ứng dụng thuật toán này trong phần nén ảnh của môn học Xử lý ảnh dành cho sinh viên năm 4 chuyên ngành CNTT.
1. Giới thiệu về thuật toán tỷ lệ cá cược bóng đá ngoại hạng anh
Thuật toán tỷ lệ cá cược bóng đá ngoại hạng anh chuẩn được đề xuất lần đầu tiên bởi Stuart Lloyd của Bell Labs vào năm 1957 nhưng không được xuất bản dưới dạng một bài báo cho đến tận năm 1982, năm 1965, Edward W.Forgy đã công bố phương pháp tương tự, do đó phương pháp này thường được gọi là Lloyd-Forgy.
Thuật toán tỷ lệ cá cược bóng đá ngoại hạng anh
Bước 1. Tạo các tâm tỷ lệ cá cược bóng đá ngoại hạng anh ngẫu nhiên
(1)
Bước 2. Gán các điểm dữ liệu xi(iÎ[1, N]) vào các tâm tỷ lệ cá cược bóng đá ngoại hạng anh mk (kÎ[1, K])
- Với mỗi điểm dữ liệu, ta tính khoảng cách Euclid của nó đến các tâm tỷ lệ cá cược bóng đá ngoại hạng anh được định nghĩa bởi hàm (xi-mk) (2), tập hợp các điểm được gán vào cùng một tâm tỷ lệ cá cược bóng đá ngoại hạng anh sẽ tạo thành một tỷ lệ cá cược bóng đá ngoại hạng anh.
- Đặt là các vector cho mỗi cặp xi, yik= 1 nếuxithuộc tỷ lệ cá cược bóng đá ngoại hạng anhkvàyij=0 tỷ lệ cá cược bóng đá ngoại hạng anhj≠k.
- Khi đó ta có biểu thức sau:
(3)
- Tổng bình phương khoảng cách từ một điểm thuộc tỷ lệ cá cược bóng đá ngoại hạng anh dữ liệuxithuộc nhómmkđược xác định theo công thức:
(4)
- Khi đó hàm mất mát (lost function) được định nghĩa:
(5)
Với M là tập hợp các tỷ lệ cá cược bóng đá ngoại hạng anh tại (1)
Y, M = argminY,M(6)
Bước 3. Cập nhật lại vị trí tâm tỷ lệ cá cược bóng đá ngoại hạng anh và gán lại các điểm dữ liệu vào từng tỷ lệ cá cược bóng đá ngoại hạng anh sau khi đã xác định được khoảng cách nhỏ nhất từ các công thức (4), (5), (6).
- Lặp lại cho đến khi vị trí tâm các tỷ lệ cá cược bóng đá ngoại hạng anh không thay đổi, tổng khoảng cách từ các điểm dữ liệu đến các tâm tỷ lệ cá cược bóng đá ngoại hạng anh khi đó sẽ đạt nhỏ nhất, gọi là lỗi (Error) nhỏ nhất.
Hình 1. Sử dụng tỷ lệ cá cược bóng đá ngoại hạng anh để phân cụm dữ liệu, số điểm dữ liệu N=150; K=3
2. Sử dụng ngôn ngữ lập trình Python cài đặt thuật toán tỷ lệ cá cược bóng đá ngoại hạng anh trong nén ảnh màu
Từ thuật toán tỷ lệ cá cược bóng đá ngoại hạng anh trên, mỗi bức ảnh màu chúng ta tiến hành phân cụm theo các thông số màu R-G-B từ các pixels của ảnh. Khi xác định được những màu chủ đạo (màu chiếm đa số pixels trong ảnh), chúng tôi tiến hành phân cụm và thay thế mỗi giá trị pixel đó bởi giá trị trung bình các pixels trong ảnh, chúng tôi sử dụng ngôn ngữ lập trình python thử nghiệm thuật toán tỷ lệ cá cược bóng đá ngoại hạng anh để thực hiện nén ảnh. Chương trình chúng tôi sử dụng một số thư viện như matplotlib, sklearn và numpy trong quá trình cài đặt.
3. Kết luận
Qua kết quả chạy thực nghiệm khi sử dụng thuật toán phân cụm tỷ lệ cá cược bóng đá ngoại hạng anh với số cụm K=16 để nén ảnh, ảnh đã giảm dung lượng từ 4.3MB xuống còn 209KB (b), với K=4 dung lượng giảm xuống còn 159KB (c). Mặc dù chất lượng ảnh đã không được như ảnh gốc vì ảnh sau khi nén là ảnh 16 màu hoặc 4 màu tương ứng với K=16 và K=4 cụm được tỷ lệ cá cược bóng đá ngoại hạng anh tiến hành phân cụm và thay thế giá trị trung bình các chỉ số R-G-B trong từng pixel của ảnh gốc. Tuy nhiên ảnh sau khi nén vẫn giữ được đầy đủ đặc tính để thực hiện phân tích và xử lý ảnh, do đó tỷ lệ cá cược bóng đá ngoại hạng anh được ứng dụng cài đặt thực nghiệm, mô phỏng trong lĩnh vực phân tích và xử lý ảnh cũng như mô phỏng thực nghiệm phân cụm dữ liệu trong lĩnh vực học máy.
Tài liệu tham khảo:
[1]. Shokri Selim, tỷ lệ cá cược bóng đá ngoại hạng anh-Type Algorithms: A Generalized Convergence Theorem and Characterization of Local Optimality, IEEE transactions on pattern analysis and machine intelligence, vol. pami-6, no. 1, january, 1984.
[2]. Vu Huu Tiep, bloghttps://machinelearningcoban.com.