Check out the lecture notes for CS229, Stanford's class on Machine Learning. The class has no textbook, so the notes are fairly comprehensive. (Though the math notation can get a bit intense...) http://www.stanford.edu/class/cs229/materials.html
And it's not an easy course. Don't be discouraged if the problem sets seem impossible. (They very nearly are.)