Plot twist: It’s Mr. Math under that Mask, Scooby Doo!
OK, you really can’t learn all about Machine Learning in five minutes. Or five days. Or five weeks. It takes longer than that, but what I can show you in five minutes is what Machine Learning is about, a couple of important terms to understand, and what you can use it for. If you’re still interested, I can point you to videos, courses, and books that will teach you way more. Sounds like a plan? Start the clock…
One formal definition of Machine Learning is:
“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.”
All that really means is that as the algorithm walks across the data, it can improve on guessing what the another value will be if you, or some other process, helps it. There are (generally) two types of learning, and two types of data, that you need to understand next.
The two types of data in Machine Learning are Features, and Labels. Features are simply data – like columns. Labels are another column, which has an “answer” you are looking for – like this:
|IsThisBuck (Label)||Age (Feature)||Location (Feature)||Looks (Feature)||Intelligence (Feature)|
|No||Under 15||Somewhere without coffee||Poor||High|
And now the two types of learning. The first type is called “Supervised”. This means that the system has the data as it looks above – with a label. You provide it the data, and it figures out (using stats, mostly) how to correlate the features to the label. You normally hide some of the data (hold-out) to test the algorithm – having it predict whether it’s Buck or not by just showing it the features but not the label. If it works most of the time, you have a good model (which is just more math). If not, you need to change the model. Now you can use data it has not seen to see if this is Buck. (I feel certain the NSA has this exact “Buck recognition” algorithm handy at all times)
The second type of learning is “Unsupervised”. This type of learning does nothave that label column. It uses algorithms to figure out what groups are present in the data, and then you can throw more data at it and it will place it in the (hopefully) right group. So in this case it wouldn’t know who Buck is per-se, but if the data shows that you and I have a lot of those features in common, then it would put us together in a group.
What can you do with Machine Learning? Lots of things. Primarily you’re looking to either predict something using past data, or group things that are alike. Sometimes a mix of both.
You might decide to open up a coffee shop in Florida and Cambridge, if there are enough of us in the group, for instance. If you want to create a robot that has vision, you need to categorize and group object data it senses together so that it knows what a stair is and when it should lift its foot. If you want to know how much money you’re going to make next year at your company, or whether a drug will work for a given illness, you can use these techniques over past data to make a prediction.
Stop the clock – how did we do?
If you really want to learn more (And you should)
There are a plethora of resources out there to learn more. Let’s start with some videos, move to some full-blown courses, and then check out a few books. I’m assuming that you have some Statistics and Linear Algebra experience… If not, go to the Khan Academy and do those courses first (https://www.khanacademy.org/math)
- Start with an overview from Gary: https://www.youtube.com/watch?v=WXHM_i-fgGo
- A very cool visualization is here: http://www.r2d3.us/visual-intro-to-machine-learning-part-1/
- You can also learn a quick overview from TechEd, which uses R in SQL Server: https://www.youtube.com/watch?v=_kMIns-MK0s
- Azure Machine Learning (Azure ML) is a development environment that works on any PC, Mac, or Linux, and makes it easy (and free) to get started. You can watch some videos on starting to learn Machine Learning here: https://azure.microsoft.com/en-us/documentation/services/machine-learning/
- Andrew Ng has a really good course on Coursera about Machine learning. You’ll need that math background to get started: https://www.coursera.org/learn/machine-learning
- I also like the courses Microsoft did on Coursera using HDInsight (Hadoop) and others that work with specific tools and techniques – a list of those are here: https://www.mooc-list.com/tags/machine-learning?static=true
- If you’re a motivated self-learner, you can use the references and source materials from MIT: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/index.htm
- This is a great introduction to Machine Learning, using Python: http://www.amazon.com/Python-Machine-Learning-Sebastian-Raschka/dp/1783555130/
- An Introduction to Statistical Learning: with Applications in R (Springer Texts in Statistics) – Heavy in math, but really a good work. I have seen Springer offer this book for free from time to time, so hit the web with a search to locate that: http://www.amazon.com/Introduction-Statistical-Learning-Applications-Statistics/dp/1461471370/