1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập lớn nhập môn học máy và khai phá dữ liệu đề tài dự đoán giá cầu thủ bóng đá

21 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

MỤC LỤC MÔ TẢ ĐỀ TÀI CHI TIẾT PHƯƠNG PHÁP HỌC MÁY ĐƯỢC SỬ DỤNGThuật toán Random ForestCác bước hoạt động của mô hình Random Forest phân lớp dự đoán giá cầu thủ bóng đá:Mô hình mạng Neuro

Trang 1

ÐẠI HỌNỘI

BÁO CÁO BÀI TẬP LỚN

NHẬP MÔN HỌC MÁY VÀ KHAI PHÁ DỮ LIỆUĐề tài: Dự đoán giá cầu thủ bóng đá

Nhóm sinh viên thực hiện: Nguyễn Hoàng Hải –Nguyễn Cao Bảo Hiếu –Nguyễn Đức Anh –Nguyễn Gia Khánh –

Hà nội, tháng

Trang 2

MỤC LỤC

MÔ TẢ ĐỀ TÀI

CHI TIẾT PHƯƠNG PHÁP HỌC MÁY ĐƯỢC SỬ DỤNG

Thuật toán Random Forest

Các bước hoạt động của mô hình Random Forest phân lớp dự đoán giá cầu thủ bóng đá:

Mô hình mạng Neuron nhân tạo

Định nghĩa mạng nơron nhân tạoCấu trúc hoạt động của 1 nơMô hình mạng nơron của project

TIỀN XỬ LÝ DỮ LIỆU

ĐÁNH GIÁ HIỆU NĂNG TỪNG MÔ HÌNH

Biểu đồ phân phối lỗi dự đoán và biểu đồ phân tán lỗi dự đoán So sánh tập dữ liệu test và tập giá trị dự đoán

mạng Neuron nhân tạo

Trang 3

MÔ TẢ ĐỀ TÀI

Hiện nay, machine learning là một lĩnh vực của trí tuệ nhân tạo được xem là một trong những xu hướng công nghệ đang phát triển rất nhanh trong thời gian gần đây Nó liên quan đến việc sử dụng các thuật toán và mô hình để cho máy tính "học" từ dữ liệu và cải thiện hiệu suất của chúng theo thời gian Với sự phát triển của internet, công nghệ điện toán đám mây và các thiết bị thông minh, machine learning đã trở thành một công cụ quan trọng cho nhiều lĩnh vực, từ kinh doanh đến y tế và khoa học Có thể trong tương lai gần, chúng ta có thể chứng kiến những mô hình ngày càng tiên tiến, phức tạp hơn, có thể giúp đỡ con người nhiều khía cạnh trong cuộc sống.

Đề tài báo cáo của chúng em sẽ liên quan đến bóng đá, một môn thể thao nổi tiếng, là một món ăn tinh thần đặc sắc không chỉ của người Việt mà còn của cả thế giới Chúng em muốn áp dụng kiến thức và công sức của mình để giúp môn thể thao vua phát triển hơn Ở đây chúng em sẽ dựa trên chỉ số từng hạng mục của cầu thủ, từ đó sẽ ước lượng giá trị chính xác của cầu thủ trên thị trường chuyển nhượng Nó có thể

úp các tuyển trạch viên định giá cũng như đưa ra quyết định chính xác cho từng vụ chuyển nhượng.

CHI TIẾT PHƯƠNG PHÁP HỌC MÁY ĐƯỢC SỬ DỤNG

Trang 4

Random Forest là một quần thể của nhiều cây quyết định giúp giảm thiểu vấn đề đào tạo lại và cải thiện độ chính xác so với cây đơn Dự báo thu được bằng cách tổng hợp phản hồi của nhiều cây Đào tạo cây xảy ra độc lập với nhau (trên các tập hợp con khác nhau) không chỉ giải quyết vấn đề xây dựng những cây giống hệt nhau trên cùng một tập dữ liệu mà còn rất thuận tiện cho việc sử dụng hệ thống máy tính phân tán Random Forest là mở rộng của Bagging và Features ngẫu nhiên để tạo ra một rừng cây quyết định không tương quan với nhau Thuậ rest, trong trường hợp tập dữ liệu bao gồm 13701 cầu thủ, được minh họa như sau:

𝐷 = {𝐷𝑖} tập dữ liệu huấn luyện, i chạy từ 1 đến 13701, N: nút.Output: rừng ngẫu nhiên.

Lấy ngẫu nhiên mẫu dữ liệu 𝐷𝑖với lặp lại từ tập dữ liệu D;Tạo nút 𝑁𝑖, chứa trong 𝐷𝑖

Khởi tạo cây BuildTree (𝑁𝑖

if N chứa các trường hợp của chỉ một lớp then return elseChọn ngẫu nhiên a% của đặc trưng có thể phân tách trên NChọn đặc trưng F với lượng thông tin thu được cao nhất để táchTạo f nút con của N,𝑁1,…𝑁𝑓, trong đó F có f giá trị có thể nhận 𝐹1,…,𝐹𝑓

Đặt nội dung 𝑁𝑖đến 𝐷𝑖, ở đó 𝑁𝑖 là tất cả các trường hợp trong N phù hợp với 𝐹𝑖

Gọi BuildTree (𝑁𝑖

Trang 5

Bootstrap là một phương pháp thống kê được giới thiệu bởi Bradley Efron vào năm 1979 Phương pháp Bootstrap dùng để ước lượng lỗi chuẩn (standard errors), độ lệch (bias) và tính toán khoảng tin cậy (confidence interval) cho các tham số.

Một mẫu bootstrap là một mẫu ngẫu nhiên được tạo ra với sự thay thế Các bướctạo mẫu bootstrap:

Chọn ngẫu nhiên một quan sát từ tập dữ liệu ban đầu.Biểu diễn nó ra.

Đặt nó trở lại (tức là bất kì quan sát nào cũng có thể đã chọn nhiều hơn 1 lần).Lặp lại bước 1 3 N lần; N là số quan sát trong mẫu ban đầu Kết quả cho một mẫu bootstrap với N quan sát.

Năm 1996, Leo Breiman đã giới thiệu thuật toán Bagging với ba bước cơ bản:Bootstrapping: bagging sử dụng kỹ thuật lấy mẫu bootstrapping để tạo ra các mẫu đa dạng, phương pháp lấy mẫu này tạo ra các tập con khác nhau của tập dữ liệu huấn luyện bằng cách chọn ngẫu nhiên các điểm dữ liệu và có lặp lại.

Parallel training: các mẫu bootstrap sau khi tạo ra được đào tạo độc lập và song song với nhau.

đối với bài toán phân loại , lớp có đa số phiếu cao nhất được chấp nhận hay biểu quyết theo đa số.

Trang 6

Học theo phương pháp Ensemble learning (học cùng nhau) là tổng hợp kết quả dự đoán của nhiều mô hình thành mô hình cuối cùng giúp nâng cao tính tổng quát của mô hình máy học Mô hình học cùng nhau hiệu quả nhờ sự đa dạng và tính ngẫu nhiên Mỗi mô hình trong mô hình học cùng nhau có khả năng dự đoán khác nhau nên việc kết hợp lại một cách hợp lý sẽ hiệu quả hơn một mô hình độc lập Các mô hình trong mhọc cùng nhau càng độc lập thì độ chính xác của mô hình tổng càng tốt

ủ bóng đá:

Chọn ngẫu nhiên từ D, một dữ liệu (sample) từ tập dữ liệu huấn luyện với kĩ thuật và tiếp tục tạo mẫu dữ liệu sample để tạo ra đủ dữ liệu tương ứng với 13701 cầu thủ Như vậy, ta có thể tóm tắt theo 4 bước sau đây:

Bước 1: Chọn các mẫu ngẫu nhiên từ tập dữ liệ

Bước 2: Thiết lập cây quyết định cho từng mẫu và nhận kết quả dự đoán từ mỗi cây quyết định.

Bước 3: Bỏ phiếu theo số đông cho mỗi kết quả dự đoán.Bước 4: Chọn kết quả dự đoán nhiều nhất là dự đoán cuối cùng.

Mô hình Random forest dự báo bằng ngôn ngữ Python

# 1 Thư viện

import numpy as np import pandas aspd

from tensorflow.keras import layers from tensorflow.keras.models import Sequential from tensorflow.keras.regularizers import l2from tensorflow.keras.optimizers import Adam from tensorflow.keras.metrics import MeanSquaredError, RootMeanSquaredError, MeanAbsoluteError, MeanAbsolutePercentageError

from tensorflow.keras.callbacks import EarlyStopping

from sklearn.preprocessing import StandardScaler from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error, mean_absolute_error,

Trang 7

import matplotlib.pyplot plt asfrom matplotlib.gridspec import GridSpec

# 2 load dữ liệu

file_id = '1lTE1tgaG6U7LPQVP7KP6zMsBlXKhan7z' url_file = f'https://drive.google.com/uc?id={file_id}' player_data = pd.read_csv(url_file)

Khởi tạo chỉ số các cầu thủ:

player_stat = player_data.iloc[:, 2:].astype(float)

Khởi tạo mô hình Random

rf = RandomForestRegressor(n_estimators=200) rf.fit(x_train_scaled, y_train_scaled)

Khó khăn gặp phải với Random Forest:

Dữ liệu thiếu: Random Forest Regression có thể không hoạt động tốt khi dữ liệu

đầu vào thiếu hoặc có các giá trị bị khuyết Điều này có thể dẫn đến việc dự đoán không chính xác vì mô hình không có đủ thông tin để đưa ra dự đoán chính xác Nhóm em đã bố sung các dữ liệu thiếu để mô hình hoạt động.

Điều chỉnh tham số: Random Forest Regression có nhiều tham số cần được đị

cấu hình để đạt được kết quả tốt nhất Việc điều chỉnh các tham số này có thể làm cho quá trình huấn luyện trở nên phức tạp, vậy nên nhóm đã dành nhiều thời gian để sửa, bổ sung để mô hình tối ưu nhất có thể.

Định nghĩa ạng nơron nhân tạ

Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron, neural network, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học Nó được tạo lên từ một số lượng lớn các phần tử (gọi là phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm

Trang 8

việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.

Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, n loại dữ liệu, …) thông qua một quá trình học từ tập các mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron

• Các tín hiệu đầu vào (input signals) của nơ Mỗi tín hiệu đầu gắn với một trọng số wi

• Trọng số điều chỉnh (bias) w (với x

• Đầu vào tổng thể (Net input) là một hàm tích hợp của các tín hiệu đầu vào –• Hàm tác động/truyền (Activation/transfer function) tính giá trị đầu ra của nơ

• Giá trị đầu ra (Output) của nơron: Out=f(Net(w,x))

Trang 10

Hàm tác độ 𝑂𝑢𝑡 (𝑛𝑒𝑡) = 𝑚𝑎𝑥(0, 𝑛𝑒𝑡)

• Được sử dụng nhiều nhất hiện nay• Giá trị đầu ra luôn không âm • Ưu điểm

o Liên tục

o Không có đạo hàm tại điểm 0 duy nhất o Dễ tính toán

Trang 11

Một giá trị nhỏ có thể làm cho quá trình học kéo dài rất lâu

Thường được chọn theo thực nghiệm (experimentally) đối với mỗi bài toán Ở bài toán này, nhóm đã tham khảo và chạy thử với một số giá trị và lựa chọn giá trị 3e –

Thư viện và các hàm đượử ụ

Trang 12

Để tránh overfitting, chúng ta sử dụng hàm EarlyStopping để dừng quá trình huấn luyện mô hình khi giá trị hàm mất mát trên tập validation không cải thiện trong 5 epoch liên tiếp.

Trang 13

Đoạn code trên dùng để train mô hình neural network với dữ liệu đầu vào là x_train_scaled và dữ liệu đầu ra là y_train_scaled Mô hình được train với 200 epochs và batch size là 32 Validation split được set là 0.25 để chia dữ liệu thành 2 phần, một phần để train và một phần để validation Callbacks được sử dụng để early stop training nếu không có sự cải thiện trong quá trình training Nếu không có sự cải thiện trong quá trình training thì mô hình sẽ dừng lại sớm hơn để tránh overfitting.

Ưu điểm:

• Bản chất (về cấu trúc) hỗ trợ tính toán song song ở mức cao

• Đạt độ chính xác cao trong nhiều bài toán (ảnh, video, âm thanh, văn bản)• Rất linh động trong kiến trúc mạng

• Rất khó (không thể) đưa ra giải thích cho người dùng

• Lý thuyết nền tảng còn ít, để giúp giải thích được những thành công trong thực tế

np.log(player_stat['International Reputation'])

player_stat['Release Clause'] = np.log(player_stat['Release Clause'])

player_stat['Likes'] = np.log1p(player_stat['Likes']) player_stat['Dislikes'] = np.log1p(player_stat['Dislikes'])

Trang 14

Chia tập train và tập test:

player_value = player_stat['Value']

player_features = player_stat.drop(['Value'], axis= ) 1

x_train, x_test, y_train, y_test = train_test_split(player_features, player_value, test_size = 0.3, shuffle = True)

Quy đổi dữ liệu về chuẩn sử dụng hàm StandardScaler:

scaler_x = StandardScaler() scaler_x.fit(x_train)

x_train_scaled = scaler_x.transform(x_train) x_test_scaled = scaler_x.transform(x_test) y_train_scaled = zscore(y_train)

Chuyển đổi ngược lại số liệu ban đầu:

defreverse_standardization(y_scaled): mean = y_train.mean()

std = y_train.std() y_log = y_scaled * std + mean y_org = np.exp(y_log) return y_org

ĐÁNH GIÁ HIỆU NĂNG TỪNG MÔ HÌNH

Mean Absolute Error (MAE) đo độ lớn trung bình của các lỗi trong một tập hợp các dự đoán mà không cần xem xét hướng của chúng Đó là giá trị trung bình trên mẫu thử nghiệm về sự khác biệt tuyệt đối giữa dự đoán và quan sát thực tế, trong đó tất cả các khác biệt riêng lẻ có trọng số bằng nhau.

trong đó n là số điểm dữ liệu, xᵢ là giá trị thực và yᵢ là giá trị dự đoán.

Trang 15

Có thể diễn đạt MAE là tổng hòa của hai thành phần: Bất đồng về số lượng và Bất đồng về phân bổ.

MAE được biết đến là mạnh mẽ hơn đối với các yếu tố ngoại lai so với MSE Lý do chính là trong MSE bằng cách bình phương các sai số, các giá trị ngoại lai (thường có sai số cao hơn các mẫu khác) được chú ý nhiều hơn và chiếm ưu thế trong sai số cuối cùng và tác động đến các tham số của mô hình.

Mean Squared Error (MSE) đại diện cho trung bình của bình phương sai khác giữa các giá trị dự đoán và giá trị gốc trong tập dữ liệu Nó đo lường phương sai của các giá trị dư thừa

Root Mean Square Error (RMSE) hoặc Root Mean Square Deviation (RMSD) là căn bậc hai của mức trung bình của các sai số bình phương RMSE là độ lệch chuẩn của các phần dư (sai số dự đoán).

Trang 16

) là một phép đo lường sai số phổ biến được sử dụng trong dự báo và dự đoán Nó được tính bằng cách lấy trung bình tỷ lệ phần trăm của giá trị tuyệt đối của sai số (khác biệt giữa giá trị thực tế và giá trị dự đoán) trên giá trị thực tế.

SST là tổng bình phương phương sai

𝑆𝑆𝑇 = ∑(𝑦𝑖 − 𝑦 )2𝑛

Trang 17

Biểu đồ phân phối lỗi dự đoán và biểu đồ phân tán lỗi dự đoán- Với tập dữ liệu test chưa chuẩn hóa

- Với tập dữ liệu test đã được chuẩn hóa

Trang 18

So sánh tập dữ liệu test và tập giá trị dự đoán - Kiểm thử trên tập dữ liệu test chưa chuẩn hóa

- Kiểm thử trên tập dữ liệu test đã được chuẩn

Trang 19

mạng Neuron nhân tạo

Tập training, validation với dữ liệu chưa chuẩn hóa

Trang 20

Tập training, validation với dữ liệu đã được chuẩn hóa

Kiểm thử

Kiểm thử trên tập dữ liệu test chưa chuẩn hóa

Kiểm thử trên tập dữ liệu test đã được chuẩn hóa

Trang 21

Kết luận

Độ tin cậy của mô hình Random Forest Regressor trên cả tập dữ liệu chưa được chuẩn hoá và đã được chuẩn hoá khá tương đồng Tuy nhiên trường hợp tương tự không xảy ra với mô hình neural network, ta thấy độ tin cậy của tập dữ liệu được chuẩn hoá có sự khác biệt rõ ràng so với tập dữ liệu chưa được chuẩn hoá.

Như vậy đối với những tập dữ liệu chưa được xử lý cẩn thận, mô hình Random Forest Regressor sẽ có màn thể hiện tốt hơn Còn đối với những tập dữ liệu đã được chuẩn hoá phù hợp, mô hình Neural Network sẽ là một lựa chọn tốt hơn so với các mô

ĐỀ CỬ PHÁT TRIỂN TRONG TƯƠNG LAI

Sử dụng các mô hình khác nhau để tìm ra được mô hình có thể xử lý dữ liệu tốt nhấtCó thể thử với tập dữ liệu có nhiều lỗi, đa dạng hơn để xem độ chính xác của mô hình

HƯỚNG DẪN CÀI ĐẶT CHƯƠNG TRÌNH

File colab của chươn-

Tập dữ liệu gốc của chương trình:-

Tập dữ liệu đã qua xử lý:-

TÀI LIỆU THAM KHẢO

Sarah Guido (2016), ‘Introduction to Machine Learning with Python’, O’Reilly Media, USA.

Asadi and Sakir Tasdemir, ‘Predict the Value of Football Players Using FIFA Video Game Data and Machine Learning Techniques’, IEEE Access 2022

Cotta, ‘Using fifa soccer video game data for soccer analytics’ in Proc –

Wes McKinney (2017), ‘Python for Data Analysis’, O’Reilly Media, USA.Hiểu sâu về các thuật toán tối ưu ( GD,SGD,Adam, ), Trần Trung Thực, [6] Đánh giá model trong Machine Learing, Nguyen Toan Thinh, Viblo Asia.

[7] Slide bài giảng Nhập môn Học máy và Khai phá dữ liệu, Thân Quang Khoát.

Ngày đăng: 13/06/2024, 10:13

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w