search
HomeBackend DevelopmentPython TutorialPredicting NBA Player Chemistry Using Graph Neural Networks

Predicting NBA Player Chemistry Using Graph Neural Networks

Hello everyone, my name is sea_turt1e.

This article will share the process and results of building a machine learning model to predict player chemistry in the National Basketball League (NBA), a sport I love very much.

Overview

  • Predict player chemistry using graph neural networks (GNN).
  • The area under the curve (AUC) is used as the evaluation metric.
  • The AUC at convergence is approximately 0.73.
  • The training data covers the 1996-97 season to the 2021-22 season, and the data from the 2022-23 season is used for testing.

Note: About NBA

For readers unfamiliar with the NBA, parts of this article may be difficult to understand. "Chemical reaction" can be understood from a more intuitive perspective. Additionally, while this article focuses on the NBA, the method could also be applied to other sports and even interpersonal chemistry prediction.

Chemical reaction prediction results

Let’s look at the prediction results first. I'll go into more detail about the dataset and technical details later.

Explanation of sides and fractions

In chemical reaction prediction, red edges indicate good chemical reactions, black edges indicate moderate chemical reactions, and blue edges indicate poor chemical reactions.

The fraction on the side represents the chemical reaction score, ranging from 0 to 1.

Chemistry predictions for star players

Here are the chemistry predictions for star players. The graph only contains pairs of players who never played for the same team.

Predicting NBA Player Chemistry Using Graph Neural Networks

Looking at the predictions of star players who have never played together, the results may not always be intuitive.

For example, LeBron James and Stephen Curry showed excellent coordination in the Olympics, indicating good chemistry. On the other hand, Nikola Jokic is surprisingly predicted to have poor chemistry with other players.

Chemistry predictions for major trades in 2022-23 season

To bring the predictions closer to reality, I tested the chemistry between players in actual trades for the 2022-23 season.

Since data from the 2022-23 season is not included in the training data, predictions that match realistic impressions can indicate the effectiveness of the model.

There are several important trades happening in the 2022-23 season.

Here are the predictions for key players including Kevin Durant, Kyrie Irving and Rui Hachimura.

Predicting NBA Player Chemistry Using Graph Neural Networks

The chemistry predictions for their new team are as follows:

  • Lakers: Rui Hachimura – LeBron James (red edge: good chemistry)
  • Suns: Kevin Durant – Chris Paul (Black Side: Medium chemistry)
  • Mavericks: Kyrie Irving – Luka Doncic (blue side: poor chemistry)

These results appear to be pretty accurate considering the dynamics of the 2022-23 season. (Though things changed for the Suns and Mavericks the following season.)

Technical details

Next, I will explain the technical aspects, including the GNN framework and dataset preparation.

What is GNN?

GNN (Graph Neural Network) is a network designed to process graph-structured data.

In this model, "chemical reactions between players" are represented as graph edges, and the learning process is as follows:

  • Direct side: The pair of players with higher number of assists.
  • Negative Side: A pair of players with a lower number of assists.

For negative edges, the model gives priority to “teammates with low assists” and weakens the influence of “players from different teams”.

What is AUC?

AUC (area under the curve) refers to the area under the ROC curve and is used as a metric to evaluate model performance.

The closer the AUC is to 1, the higher the accuracy. In this study, the AUC of the model was approximately 0.73—a middling to above average result.

Learning Curve and AUC Progress

The following is the learning curve and AUC progress during the training process:

Predicting NBA Player Chemistry Using Graph Neural Networks

Dataset

The main innovation lies in the construction of the data set.

To quantify chemistry, I assume "high assists" means good chemistry. Based on this assumption, the data set is structured as follows:

  • Positive side: Players with high number of assists.
  • Negative side: Players with low assists.

Additionally, teammates with low assist counts are explicitly considered to have poor chemistry.

Code details

All code is available on GitHub.

Following the instructions in the README, you should be able to replicate the training process and plot the graphs described here.

https://www.php.cn/link/867079fcaff2dfddeb29ca1f27853ef7

Future Outlook

There is still room for improvement and I plan to achieve the following goals:

  1. Expand the definition of chemical reaction
    • Incorporate factors beyond assists to more accurately capture player relationships.
  2. Improve accuracy
    • Improving AUC through better training methods and expanded data sets.
  3. Integrated natural language processing
    • Analyze player interviews and social media posts to add new perspectives.
  4. Write an article in English
    • Publish content in English to reach a wider international audience.
  5. Developing GUI for graph visualization
    • Create a web application that allows users to interactively explore player chemistry.

Conclusion

In this article, I describe my attempts to predict NBA player chemistry.

While the model is still under development, I hope to achieve more exciting results with further improvements.

Welcome to leave your thoughts and suggestions in the comment area!


If you need further improvements, please let me know!

The above is the detailed content of Predicting NBA Player Chemistry Using Graph Neural Networks. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Python vs. C  : Learning Curves and Ease of UsePython vs. C : Learning Curves and Ease of UseApr 19, 2025 am 12:20 AM

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

Python vs. C  : Memory Management and ControlPython vs. C : Memory Management and ControlApr 19, 2025 am 12:17 AM

Python and C have significant differences in memory management and control. 1. Python uses automatic memory management, based on reference counting and garbage collection, simplifying the work of programmers. 2.C requires manual management of memory, providing more control but increasing complexity and error risk. Which language to choose should be based on project requirements and team technology stack.

Python for Scientific Computing: A Detailed LookPython for Scientific Computing: A Detailed LookApr 19, 2025 am 12:15 AM

Python's applications in scientific computing include data analysis, machine learning, numerical simulation and visualization. 1.Numpy provides efficient multi-dimensional arrays and mathematical functions. 2. SciPy extends Numpy functionality and provides optimization and linear algebra tools. 3. Pandas is used for data processing and analysis. 4.Matplotlib is used to generate various graphs and visual results.

Python and C  : Finding the Right ToolPython and C : Finding the Right ToolApr 19, 2025 am 12:04 AM

Whether to choose Python or C depends on project requirements: 1) Python is suitable for rapid development, data science, and scripting because of its concise syntax and rich libraries; 2) C is suitable for scenarios that require high performance and underlying control, such as system programming and game development, because of its compilation and manual memory management.

Python for Data Science and Machine LearningPython for Data Science and Machine LearningApr 19, 2025 am 12:02 AM

Python is widely used in data science and machine learning, mainly relying on its simplicity and a powerful library ecosystem. 1) Pandas is used for data processing and analysis, 2) Numpy provides efficient numerical calculations, and 3) Scikit-learn is used for machine learning model construction and optimization, these libraries make Python an ideal tool for data science and machine learning.

Learning Python: Is 2 Hours of Daily Study Sufficient?Learning Python: Is 2 Hours of Daily Study Sufficient?Apr 18, 2025 am 12:22 AM

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.

Python for Web Development: Key ApplicationsPython for Web Development: Key ApplicationsApr 18, 2025 am 12:20 AM

Key applications of Python in web development include the use of Django and Flask frameworks, API development, data analysis and visualization, machine learning and AI, and performance optimization. 1. Django and Flask framework: Django is suitable for rapid development of complex applications, and Flask is suitable for small or highly customized projects. 2. API development: Use Flask or DjangoRESTFramework to build RESTfulAPI. 3. Data analysis and visualization: Use Python to process data and display it through the web interface. 4. Machine Learning and AI: Python is used to build intelligent web applications. 5. Performance optimization: optimized through asynchronous programming, caching and code

Python vs. C  : Exploring Performance and EfficiencyPython vs. C : Exploring Performance and EfficiencyApr 18, 2025 am 12:20 AM

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment