Structuring Machine Learning Code: Design Patterns & Clean Code
Over the years working in machine learning projects, we’ve come to discover some software design patterns that simply cannot be avoided in serious machine learning projects.
Below, in the video, there are good examples of how to build proper machine learning pipelines, following clean code OOP principles such as the SOLID principles for software design.
Several design patterns are discussed with practical examples and their implications. So not only you want to build neural networks and other machine learning algorithms, but also you want to find the best hyperparameters for them automatically. We’ll here demonstrate how it’s possible in a clean code way.
This will help you structure how to handle the flow of data from one step to another. Steps are chained one after another in a machine learning pipeline. For instance, you can override behavior inherited from "BaseStep" classes to change the flow of data. You can save state in objects with the fit method, transform the data with the transform method, and more. Overall, it's possible to build really powerful steps that can edit and change the execution flow, and in multiple dimensions.
At the end of the video, there is also a fast and almost comprehensive tutorial where the usage of advanced features of the Neuraxle framework is shown. The design patterns applied to machine learning are brilliant. Clean machine learning pipeline design is shown through an example applied to time series processing. This can be applied to deep learning as well and for sure.
You may find the pages overviewed in the video here: