Spaces:
Running
A newer version of the Gradio SDK is available:
5.42.0
title: UFC Fight Predictor
emoji: 🥊
colorFrom: red
colorTo: blue
sdk: gradio
sdk_version: 4.28.3
app_file: app.py
pinned: false
UFC Scraper & ML
Setup
Clone the repo (or download it), then open a terminal in the root folder
Install the required Python packages using pip:
pip install -r requirements.txt
Usage
1. Data Scraping
Initial Setup (First Time):
python -m src.main --pipeline scrape --scrape-mode full
Scrapes all historical fight data from ufcstats.com.
Update Data (Regular Use):
python -m src.main --pipeline scrape --scrape-mode update
Adds only the latest events to existing data.
2. Fight Prediction
Use Existing Models (Fast):
python -m src.main --pipeline predict
Loads saved models if available and retrains if new data available.
Force Retrain Models:
python -m src.main --pipeline predict --force-retrain
Always retrains all models from scratch with latest data.
3. Complete Pipeline
2.1 Complete Pipeline
python -m src.main --pipeline all --scrape-mode update
Runs scraping (update mode), analysis, and prediction in sequence.
4. Model Updates Only
python -m src.main --pipeline update
Checks for new data and retrains models only if needed (perfect for automation).
Model Performance
The system tests on the latest UFC event for realistic accuracy scores (typically 50-70% for fight prediction).
Output
- Data:
output/ufc_fights.csv
,output/ufc_fighters.csv
- Models:
output/models/*.joblib
- Results:
output/model_results.json
License
This project is licensed under the GNU Affero General Public License v3 (AGPL-3.0) - see the LICENSE file for details.
What this means:
- Free for personal, research, and educational use
- Can be modified and redistributed (with source code)
- Network Copyleft: If you run this as a web service or API, you must make your source code publicly available
- Strong Copyleft: Any modifications or derivative works must also be AGPL-3.0 licensed
- Commercial use is allowed but requires compliance with copyleft terms
This license specifically prevents companies from using this code in proprietary betting platforms or closed-source prediction services without contributing back to the open source community.