Clustering com Dados do FIFA 20: Monte um Time Implacável

A ciência de dados tem crescido cada vez mais e uma de suas principais aplicabilidades é nos esportes, principalmente no futebol, que é o mais popular mundialmente. Em várias das técnicas de Data Science utilizadas no esporte, uma das que mais se destacam é a de agrupamento, popularmente conhecida como clustering, que pode ser utilizada para agrupar jogadores com características semelhantes e potencializar o trabalho de scouters, por exemplo. Nessa série de artigos, que inicialmente serão 5, apresentarei um projeto utilizando esta técnica com dados do FIFA 20.

Imagem: Thomas Serer (Unsplash)

Quando jogamos um game de futebol como FIFA ou PES e encaramos o modo carreira como manager, enfrentamos diversos desafios, dentre eles, contratar jogadores potenciais e que atendam a nossa demanda e estilo de jogo. Um grande problema é que, em suma, montamos times de acordo com o nosso conhecimento empírico do futebol ou com o que ouvimos falar sobre um jogador. Este tipo de atitude não é recomendado, haja vista que podemos contratar jogadores de nome, mas que não deem liga.

Geralmente, somos desafiados em times com baixo orçamento e peças limitadas e então é preciso reforçar nossa equipe. A grande pergunta nesses casos é: É possível montar um time com jogadores potenciais e com baixo valor em caixa? A resposta é sim, é possível e técnicas de Machine Learning e análise exploratória de dados podem nos ajudar nesse processo, assim como auxiliam também em situações em que temos um bom orçamento e estamos brigando “nas cabeças” em todos os campeonatos possíveis.

O objetivo do presente projeto é utilizar clustering para agrupar jogadores com características semelhantes e perguntar aos dados como esses jogadores se comportam, para encontrar nomes ideais e montar um time poderoso no FIFA. No final, montarei um time de acordo com minhas análises.

A seguir, utilizarei uma base de dados disponibilizada na plataforma Kaggle, que contém todos os jogadores possíveis do game de futebol mais famoso do mundo. Utilizarei o k-means para encontrar os grupos potenciais! O Dataset contém 104 variáveis (métricas de avaliações dos jogadores) e 18278 linhas (jogadores). Abaixo, as 5 primeiras entradas:

É necessário realizar uma pequena limpeza nos dados, pois há muitas variáveis que são desnecessárias para a análise em questão. Removi algumas colunas como o código identificador do jogador, sua url, valor de clausula, preço, valor de contrato, etc. Como o K-Means não aceita atributos nominais, somente numéricos, então é necessário selecionar as features necessárias.

Agruparei os jogadores conforme as seguintes métricas/características:

  • Overall: é a nota geral do jogador, o que varia de 0 a 100
  • Potential: Nível potencial do jogador, que também varia de 0 a 100
  • Weak Foot: Habilidade com pé fraco, que varia de 1 a 5. Quando mais alto, melhor a habilidade com pé fraco.
  • Skill Moves: É a habilidade de se mover, que simplesmente metrifica a qualidade o jogador para realizar certos movimentos especiais com a bola, seja para driblar ou não.
  • Pace: Metrificação do ritmo do jogador, que varia de 0 a 100.
  • Shooting: Métrica de qualidade dos chutes do jogador, que varia de 0 a 100.
  • Passing: Métrica de qualidade dos passes do jogador, que varia de 0 a 100.
  • Dribbling: Metrifica a capacidade do jogador de carregar a bola e passar por um adversário. Um valor mais alto significa que o jogador será capaz de manter melhor a posse da bola enquanto dribla, pois manterá a bola mais perto, tornando mais difícil para o adversário tomá-la.
  • Defending: Métrica de qualidade para se defender de um determinado jogador, que varia de 0 a 100.
  • Physic: Métrica de habilidades e competências físicas do jogador em questão, força, combatividade, fôlego e impulsão, que varia de 0 a 100.

As demais métricas utilizadas são relativas a goleiros da base de dados, como habilidade de fazer uma defesa enquanto mergulha pelo ar (diving), frequência com que o goleiro pega a bola ao invés de defendê-la e se ele a segura ou não (handling), o comprimento e a precisão dos seus arremessos longos/ chutes(kicking), a rapidez com que ele reage a um chute a gol (speed), seu posicionamento correto ao salvar seu time fazendo uma defesa, que também afeta a forma como o goleiro reage aos cruzamentos (positioning).

Feita a seleção dos atributos necessários, apliquei a técnica de normalização, deixando tudo na mesma escala para potencializar o agrupamento. Após esta etapa, é possível finalmente rodar o algoritmo e em seguida, apesar de não ser o mais eficiente, utilizar o Elbow Method para definir o número de clusters.

Para chegar ao número de clusters, é preciso observar em que ponto a distorção da curva começa a diminuir de forma linear. Após alguns testes, descobri que 12 clusters produzem melhores resultados. Veja como os jogadores estão distribuídos:

A título de curiosidade, seguem as médias do overall e potencial dos clusters.

Overall

Potencial

Observe a prévia de alguns jogadores do cluster 2, que é o de maior média overall e potencial e repare que faz sentido, pois os jogadores tem características semelhantes!

Agora é possível analisar cada grupo gerado e fazer as análises necessárias para montar o time, o que será apresentado nos próximos artigos.

você pode gostar também