An excellent text is An Introduction to Statistical Learning, which you can buy or download for free from the website.
The course for An Introduction to Statistical Learning, with Applications in Python is available on edX and is a free companion course for the above text. The courses cover all topics in the books: