This is a naive question from someone starting to learn machine learning. I'm reading these days the book "Machine Learning: An algorithmic perspective" from Marsland. I find it useful as an introductory book, but now I would like to go into advanced algorithms, those that are currently giving the best results. I'm mostly interested in bioinformatics: clustering of biological networks and finding patterns in biological sequences, particularly applied to single nucleotide polymorphism (SNP) analysis. Could you recommend me some reviews or books to read?
Deep Learning got a lot of focus since 2006. It's basically an approach to train deep neural networks and is leading to really impressive results on very hard datasets (like document clustering or object recognition). Some people are talking about the second neural network renaissance (eg in this Google talk by Schmidhuber).
If you want to be impressed you should look at this Science paper Reducing the Dimensionality of Data with Neural Networks, Hinton & Salakhutdinov.
(There is so much work going on right now in that area, that there is only two upcoming books I know about that will treat it: Large scale machine learning, Langford et al and Machine Learning: a probabilistic perspective by Kevin Murphy.)
Most of the answers given so far refer to "Supervised Learning" (i.e. where you have labels for a portion of your dataset, that you can use to train algorithms). The question specifically mentioned clustering, which is an "Unsupervised" approach (i.e. no labels are known beforehand). In this scenario I'd suggest looking at:
- k-means and kernel k-means
- Agglomerative Clustering
- Non-negative Matrix Factorisation
- Latent Dirichlet Allocation
- Dirichlet Processes and Hierarchical Dirichlet Processes
But actually you'll probably find that your similarity/distance measure is more important than the specific algorithm you use.
If you have some labelled data, then "Semi-Supervised Learning" approaches are gaining popularity and can be very powerful. A good starting point for SSL is the LapSVM (Laplacian Support Vector Machine).
These are books that might be helpful:
- Introduction to Data Mining by Pang-Ning Tan, Michael Steinbach, Vipin Kumar. This was the suggested book during my Data Mining classes at university. I like its layout and the theoretical approach;
- Data Mining: Practical Machine Learning Tools and Techniques by Ian H. Witten, Eibe Frank, Mark A. Hall. A very interesting book. This book covers also many implemented techniques with the Data Mining Framework WEKA;
- Machine Learning by Thomas Mitchell. It is a bit old book but it can be useful.
Then remember that you can attend free classes of Machine learning at Stanford have just started: www.ml-class.com.
And for your particular problem, that is SNP analysis, I would suggest to have a look to the Di Camillo's group at University of Padova.
Here is a great article and book that explains the rationale, theory, and application of most of the most popular methods:
It's especially neat because it's a "top 10" chosen by polling experts in the field.
Also, for gene data in general, feature selection is hugely important because of the many features. For example, SVM recursive feature elimination (SVM-RFE) and related methods are very popular and being actively developed and applied in the context of gene data.
I recommend "The Elements of Statistical Learning", by Hastie, Tibshirani, and Friedman. Don't just read it, play with some algorithms described by them (most of them are implemented in R, or you could even implement some yourself), and learn their weak and strong points.
I would recommend the following books
Gaussian Processes for Machine Learning by Rasmussen and Williams (MIT Press) is a must. Gaussian processes are a one of the hot algorithms for machine learning now that Expectation Propagation and variational inference algorithms are available. The book is very well written, has a free MATLAB toolbox (good bit of kit), and the book can be downloaded for free.