Data Science + Design Thinking: a Perfect Blend to Achieve the Best User Experience
  It’s one thing to rely on artificial intelligence, machine learning, and big data to make your product smarter.  And, quite another to build a product that’s so intuitive and easy-to-use that your customer falls in love with it. That’s the beauty of data science + design thinking. It’s... Read more
The Data Scientist’s Holy Grail – Labeled Data Sets
The Holy Grail for data scientists is the ability to obtain labeled data sets for the purpose of training a supervised machine learning algorithm. An algorithm’s ability to “learn” is based on training it using a labeled training set – having known response variable values that correspond to a... Read more
A Practical Approach to Data Ethics
There is a Golden Rule in life. It’s a maxim that appears in various forms around the world: One should never do that to another which one regards as injurious to one’s own self. As a data scientist, I find this principle of reciprocity very appealing! Treat others’ data... Read more
How Tidyverse Guides R Programmers Through Data Science Workflows
Whenever someone asks me how to get into data science using R, I invariably recommend checking out the tidyverse package. Tidyverse is a great launch pad for a language like R because it offers order and consistency. I studied programming language design as a CS undergrad. At the time,... Read more
Setting Your Hypothesis Test Up For Success
I want to go deep with you on exactly how I work with stakeholders ahead of launching a hypothesis test. This step is crucial to make sure that once a test is done running, we’ll actually be able to analyze it. This includes: A well-defined hypothesis A solid test... Read more
Organizing Your Next Data Science Project to Minimize Headaches
Call it the data scientist’s curse, but every practitioner has had a project that became unmanageable at some point because of poor organizational choices early on. We’ve all been at our desks at 2 a.m. changing values and re-running our scripts for the 80th time in an hour, asking... Read more
Three Popular Clustering Methods and When to Use Each
In the mad rush to find new ways of teasing apart labeled data, we often forget about everything we can do with unsupervised learning. Unsupervised machine learning can be very powerful in its own right, and clustering is by far the most common expression of this group of problems.... Read more
Performance of ranged accesses into arrays: modulo, multiply-shift and masks
Suppose that you wish to access values in an array of size n, but instead of having indexes in [0,n), you have arbitrary non-negative integers. This sort of problems happens when you build a hash table or other array-backed data structure. The naive approach to this problem is to... Read more
Modern processors use many tricks to go faster. They are superscalar which means that they can execute many instructions at once. They are multicore, which means that each CPU is made of several baby processors that are partially independent. And they are vectorized, which means that they have instructions... Read more
Are Vectorized Random Number Generators Actually Useful?
Our processors benefit from “SIMD” instructions. These instructions can operate on several values at once, thus greatly accelerating some algorithms. Earlier, I reported that you can multiply the speed of common (fast) random number generators such as PCG and xorshift128+ by a factor of three or four by vectorizing... Read more