Data Science Blog

Thompson Sampling with Cats! #Python #TypeScript #NodeJS #D3.js

A fun demonstration of how Thompson Sampling can be used to achieve better results than A/B Testing when deciding which version of a product to deploy.

Advanced Topics in Applied Mathematics

Facial Recognition #Python #Jupyter Notebook

Algorithm that uses eigenfaces to solve the computer vision problem of face recognition.

Given an image of a face, this algorithm finds the closest match in the data set with respect to the Euclidean norm.

Fourier Transformation #Python #Jupyter Notebook

Implementation, explanation, and several applied examples of the famous Fast Fourier Transform.

This algorithm decomposes a signal via a linear transformation from the time domain to the frequency domain in O(nlogn) time.

I have a rigorous understanding of the mathematics behind this process.

Classical Machine Learning Problem #Python

Implementation of a K-Dimensional Tree classifier used to correctly identify the digits 0-9 from thousands of images.

Page Rank Algorithm #Python #NetworkX

The PageRank algorithm was principle to Google's success. Before PageRank, search results on the web were totally disorganized.

I implemented the algorithm myself and used it to rank websites from a dataset maintained by Stanford University. Then, I imported the optimized NetworkX version to build a March Madness bracket.

Markov Chains #Python

Yoda Speak

A Jedi's strength flows from this kind?
To question, no try.
A Jedi Knight with you be.
The Chosen One the Chancellor, he will be.
Encircle them we must, then divide.
I created a Markov chain from Master Yoda's speech to simulate a classical Natural Language Processing problem.

Because the outcome of a Markov chain only depends on a single state (a single word in this case), the results are non-sensical and fun to read.

Software Development

Custom Domo Tiles - Data Pipeline #DOMO API #R #Python #Cronjob

Your company may amass information from B2B services such as Facebook Advertising, LinkedIn, Salesforce, etc. DOMO provides an all-in-one data warehousing and analytics platform to handle this data.

This script can download one or more datasets from a DOMO instance, run the data through any R or Python script, and then push it back into DOMO. When scheduled, this serves as an easy data pipeline.

Family Map on Android #REST API #Android #SQLite #Java

The Family Map android app gives users a visual way to view and explore their own personal origins.

My web server generates family trees for each user and serves them to the client to be displayed on a world map.

Algorithms and Data Structures

Efficient algorithms are critical to problem solving using computational methods. After a single month of preparation and no prior experience, I placed 18th out of 132 competitors (86th percentile) at the 2018 ACM coding competition between the big 4 Utah universities.

#Python

Pacman Breadth First Search - Hackerrank


One of my favorites. Pacman chose to use Breadth First Search to find the food.

100+ Hackerrank Challenges #Python #JavaScript #Java #C++ #Regex #SQL

Python doesn't have a sorted set data structure, but Java does. Hackerrank challenges have helped me discover which tools best suit each problem in coding competitions.

Kevin Bacon BFS #Python

In [1]: graph = bfs.MovieGraph()
In [2]: graph.path_to_actor("Robert Downey Jr.", "Kevin Bacon")
Out [2]:
['Robert Downey Jr.', 'Avengers: Infinity War (2018)', 'Josh Brolin', 'Hollow Man (2000)', 'Kevin Bacon']
An overpowered solution to the Kevin Bacon problem with a data set scraped from IMDB. How many movies are between any actor and Kevin Bacon?

There is one actor between Robert Downey Jr. and Kevin Bacon giving Robert a Bacon number of 1.

Binary Search / AVL Tree #Python #C++

Implementation and benchmark comparison of insertion, removal, and lookup functions on a binary and AVL tree.

Web Development

Dropbot - Chrome Automator #JavaScript #Chrome #Python

Writing bots and web scrapers is useful, but can be a pain. Tools such as the Selenium library rely on developers to cleverly locate the important HTML elements of a page.

The Dropbot Chrome extension makes this easy, and even lets you export custom bot scripts as JSON objects for use in any programming language.

Vision Therapy Tetris #JavaScript

I have a lazy eye. I took a 3 day challenge to learn JavaScript, and made this vision therapy game for kids with the same condition.

Wearing an eye patch is a good way to exercise a non-dominant eye, but it doesn't train our two eyes to work together. With red and blue 3D glasses, only one eye can see the red blocks while the other sees the blue blocks--so the eyes must coordinate.

This is a fun way for kids to do their vision therapy exercises, and train their eyes to work together.

Research Lab Website Proposal #AngularJS

This is a skeleton of the IDeA Labs' (Information & Decision Algorithms Laboratories) website written as a single page web application in Angular 5.

It uses routing to associate different states with URLs to simulate having multiple pages.

Further Fun Projects

3 Day Java Challenge #Java

I wrote this in 3 days with almost zero prior java experience.

I can learn new technologies quickly.

I believe that the source code reflects my level of adherence to standard style conventions.

Russian App (In Progress)#Python #SQLite #C++ #Swift #Java

Query results for "police"

"Как мне пройти' в поли'цию?",
"How do I get to the police station?"

"Его разы'скивает поли'ция."
"He's wanted by the police."

"Они вы'дали его поли'ции.",
"They turned him over to the police."

24 more ...
I reformatted a massive dataset of 100,000+ Russian words and sentences. I gathered frequency data on my own.

The app will organize Russian words into intelligent vocab sets unlike any tool currently available.

I will publish the app on the iOS store and Googe Play.