Machine Learning Cheat Sheet for scikit-learn
peekaboo-vision.blogspot.ca
peekaboo-vision.blogspot.ca
No one.
More, people not only don't contribute, they don't even adhere to the guidelines that they themselves proposed. As a result I am more than just sceptical about such collaborative efforts, I'm now utterly cynical.
Note: I submitted the link, but I'm not the author.
Plot k against prediction accuracy (averaged over a number of runs). Look for a step, that is the correct setting of k. I don't believe there exists an algorithm for detecting that step as good as I can.
You can compare the cluster found by k-means run several times against what you get with a randomized version of your dataset though: http://blog.echen.me/2011/03/19/counting-clusters/
It's "tough luck" because the algorithms determining the number of clusters aren't magical. As with all machine learning, the results reflect the assumptions built into the algorithm.
Feel free to present an augmented version that include the things you mention. I, for one, would be interested in a more comprehensive diagram.
Some notes that may help clarify: regression is trying to predict a continuous number (e.g. how much a house will cost). Linear regression is a type of regression. Classification is trying to predict a category (e.g. condo vs apartment). Logistic regression is usually used for classification over two categories (even though it confusingly has 'regression' in the name). So linear regression will fall into into the regression bubble, logistic regression will fall into the classification bubble, and support vector machines are split into the two bubbles based on what you want to do with them.
The difference between sgd (stochastic gradient descent) and elastic net lasso is how the models are trained. The final model in both cases can be used (evaluated/predicted) in the same way.
Now genetic algorithms are any algorithm that encodes solutions (typically parameters to a cost function) as a gene and performs optimization through an artificial evolutionary process. Now GAs are incredibly easy to learn how to implement, but it's much harder to figure out when they should be used.
In theory GAs can be used anywhere in this diagram that parameters need to be chosen. However there are two major draw backs to GAs:
1. Cost function is a huge bottle neck 2. In many cases there is a known, better method of optimization.
So for example you might want to use a GA to determine the parameters for training an SVM, however (given you have enough data) this runs into problem 1, since it might take minutes, hours or days to train an SVM. Which is too long and you would have to train 100s or more SVM for each iteration of the GA, with a least 100s of iterations.
Also GAs have been used to find optimal weights in neural nets, however here you run into 2 (and I believe 1 as well), as using backprop usually performs better.
All that said GAs are an amazing tool when you have some cost function you need to optimize that 1.) can be evaluated very quickly, and 2.) is weird, very non linear, or otherwise has no known 'good' solution already.
So finally to your question: most heavily studied areas of ML already have a better optimization algorithm than a GA (hence no GAs on this diagram), however in the real world you never know when you my find some very strange, difficult and poorly studied optimization issue and then GAs can be very useful
GA are a way to solve search problems. But there are other ways that are more efficient and more specific. http://www.pearsonhighered.com/samplechapter/0136042597.pdf
But solving a problem with GA may sometimes be cooler and more interesting.