I'll spend all my time next week studying machine learning. However, I know that it's easy to get lost in overly theoretical material when learning ML.
So I'm interested in some advice on how to best spend my time, given that I'd like to get as much practical knowledge as possible.
Here is the level I'm at now:
I'm currently halfways though Andrew Ng's ML course on Coursera, and will probably finish this within the week. I love the mix of theory an practice this course is based around.
I've also done the Udacity - Intro to Machine Learning, but found it too theoretical.
I kind of understand the basic principles of linear & logistic regression, cost functions and gradient descent & the normal equation.
By the end of the week, I hope to be able to do linear regression using gradient descent on an actual dataset. If so, the week has been very well spent!
My preferred language is Python.
All tips and suggestions are highly appreciated :)
http://scikit-learn.org
Much of what you learn in Ng's course is how to implement these algorithms - there's less (no?) emphasis on using existing libraries in R or Python. I think that implementing your own code base for logistic regression, neural net, random forest, and so forth is an extremely valuable exercise, but I'd recommend you put that aside just for the moment. Instead, try using some of the existing libraries.
For instance, use scikit-learn's logistic regression, neural net, and random forest (not covered in Ng's class) libraries to do a classification. You don't want to use these with no understanding of how they work, but you've done the coursera, so see if you can use your knowledge of how these algorithms differ to create dataset that will highlight the benefits each approach (i.e.., can you create a dataset that works great for logistic regression but poorly for neural nets, or random forest?) Think about how you'd use an unsupervised approach to classification, and run it through k-means. I really think that applying different techniques to the same dataset, on a high level, combined with general knowledge of what's going on under the hood, can be a great way to understand how/when to use these algorithms.