Keaton Spiller
Portfolio

Data Scientist | Data Analyst | Software Engineer | AI / ML
linkedin    HackerRank    GitHub
Resume


Othello

Written in Python this project was about simulating the game of Othello using an adversarial AI against an opponent making random moves. My team of 4 built a MiniMax algorithm at at a depth of 50 for three Heuristics and an RL Neural Network using Q learning trained for 10,000 epochs. Our project compared two different kinds of algorithms in order to see which one performed the best. The heuristics used for the MiniMax were number of moves, number of flipped tiles, and number of tiles. My main part in this project was the MiniMax Algorithm and two heuristics. The results out of 20 games showed the MiniMax winning the most games 15/20 with the number of flipped tiles heuristic, and the RL Network winning 11/20. The RL Neural Network trained for 10,000 epochs took 2 hours to train. Yet, once trained the RL Network tested in seconds. This is much faster than the MiniMax algorithm which took 10 minutes for 20 games.

Email Spam Filter in Python

Engineering a Naive Bayes classifier to determine if an email is spam or not spam given true labels of emails, and probabilites describing the types of semantics used in each email. After using a variation of Laplace smoothing and training on 80% of the data I was able to test with an accuracy of 91%, precision 92% and a recall of 86%.

Statistical Analysis in R

Analyzing the German Credit dataset by using statistical modeling for Default Rates of the German people. This involved exploratory analysis to understand the data, variable selection using Step AIC to simplify insignificant variables, and statistical modeling. In order to analyze the default rate of the german people I compared logistic regression, KNN, LDA and QDA models for the best error rate, sensitivity, specificity, and AUC. LDA had the most significant model for this project with the lowest error rate, highest accuracy with the best balance of AUC.