Projeto de Machine Learning para previsão de vencedores de lutas do UFC com base em atributos pré-luta dos atletas.
Previsão de vencedores de lutas do UFC usando Machine Learning
Sou fã de MMA e praticamente todo sábado estou assistindo UFC. Durante a semana, vejo muita gente comentando sobre as próximas lutas, falando de possíveis “underdogs” ou de lutadores que podem surpreender.
Isso me fez pensar: será que dá pra analisar esses confrontos de forma mais objetiva usando dados?
A partir disso, desenvolvi o UFC Winner Predictor, um projeto que tenta prever o vencedor de uma luta com base nas informações dos atletas antes do combate.
O modelo utiliza features comparativas entre os lutadores (red vs blue) e foi treinado com divisão temporal dos dados, evitando vazamento de informação e simulando um cenário mais próximo da prática.
- Tratamento e preparação dos dados
- Criação de features comparativas
- Treinamento de modelo de classificação
- Avaliação de desempenho
- Aplicação interativa com Streamlit
O modelo utiliza atributos pré-luta dos atletas, transformados em features comparativas entre os cantos (red vs blue).
Entre as principais variáveis:
- Idade
- Altura e envergadura
- Número de vitórias e derrotas
- Precisão de golpes significativos
- Precisão de takedowns
- Estilo de luta (stance)
Essa abordagem permite que o modelo capture melhor as diferenças entre os lutadores, em vez de analisá-los de forma isolada.
O modelo foi avaliado utilizando uma divisão temporal entre treino e teste, evitando vazamento de informação.
- Accuracy: 0.71
- ROC-AUC: 0.76
Essas métricas ajudam a entender tanto o desempenho geral quanto a capacidade do modelo de diferenciar vencedores e derrotados.
Exemplo de previsão realizada pela aplicação:
- Lutador A vs Lutador B
- Probabilidade de vitória (red): 72%
- Predição: Vitória do lutador A
A aplicação foi desenvolvida com Streamlit para permitir testes interativos a partir dos dados dos lutadores.
O dataset não está incluído no repositório por conta do tamanho.
Para reproduzir o projeto:
- Baixe o dataset de UFC no Kaggle
- Coloque o arquivo
UFC.csvem:data/raw/- ou
C:/Users/seuusuário/Downloads/archive/
Instale as dependências:
pip install -r requirements.txt
python -m src.ufc_predictor.train
streamlit run app.py
|-- app.py
|-- README.md
|-- requirements.txt
|-- data
|-- docs
`-- src
Esse projeto foi desenvolvido com foco em simular um cenário mais próximo do mundo real, respeitando a evolução temporal dos dados e evitando vazamento de informação.
- Melhoria das features
- Testes com outros modelos
- Otimização de hiperparâmetros
- Análise de interpretabilidade (ex: SHAP)

