Đồ Án Tốt Nghiệp: Xây Dựng Kho Dữ Liệu Gợi Ý Kết Quả Trận Đấu Bóng Đá

Đồ án nghiên cứu tốt nghiệp kỹ thuật dữ liệu xây dựng kho dữ liệu phục vụ hệ thống gợi ý kết quả các trận đấu bóng đá, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho

Chuyên ngành

Kỹ thuật dữ liệu

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2024

109
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CAM ĐOAN

1. PHẦN 1 - MỞ ĐẦU

1.1. Mục đích nghiên cứu

1.2. Đối tượng và phạm vi nghiên cứu

1.3. Ý nghĩa khoa học và thực tiễn

1.4. Phương pháp tiếp cận

2. PHẦN 2 - NỘI DUNG

2. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

2.1. Học máy – Machine learning – Các thuật toán phân loại (Classification)

2.2. Các thuật toán chuẩn hoá – Regularization Algorithms

2.3. Hệ thống xếp hạng ELO

3. CHƯƠNG 2: CÁC CÔNG NGHỆ SỬ DỤNG

3.1. Ngôn ngữ lập trình, công cụ hỗ trợ

3.2. Các hệ thống, framework, platform

3.3. Môi trường thực nghiệm

4. CHƯƠNG 3: THU THẬP DỮ LIỆU

4.1. Nguồn thu thập

4.2. Thu thập dữ liệu

4.3. Sử dụng Compute Engine, Scrapyd và Scrapydweb, R để hỗ trợ thu thập dữ liệu

5. CHƯƠNG 4: KHO DỮ LIỆU CHO PHÂN TÍCH TRẬN ĐẤU

5.1. Thiết kế kho dữ liệu

5.2. Extract và Transform với Google Dataproc và Google Cloud Storage

5.3. Load dữ liệu vào Google BigQuery từ Google Cloud Storage staging

5.4. BI Application với Looker và phân tích các thông tin trận đấu

5.5. Xây dựng trang theo dõi các trận đấu với Angular JS

6. CHƯƠNG 5: XÂY DỰNG MÔ HÌNH GỢI Ý KẾT QUẢ CÁC TRẬN ĐẤU

6.1. Phân tích tập dữ liệu

6.2. Sử dụng các thuật toán phân loại trong Spark Machine Learning

6.3. Hệ thống xếp hạng ELO

7. CHƯƠNG 6: ĐÁNH GIÁ MÔ HÌNH BẰNG THỰC NGHIỆM

7.1. Độ chính xác - Accuracy

7.2. Kiểm chứng chéo – Cross Validation

7.3. Các trường hợp thực nghiệm. Kết quả thực nghiệm

3. PHẦN 3 - KẾT LUẬN

3.1. Hạn chế, khó khăn

3.2. Hướng phát triển

PHẦN 4 - TÀI LIỆU THAM KHẢO, PHỤ LỤC

Tóm tắt

I. Kho dữ liệu bóng đá

Kho dữ liệu bóng đá là một hệ thống lưu trữ dữ liệu từ nhiều nguồn, đặc biệt là các thông tin liên quan đến bóng đá như giải đấu, trận đấu, cầu thủ, và thống kê. Kho dữ liệu này được thiết kế để đảm bảo hiệu suất truy vấn cao, tích hợp nhanh chóng, và bảo mật tốt. Việc xây dựng kho dữ liệu bóng đá giúp hỗ trợ phân tích và dự đoán kết quả các trận đấu, cung cấp thông tin chính xác và kịp thời cho người dùng.

1.1. Thu thập dữ liệu bóng đá

Quá trình thu thập dữ liệu bóng đá bao gồm việc sử dụng các công cụ như Python Scrapy để cào dữ liệu từ các nguồn như FBrefSofifa. Dữ liệu được thu thập bao gồm thông tin về các trận đấu, cầu thủ, và giải đấu. Các dữ liệu này sau đó được tích hợp vào kho dữ liệu để phục vụ cho việc phân tích và dự đoán.

1.2. Thiết kế kho dữ liệu

Kho dữ liệu được thiết kế với các DimensionFact Table để lưu trữ thông tin một cách có cấu trúc. Các bảng dữ liệu được xây dựng dựa trên các quy trình nghiệp vụ liên quan đến bóng đá, giúp dễ dàng truy vấn và phân tích dữ liệu.

II. Gợi ý kết quả bóng đá

Hệ thống gợi ý kết quả bóng đá sử dụng các thuật toán Machine Learning để dự đoán kết quả các trận đấu dựa trên dữ liệu lịch sử. Các thuật toán như Logistic Regression, Decision Tree, và Random Forest được áp dụng để xây dựng mô hình dự đoán. Hệ thống này cung cấp các gợi ý kết quả chính xác, giúp người dùng có cái nhìn tổng quan về trận đấu sắp diễn ra.

2.1. Phân tích dữ liệu trận đấu

Dữ liệu trận đấu được phân tích để xác định các yếu tố ảnh hưởng đến kết quả, như phong độ đội bóng, thống kê cầu thủ, và điều kiện thi đấu. Các thông số này được sử dụng làm đầu vào cho mô hình dự đoán.

2.2. Xây dựng mô hình dự đoán

Mô hình dự đoán được xây dựng dựa trên các thuật toán Machine Learning. Quá trình này bao gồm việc huấn luyện mô hình trên tập dữ liệu lịch sử và đánh giá độ chính xác thông qua các phương pháp như Cross Validation.

III. Dự đoán trận đấu bóng đá

Dự đoán trận đấu bóng đá là một ứng dụng quan trọng của kho dữ liệu và hệ thống gợi ý kết quả. Hệ thống sử dụng các mô hình dự đoán để đưa ra kết quả chính xác cho các trận đấu sắp diễn ra. Các yếu tố như hệ thống xếp hạng ELOthống kê bóng đá được tích hợp để nâng cao độ chính xác của dự đoán.

3.1. Hệ thống xếp hạng ELO

Hệ thống xếp hạng ELO được sử dụng để đánh giá sức mạnh của các đội bóng dựa trên kết quả các trận đấu trước đó. Chỉ số ELO được cập nhật liên tục và sử dụng làm đầu vào cho mô hình dự đoán.

3.2. Đánh giá kết quả dự đoán

Kết quả dự đoán được đánh giá thông qua các chỉ số như AccuracyCross Validation. Các thử nghiệm thực tế được thực hiện để kiểm chứng độ chính xác của mô hình.

IV. Thống kê bóng đá

Thống kê bóng đá là một phần quan trọng của kho dữ liệu, cung cấp các thông tin chi tiết về các trận đấu, cầu thủ, và giải đấu. Các thống kê này được sử dụng để phân tích và dự đoán kết quả các trận đấu, đồng thời cung cấp thông tin hữu ích cho người dùng.

4.1. Phân tích thông số trận đấu

Các thông số trận đấu như tỷ lệ kiểm soát bóng, số lần sút bóng, và số thẻ phạt được phân tích để đánh giá phong độ của các đội bóng. Các thông số này được sử dụng làm đầu vào cho mô hình dự đoán.

4.2. Trực quan hóa dữ liệu

Dữ liệu thống kê được trực quan hóa thông qua các biểu đồ và báo cáo, giúp người dùng dễ dàng theo dõi và phân tích thông tin. Các công cụ như Google Looker Studio được sử dụng để tạo các báo cáo trực quan.

V. Phân tích trận đấu

Phân tích trận đấu là quá trình sử dụng dữ liệu và các thuật toán để đánh giá và dự đoán kết quả các trận đấu. Quá trình này bao gồm việc thu thập dữ liệu, phân tích thông số, và xây dựng mô hình dự đoán. Kết quả phân tích được sử dụng để cung cấp thông tin chính xác và kịp thời cho người dùng.

5.1. Phân tích phong độ đội bóng

Phong độ của các đội bóng được phân tích dựa trên kết quả các trận đấu gần đây. Các yếu tố như số bàn thắng, số trận thắng, và thống kê cầu thủ được sử dụng để đánh giá phong độ.

5.2. Dự đoán tỷ số bóng đá

Dự đoán tỷ số bóng đá được thực hiện dựa trên các mô hình dự đoán và thống kê bóng đá. Kết quả dự đoán được sử dụng để cung cấp thông tin tham khảo cho người dùng.

21/02/2025

Trích đoạn nội dung tài liệu

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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu có tiêu đề Kho Dữ Liệu Gợi Ý Kết Quả Trận Đấu Bóng Đá cung cấp một cái nhìn tổng quan về cách thức thu thập và phân tích dữ liệu liên quan đến kết quả các trận đấu bóng đá. Nội dung chính của tài liệu bao gồm các phương pháp phân tích dữ liệu, cách sử dụng các thuật toán để dự đoán kết quả trận đấu, và những lợi ích mà việc áp dụng dữ liệu này mang lại cho người hâm mộ cũng như các nhà phân tích thể thao. Đặc biệt, tài liệu nhấn mạnh tầm quan trọng của việc sử dụng dữ liệu để đưa ra những quyết định chính xác hơn trong việc dự đoán kết quả, từ đó giúp người đọc có cái nhìn sâu sắc hơn về môn thể thao này.

Nếu bạn muốn mở rộng kiến thức của mình về các phương pháp phân tích dữ liệu trong thể thao, hãy tham khảo tài liệu Luận văn thạc sĩ khoa học máy tính so sánh hai phương pháp thu gọn tập huấn luyện rhc và naive ranking trong phân lớp dữ liệu chuỗi thời gian, nơi bạn có thể tìm hiểu thêm về các phương pháp phân tích dữ liệu. Ngoài ra, tài liệu Luận văn thạc sĩ hệ thống thông tin nghiên cứu về các phương pháp học biểu diễn dữ liệu cũng sẽ cung cấp cho bạn những kiến thức bổ ích về cách thức biểu diễn và phân tích dữ liệu trong các hệ thống thông tin. Cuối cùng, bạn có thể tham khảo Luận văn thạc sĩ khoa học máy tính cải tiến giải thuật kmeans cho bài toán gom cụm dữ liệu chuỗi thời gian để hiểu rõ hơn về các thuật toán gom cụm dữ liệu, một phần quan trọng trong việc phân tích dữ liệu thể thao.