Choosing a First Machine Learning Project: Start by Reading or by Doing?
blog.smellthedata.com
blog.smellthedata.com
The handwriting recognition database here is fantastic for testing a variety of simple ML models:
http://yann.lecun.com/exdb/mnist/
In our machine learning class, we would use data from the KDD cup for our projects. Why don't you create a submission for old KDD cups and see if your model can do better than random? 1998 is good for logistic and linear regression:
http://www.kdnuggets.com/meetings/kdd98/kdd-cup-98.html
Using the 2007 dataset, you can try out some of the matrix factoring methods that have worked well for the Netflix prize:
http://www.cs.uic.edu/~liub/Netflix-KDD-Cup-2007.html
These should all be relatively small tasks. Learning how to interpret your results and iterate your models to make them better will take longer than understanding the algorithms.
I'll agree that anybody doing machine learning should understand the basic idea of maximum likelihood learning (e.g., logistic regression). But how far do you go beyond that? This is really the heart of the issue, I think. Yes, there are a ton of things that are really useful to know, and any machine learning student should learn them at some point. If you're trying to do an interesting project that teaches you something about research (and thus looks good on a graduate school application), though, what is the best use of your time?
For unsupervised learning or probabilistic latent models, the EM algorithm, Metropolis-Hastings sampling, variational methods (variation EM, variational Bayes, expectation propagation).
For supervised learning, linear regression, perceptrons, support vector machines.
For reinforcement learning, Q-learning, E^3, Rmax.
My first ML project was to implement STAGGER (Schlimmerand Granger, 1986), which is a very simple algorithm for handling concept drift. Then I trained it on the domain {red, green, blue} X {square, circle, triangle} X {small, medium, large}. I fed it 40 positive examples of small red square, then 40 positive examples of large green triangle, then 40 positive examples of medium blue circle, and watched the learned concept change. I understood how and why it worked, and that felt pretty good.
Edit: And continue with the formalized learning through reading (and experimentation). Later get a handle on common conventions, as they usually help accuracy/readability.