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Đề 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 2MỤ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ạo
Cấ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
Kiểm thử
Kết luận
ĐỀ CỬ PHÁT TRIỂN TRONG TƯƠNG LAI
HƯỚNG DẪN CÀI ĐẶT CHƯƠNG TRÌNH
TÀI LIỆU THAM KHẢO
Trang 3MÔ 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 4Random 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 else
Chọn ngẫu nhiên a% của đặc trưng có thể phân tách trên N
Chọn đặc trưng F với lượng thông tin thu được cao nhất để tách
Tạ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 5Bootstrap 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 6Họ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 as pd
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
from tensorflow.keras.regularizers import l2
from 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 7Khở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 8việ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 9ạng nơron
Kiến trúc: 1 tầng đầu vào, 2 tầng ẩn, 1 tầng đầu ra
Mạng lan truyền tiến nhiều tầng kết nối đầy đủ
2 tầng ẩn sử dụng hàm kích hoạt , lớp đầu ra gồm nơron với hàm kích hoạt
Ở mô hình này chúng ta sử dụng phương pháp học tham số (parameter learnin
Trang 10Hà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 11Thườ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.
• Lớp thứ ba là 1 lớp fully connected gồm 64 nodes, hàm kích hoạt là
• Lớp cuối cùng là lớp output với 1 nơron hàm kích hoạt là linear
Mô hình được compile với hàm loss là mean squared error (mse), optimizer là Adam với learning rate là 3e ics được sử dụng để đánh giá mô hình bao gồm MeanSquaredError, RootMeanSquaredError, MeanAbsoluteError và
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ế
Trang 14Chia 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:
Chuyển đổi ngược lại số liệu ban đầu:
def reverse_standardization (y_scaled):
ĐÁ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 15Có 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ế.
ệ ố xác đị
Hệ số xác định (R²) đo lường mức độ hiệu quả của một mô hình thống kê dự đoán kết quả Kết quả được đại diện bởi biến phụ thuộc của mô hình
Giá trị thấp nhất có thể có của R² là 0 và giá trị cao nhất có thể là 1 Một mô hình đưa
ra dự đoán càng tốt thì R² của nó càng gần với 1
𝑆𝑆𝑇Trong đó:
SST là tổng bình phương phương sai
Trang 17Biể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 18So 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 19mạng Neuron nhân tạo
Tập training, validation với dữ liệu chưa chuẩn hóa
Trang 20Tậ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 21Kế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ất
Có 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À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