P8105 – Data Science I | Columbia University | Fall 2025
This project analyzes 742 Pokémon across nine generations using machine learning and statistical modeling. We achieve 99.5% accuracy in legendary prediction and develop a comprehensive dual-rating system for competitive battling.
Key Results: Legendary Pokémon are statistically distinct (BST 680 vs 420), concentrated in Dragon/Psychic/Steel types, and accurately classified through Random Forest modeling.
| Question | Status | Method |
|---|---|---|
| Can we identify legendary Pokémon from their stats? | Complete | Random Forest (99.5% AUC) |
| How do physical attributes correlate with battle stats? | Complete | Correlation Analysis |
| Which type combinations are strongest/weakest? | Complete | Type Effectiveness Matrix |
| Which types are most likely to be legendary? | Complete | Chi-Square Test |
| Can we develop a dual-rating system for competitive battling? | Complete | Dual Rating Algorithm |
| Does our optimal team match competitive standards? | Complete | Competitive Meta Analysis |
Most Common Types: Water (18%), Normal (15%), Grass (12%) Rarest Types: Flying (4%), Fairy (6%), Ice (6%) Dual-Type Rate: 47% have secondary typing
| Profile | BST | Legendary % | Examples |
|---|---|---|---|
| High Sweepers | 580 | 35% | Mewtwo, Rayquaza |
| Def Tanks | 480 | 8% | Snorlax, Steelix |
| Balanced | 450 | 2% | Arcanine, Gyarados |
| Early-Game | 320 | 0% | Pidgey, Rattata |
Web scraping from PokémonDB using rvest, handling 1000+
species and alternate forms
Feature engineering with tidyverse: one-hot encoding,
correlation matrices, distribution analysis
PCA + K-Means (k=4) using factoextra, explaining 70%
variance in first 3 components
Random Forest tuning with caret: 500 trees, mtry=3,
achieving 99.5% AUC
Separate offensive and defensive ratings using S-curve BST mapping, effective stat calculations, and type matchup analysis
Languages & Tools • R (≥ 4.0), RStudio, Git
Core Packages • tidyverse, plotly, kableExtra • caret, randomForest, pROC • factoextra, cluster, FactoMineR
Visualization • ggplot2, plotly (interactive) • crosstalk, DT (tables)
P8105 – Data Science I | Fall 2025
Columbia University | Mailman School of Public Health