Machine learning is an amazing research and application field, which perfectly matches math skills with coding abilities in order to define programs that are able to learn from data. Therefore, after having defined our own (mathematical) model, machine learning is about writing code - sometimes a lot of - to actually make the model to work. However, one point usually underestimated or omitted when dealing with machine learning algorithms is how to write good quality code.
Test-driven development (TDD) is one of the most popular agile methods, specifically designed to support developers in producing (potential) less-buggy code by writing tests before the actual code under test. The application of test-first programming principles to the implementation of Naive Bayes classifiers or Neural networks looks like a daunting challenge.
Conversely, the test-code-refactor cycle strategy founds its principles in the scientific method: make a proposition of validity, share results, work in feedback loops. Moreover, this kind of approach to tackle problems, in this particular case would also allow for a better understanding of how the whole learning model works under the hood.
In this talk, examples of Test-Driven implementations of some of the most famous machine learning algorithms will be presented using scikit-learn.
The talk is intended for an intermediate audience. The content of the talk is intended to be mostly practical, and code oriented. Thus a good proficiency with the Python language is required. Conversely, no prior knowledge about TDD nor Machine Learning algorithms is necessary to attend this talk.