Machine Learning Pokemon Classification

This project was a capstone for my Machine Learning Fundamentals (ICS 435) course. I attempted to predict the typing of a pokemon based on its stats, using a variety of fundamental machine learning models and techniques. If there is a learnable pattern between pokemon typing and pokemon stats, it should become apparent in this project. If not, it is an indication that the game of Pokemon is fairly well-balanced, avoiding certain types of pokemon from having overperforming or underperforming stats.

This project was meant to demonstrate my familiarity with different machine learning models (both supervised and unsupervised), as well as data science techniques such as API usage, one-hot encoding, training vs testing splits, and proper performance evaluation techniques.

The dataset for this project was acquired via PokeAPI, a free API whose documentation can be found here.

Models Used

Results

Each model was evaluated based on its accuracy and AUROC score. While the best models were able to achieve a higher accuracy and AUROC than random guessing (~5.5% accuracy and 0.5 AUROC is equivalent to random guessing), none of them seemed to be able to find a distinct, learnable pattern between a pokemon’s stats and their typing.

You can view the whole code in the GitHub repository for this project.