ufc-predictor / README.md
AlvaroMros's picture
Add AGPL-3.0 license and update documentation
8a644b9
---
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 [![Hugging Face Spaces](https://img.shields.io/badge/πŸ€—%20Hugging%20Face-Spaces-blue)](https://huggingface.co/spaces/AlvaroMros/ufc-predictor)
## Setup
1. Clone the repo (or download it), then open a terminal in the root folder
2. Install the required Python packages using pip:
```bash
pip install -r requirements.txt
```
## Usage
### 1. Data Scraping
**Initial Setup (First Time):**
```bash
python -m src.main --pipeline scrape --scrape-mode full
```
Scrapes all historical fight data from ufcstats.com.
**Update Data (Regular Use):**
```bash
python -m src.main --pipeline scrape --scrape-mode update
```
Adds only the latest events to existing data.
### 2. Fight Prediction
**Use Existing Models (Fast):**
```bash
python -m src.main --pipeline predict
```
Loads saved models if available and retrains if new data available.
**Force Retrain Models:**
```bash
python -m src.main --pipeline predict --force-retrain
```
Always retrains all models from scratch with latest data.
### 3. Complete Pipeline
#### 2.1 Complete Pipeline
```bash
python -m src.main --pipeline all --scrape-mode update
```
Runs scraping (update mode), analysis, and prediction in sequence.
### 4. Model Updates Only
```bash
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](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.