Skip to content

Phân tích dữ liệu Ngoại hạng Anh bằng Python: crawl thống kê cầu thủ, build API tra cứu, đánh giá phong độ đội bóng và dự đoán giá trị cầu thủ bằng machine learning.

Notifications You must be signed in to change notification settings

hoangnv25/BTL-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

BTL Python - Premier League Data Pipeline

Dự án thu thập, phục vụ API và phân tích dữ liệu cầu thủ/CLB Ngoại hạng Anh. Mọi đường dẫn xuất hiện trong code đang trỏ tới ổ E:\Python\BTL\RESULTS\...; hãy chỉnh lại nếu chạy ở máy khác.

Cấu trúc nhanh

  • Code/TASK1/CODE/Task_1.py: Crawl chỉ số từ fbref.com bằng Selenium, chuẩn hóa tên cầu thủ, lưu toàn bộ dữ liệu vào SQLite cau_thu.db và bảng player_transfers.
  • Code/TASK2/CODE/app.py: Flask API đọc SQLite, cung cấp /api/health, /api/columns, /api/player?name=, /api/club?club=.
  • Code/TASK2/CODE/lookup.py: CLI gọi API để tra cứu và xuất CSV (lưu dưới E:\Python\BTL\RESULTS\TASK2\OUTPUT\).
  • Code/TASK3/CODE/Task_3_1.py: Phân tích thống kê theo đội, tính form score (z-score), xuất CSV và biểu đồ.
  • Code/TASK3/CODE/Task_3_2_pipeline_optimized_rdfr.py: Ghép bảng transfers + players, huấn luyện RandomForest (GridSearch), lưu model và feature importance.
  • Code/TASK3/CODE/Task_3_2_predict_players.py: Nạp model đã huấn luyện, dự đoán giá trị cầu thủ, xuất CSV và các biểu đồ đánh giá.
  • Code/TASK4/CODE/Task_4_3_final.py & Task_4_12_final.py: Phân cụm cầu thủ (KMeans, PCA), loại outlier và xuất thống kê cụm.

Yêu cầu môi trường

  • Python 3, Chrome + ChromeDriver (dùng webdriver_manager).
  • Thư viện chính: selenium, requests, beautifulsoup4, lxml, pandas, numpy, flask, flask-cors, scikit-learn, xgboost, matplotlib, seaborn, joblib.
  • Cần quyền ghi vào các thư mục output đã hard-code.

Cách chạy nhanh

  1. Crawl & tạo DB
    python Code/TASK1/CODE/Task_1.py
    Sinh SQLite tại .../TASK1/OUTPUT/cau_thu.db và bảng player_transfers.

  2. Khởi động API (cần DB có sẵn)
    set DB_PATH=E:\Python\BTL\RESULTS\TASK1\OUTPUT\cau_thu.db
    python Code/TASK2/CODE/app.py

  3. Tra cứu nhanh & xuất CSV
    set API_BASE=http://127.0.0.1:5000 (tuỳ chọn)
    python Code/TASK2/CODE/lookup.py --name "Erling Haaland"
    hoặc --club "Arsenal".

  4. Phân tích/huấn luyện

  • python Code/TASK3/CODE/Task_3_1.py → thống kê đội, form score, biểu đồ.
  • python Code/TASK3/CODE/Task_3_2_pipeline_optimized_rdfr.py → train & lưu model.
  • python Code/TASK3/CODE/Task_3_2_predict_players.py → dự đoán và vẽ biểu đồ.
  1. Phân cụm cầu thủ
    Chạy hai script trong Code/TASK4/CODE để tạo báo cáo và CSV cụm.

Tác giả

  • Nguyễn Văn Hoàng
  • Vũ Anh Tuấn
  • Phạm Hoàng Việt

About

Phân tích dữ liệu Ngoại hạng Anh bằng Python: crawl thống kê cầu thủ, build API tra cứu, đánh giá phong độ đội bóng và dự đoán giá trị cầu thủ bằng machine learning.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages