I have read text about machine learning and I feel that I have gained sufficient knowledge that I can start applying them practically. I have programming experience in python so I want to learn how to use scikit learn. I went through documentation but I left it because I couldn't quite get it. Are there any resources (books or courses etc) from where I can learn to use scikit learn?
-
$\begingroup$ Usually, the best way to get started using new libraries is to learn by example. scikit-learn is very popular, so you can find lots of hands-on tutorials by googling scikit-learn + your favorite method. $\endgroup$– Marc ClaesenCommented Aug 16, 2015 at 10:16
2 Answers
In addition to the scikit-learn user guide, the following two sources were of great help to me:
- Building Machine Learning Systems with Python, by Willi Richert and Luis Pedro. Coelho, makes heavy use of the numpy, scipy and scikit-learn libraries in their fairly rigorous implementations of a wide variety of Machine Learning algorithms and concepts. The only requirement is that you follow the implementations along in your IDE after covering each concept, as they don't provide a dictionary like handle on each line of code throughout the book, only at places where it's really necessary.
PyCon conferences include a fairly large number of tutorial sessions in their itinerary, most of which end up as 3+ hours long videos in their Youtube channels. I would strongly recommend viewing the following sessions in the given order:
a. Machine Learning with Scikit-Learn (I) by Jake VanderPlas, held during PyCon 2015.
b. Olivier Grisel's Machine Learning with scikit-learn (II), Sequel to (a), also held at PyCon 2015.
c. Machine Learning with Scikit Learn | SciPy 2015 Tutorial | Andreas Mueller & Kyle Kastner Part I and its sequel both of which are part of the SciPy 2015 conference, now available in Enthought's channel.
d. Olivier Grisel's Advanced Machine Learning with scikit-learn, held at PyCon 2013.
They also offer more scikit-learn, scipy and pandas related tutorial sessions, so make sure you visit their channels as well.
EDIT: May I direct attention to @inversion's answer as well; Kaggle is the playground for learning machine learning techniques based on a wide variety of libraries such as scikit-learn, Lasagne (Python), Theano (Python), h2o (R and Python) and caret (R), and gives you real-life, hands-on challenges to tackle.
-
$\begingroup$ They said that these tutorials are for those who have prior knowledge. Not for the first timers. $\endgroup$ Commented Aug 17, 2015 at 12:38
-
$\begingroup$ Although some of these videos ('d' in particular) assume prior knowledge in basic statistics and machine learning concepts (i.e., Theory), I still recommend following along and playing around with the provided code and additional resources, because as @mark-claesen said, its best to learn by example, and most of it is well commented. $\endgroup$ Commented Aug 18, 2015 at 19:25
Kaggle has a very nice walk-through of the Titanic data. The first two links are more towards processing the data, and the last uses scikit-learn's Random Forest.
https://www.kaggle.com/c/titanic/details/getting-started-with-python https://www.kaggle.com/c/titanic/details/getting-started-with-python-ii https://www.kaggle.com/c/titanic/details/getting-started-with-random-forests
In addition, Kaggle has a number of other "learning" competitions, where people post scripts, many of which utilize scikit-learn.
For example, this script analyzes San Francisco Crime data using Naive Bayes:
https://www.kaggle.com/sonuk7/sf-crime/prediction-with-bernoulinb
There are hundreds of other scripts that you can fork and modify to try different approaches.
One advantage of walking through scripts on Kaggle is there is a very active forum, so you can ask specific questions about code.