MỞ ĐẦU 1. Mục đích nghiên cứu Hiện nay có rất nhiều nền tảng thống kê các tập dữ liệu ứng dụng cho thực tế ví dụ như tập dữ liệu về orders, bookings, cryptos, chứng khoán,… Việc thu thập các tập dữ liệu ấy rất hữu ích cho việc phân tích, nhằm đưa ra những định hướng về sau cho doanh nghiệp. Những gì chúng ta thường xuyên theo dõi ngày nay, ví dụ như giá vàng hay một biểu đồ thống kê về doanh số bán hàng của một công ty nào đó,… có thể gọi chung là một “dashboard”, nó là kết quả cuối cùng của một quy trình xử lý dữ liệu, thông tin. Một hệ thống như vậy tất nhiên cần phải đảm bảo tập dữ liệu được thu thập không được thiếu sót, tính bảo mật cho thông tin, tốc độ truyền tải tốt nhất tới cho người dùng,… Khái niệm về kho dữ liệu cũng được hình thành dựa trên cơ sở đó, đặc biệt với cơ sở hạ tầng điện toán đám mây rất phổ biến hiện nay.
Các nền tảng thống kê tập dữ liệu về bóng đá cũng như vậy. Bóng đá là một môn thể thao rất phát triển do đó tập dữ liệu về bóng đá là rất lớn như các thông tin về giải đấu, trận đấu, cầu thủ,… Người dùng xem bóng đá thường xuyên theo dõi lịch thi đấu, thông số các trận đấu, chỉ số cầu thủ và thường có thói quen dự đoán kết quả của các trận đấu tiếp theo dựa theo tình hình hiện tại và phong độ gần đây của các đội bóng. Như VnExpress, một trang báo nổi bật và nhiều người xem nhất ở Việt Nam, ở danh mục Thể Thao, hàng tuần trang báo này đều đưa ra các cuộc bầu chọn cho người đọc dự đoán tỷ số các trận đấu sắp diễn ra – hình 10, bên cạnh đó là các thống kê, phong độ của 2 đội bóng đối đầu và ngoài ra, sau khi dự đoán thì người dùng có thể tham khảo thống kê phần trăm dự đoán của mọi người dùng khác – hình 1. Người dùng cũng dựa nhiều vào thông tin đội hình ra sân của mỗi đội để dự đoán các trận đấu.
Nắm được những nhu cầu đó, nhóm đầu tiên muốn xây dựng một kho dữ liệu về bóng đá, từ đó giúp hỗ trợ cho hệ thống dành cho người dùng có thể theo dõi, tìm kiếm những thông tin về thống kê tập dữ liệu bóng đá, đưa ra những kết quả phân tích về dự đoán kết quả các trận đấu tương lai giúp cho người dùng có thể coi đó như là một công cụ tham khảo để đưa ra dự đoán.1: Trang báo VnExpress tạo cuộc bình chọn dự đoán tỷ số cho một trận đấu và đưa ra thống kê, phong độ.2: Trang báo VnExpress đưa ra thống kê phần trăm dự đoán sau khi người dùng bầu chọn. Trước hết ta cần thu thập dữ liệu, tích hợp dữ liệu vào một kho từ đó có thể phân tích, tìm hiểu, nghiên cứu các công nghệ sử dụng để xây dựng hệ thống thông tin, cùng với đó là áp dụng các thuật toán trong Machine Learning cũng như các thuật toán tối ưu hóa để xây dựng mô hình dự đoán. Đó chính là mục đích nghiên cứu chính của nhóm trong đề tài này. Đối tượng và phạm vi nghiên cứu Kho dữ liệu (Data Warehouse), một hệ thống lưu trữ dữ liệu từ nhiều nguồn với đặc trưng nổi bật như hiệu suất truy vấn cao, tích hợp nhanh chóng, bảo mật cao,… Dữ liệu về bóng đá là rất lớn, việc xây dựng và triển khai tập dữ liệu về bóng đá vào một kho dữ liệu là hoàn toàn hợp lý.
Machine Learning – Học máy là phương pháp học hỏi dựa trên tập dữ liệu được huấn luyện, sử dụng các thuật toán và đưa ra kết quả dựa trên quá trình học hỏi đó. Việc áp dụng Machine Learning vào tập dữ liệu về bóng đá nhằm đưa ra dự đoán 3 kết quả cho các trận đấu trong tương lai dựa vào các thông số của những trận đấu trong quá khứ. Tập dữ liệu về bóng đá được thu thập từ các nguồn phân tích nghiệp vụ bóng đá, nhóm sẽ đề cập chi tiết hơn ở phần 3 – Mô tả tập dữ liệu. Ý nghĩa khoa học và thực tiễn Về mặt khoa học, đề tài sử dụng các công nghệ phổ biến ngày nay, được tích hợp sẵn trên các nền tảng điện toán đám mây, với rất nhiều tính năng vượt trội hơn so với các công nghệ chạy ở môi trưởng cục bộ.
Các thuật toán Machine Learning được sử dụng cho xây dựng các model cũng rất ứng dụng cho nhiều lĩnh vực phân tích dữ liệu nhằm đưa ra xu hướng trong tương lai. Về mặt thực tiễn, triển khai các ứng dụng trên nền tảng điện toán đám mây – Cloud Computing đang ngày càng mở rộng và phát triển. Nắm bắt được xu hướng này nên các ứng dụng trong đề tài đều triển khai trên nền tảng điện toán đám mây. Các kỹ thuật Machine Learning, đặc biệt là Regression, rất khả thi và phù hợp cho tập dữ liệu về bóng đá do nó sở hữu rất nhiều thông số dạng numeric, kết quả trận đấu bị tác động nhiều hay ít vì các biến giải thích đó.
Phương pháp tiếp cận Đầu tiên ta cần thu thập dữ liệu cần thiết dùng cho cả việc thống kê và xây dựng mô hình dự đoán. Một trong những công nghệ dùng để thu thập dữ liệu, nói cách khác là cào – Crawler, phổ biến là Web Crawler, một kỹ thuật dùng để chỉ quá trình truy cập website một cách tự động và lấy dữ liệu thông qua một công cụ hay chương trình phần mềm. Trong đề tài sử dụng thư viện Scrapy và Selenium trong Python, sẽ được đề cập đến ở phần sau. Tiếp đến ta cần thiết kế kho dữ liệu, nhóm sử dụng kiến trúc Kimball, bao gồm 4 thành phần chính đi từ nguồn vận hành (Source Transaction), quá trình ETL (Extract, Transform, Loading), trình bày (Presentation Area) và cuối cùng là BI Application.
4 Dữ liệu, tất nhiên sau khi được xử lý sẽ được phân tích để đạt được kết quả mà ta mong muốn. Điều ta cần là dữ liệu cần được xử lý nhanh, phân tích được trực quan. Một phương pháp hữu dụng ngày nay là một công cụ xử lý dữ liệu phân tán, Apache Spark là rất phù hợp cho điều đó. Apache Spark cũng được ứng dụng cho quá trình trích xuất và chuyển đổi dữ liệu.
Và ta cũng cần một nơi để lưu trữ dữ liệu về lâu về dài, với khả năng lưu trữ bảo mật cao, phân tán cũng như phục hồi dữ liệu, các công nghệ kho lưu trữ trên đám mây đều đáp ứng được, với Google Cloud Storage cũng như vậy. Cuối cùng, ta đưa chúng đến cho người dùng thông qua công nghệ Front-end. Mô tả hệ thống thống kê và đưa ra gợi ý kết quả bóng đá của đề tài: Collection Layer – Tầng thu thập: thư viện Scrapy, Selenium cũng như R framework sẽ tiến hành thu thập dữ liệu về các trận đấu, thông số cầu thủ từ các trang web phân tích nghiệp vụ bóng đá, dữ liệu sau khi được thu thập sẽ được lưu trữ vào Google Cloud Storage. ETL – Quá trình trích xuất, chuyển đổi và tải dữ liệu: dữ liệu sau khi được thu thập sẽ được tiến hành xử lý, trong quá trình Transform, dữ liệu về các trận đấu và cầu thủ thô sẽ được đưa về các schema mô tả từng đối tượng trong tập dữ liệu.
Từ các lược đồ schema, ta tiến hành thiết kế theo mô hình kiến trúc Kimball với các Dimension và Fact Table. Cuối cùng, đưa mọi dữ liệu vào Google BigQuery, một ứng dụng kho dữ liệu của Google. BI Application – Thống kê dữ liệu: phân tích dữ liệu, sử dụng ngôn ngữ truy vấn dữ liệu SQL được tích hợp trên Google BigQuery để tạo các View được sử dụng cho mục đích thống kê đến cho người dùng. Model Predicting – Mô hình dự đoán: dữ liệu về các trận đấu bóng đá trong kho dữ liệu được sử dụng cho việc xây dựng mô hình dự đoán kết quả các trận đấu bóng đá trong tương lai, dựa vào những thống kê về thông số của các trận đấu trong quá khứ.
5 PHẦN 2 - NỘI DUNG CHƯƠNG 1 - CƠ SỞ LÝ THUYẾT 1. Học máy – Machine learning – Các thuật toán phân loại (Classification): Trong phần này, nhóm sẽ liệt kê và mô tả tóm tắt các thuật toán học máy được sử dụng trong đề tài với mục đích “Xây dựng mô hình dự đoán các trận đấu tương lai”, bao gồm các thuật toán nằm trong Supervised Machine Learning – Học máy có giám sát, và tất nhiên, chúng đều được hỗ trợ trong Spark Machine Learning Học có giám sát là thuật toán dự đoán đầu ra của một dữ liệu mới dựa trên các cặp input, outcome đã biết từ trước [1]. Về cơ bản, dữ liệu đầu vào là dữ liệu đã qua đào tạo học máy bằng cách sử dụng dữ liệu đã được gán nhãn hoặc cho ra kết quả rõ ràng. Học có giám sát được phân thành 2 loại thuật toán: - Phân loại (Classification): các nhãn (kết quả) của dữ liệu đầu vào được chia thành một số hữu hạn nhóm, đây là loại thuật toán mà nhóm sẽ sử dụng với 3 nhóm kết quả: Win, Lose, Draw.
- Hồi quy (Regression): đầu ra là một giá trị thực cụ thể, chẳng hạn như đơn vị tiền tệ hay khối lượng,… 1. Hồi quy logistic: Hồi quy logistic là một kỹ thuật phân tích dữ liệu sử dụng toán học để tìm ra mối quan hệ giữa hai yếu tố dữ liệu. Hồi quy logistic sử dụng nguyên lí của hàm sigmoid. [2] Hàm sigmoid là một hàm phi tuyến biến đổi đầu vào thành xác suất tương ứng với một trong hai lớp nhị phân.
Hàm sigmoid được diễn giải sau đây: 1 𝑆 (𝑧 ) = 1 + 𝑒 −𝑧 Hàm mất mát của bài toán hồi quy logistic là hàm mất mát Cross-Entropy. Hàm mất mát này được định nghĩa như sau: [2] 𝑛 1 𝐿(𝜔) = − ∑[𝑦𝑖 𝑙𝑜𝑔 𝑝𝑖 + (1 − 𝑦𝑖 )𝑙𝑜𝑔(1 − 𝑝𝑖 )] 𝑛 𝑖=1 Với: 6 ● 𝑛: Số lượng mẫu từ tập dữ liệu dùng để huấn luyện mô hình dự đoán. ● 𝑦𝑖 : Giá trị thực tế từ mô hình của đầu ra thứ i. ● 𝑝𝑖 : Với đầu vào thứ i, 𝑝𝑖 là xác suất dự đoán đầu vào này thuộc lớp 1.
Trong đề tài này nhóm quyết định sử dụng thuật toán Hồi quy logistic để dự đoán kết quả của trận đấu vì có thể dễ dàng triển khai và vì đầu ra của thuật toán là biến phân loại. Cây quyết định - Decision Tree: Cây quyết định là phương pháp phân lớp các đối tượng, là một cây phân cấp có cấu trúc và có các luật khác nhau.