Practical Machine Learning with Functional Programming
Solving real-world problems with Machine Learning and F#
If you are curious about what Machine Learning is about, and want to sharpen your developer skills, come with your laptop and… let’s hack together!
What you will learn in this workshop
In this workshop, you will be working on real-world datasets, applying a variety of machine learning techniques, using a functional programming approach.
In the process, you will gradually learn simple but fundamental and widely applicable machine learning ideas, and develop a sense for what it means to “do machine learning”, and how it is similar and different from writing “normal” code.
Rather than taking an abstract mathematical view of machine learning or jump straight into frameworks, we will implement together a selection of classic prediction algorithms, across datasets illustrating different practical problems you will encounter.
By coding things from the ground up, you will develop an intuition for how things actually work inside the black box, what types of techniques are available and the problems they are suitable for, and some of the potential issues you need to watch out for.
And, as we work our way through different problems, you will be gradually introduced to F# and functional techniques and how they are helpful.
Beyond F#, many of the ideas presented are applicable to other languages, functional or not… come along if you want to deep dive on Machine Learning!
- We will explore a variety of problems, using 4 different datasets, looking at questions such as automatically recognizing what number is in a picture, detecting what language a piece of text is written in, predicting usage of a service for a particular day using historical data, or (perhaps the most important one) whether a wine is any good, based on its chemical profile.
Each dataset covers common different situations you might encounter: numerical and categorical inputs, and text, to a lesser extent, because natural language processing is a very large topic all by itself.
- We will cover a wide range of techniques, to establish a good understanding for the overall machine learning landscape: what tools exist, what problems they are useful for, and simply what they are called – searching for things when you don’t know what they are called is hard! Specifically, we will present classification and regression prediction techniques (k nearest neighbors, perceptron/logistic regression, decision trees and random forests, classic regression), and unsupervised techniques that are useful to extract information from larger datasets (k-means clustering, principal components analysis).
- We will discuss neural networks, but only at a high level.
- We will emphasize primarily simple techniques that are broadly applicable. Rather than jumping directly into libraries, we will program algorithms from the ground up, using code as a vehicle to explore mathematical ideas in an interactive and concrete way, and build an intuitive understanding of how things work. In the process, we will see that the fundamental ideas are less complicated than they appear, and that seemingly quite different problems and techniques are in the end quite similar.
- We will code everything in F#, in the scripting environment (we will use the Code editor, but any other IDE or editor running F# should do). Each problem is designed to be F# beginner friendly and uses interactive scripts where language concepts and syntax are progressively introduced, in the context of the problem at hand.
- In the process, you will learn how functional programming techniques can be used to great effect for data manipulation and exploration, from reading data with type providers to reshaping it with pipes and filters, and more. Beyond F#, many of the ideas presented are applicable to other languages, functional or not.
Machine learning and regular development both involve writing code, but are subtly different.
Throughout the workshop, we will highlight these differences, and share practical tips on what to look out for, and emphasize setting up a workflow / methodology to enable reliable feedback and avoid common pitfalls.
At the end of the workshop, you will…
- Understand the language used in machine learning discussions
- Know how to search for tools to solve your issues, and evaluate them
- Be comfortable using F# scripts to explore and manipulate data
- Setup machine learning experiments to iteratively build prediction models
- Have picked up new ideas that will make you look at code differently
- Have had quite a bit of fun hacking at code together!
Expect to get your hands dirty
Machine Learning and Functional Programming are both very hot topics these days; they are also both rather intimidating for the beginner.
In this workshop, we’ll take a 100% hands-on approach, and learn practical ideas from Machine Learning, by tackling real-world problems and implementing solutions in F#, in a functional style.
In the process, you will see that once you get beyond the jargon, F# and Machine Learning are actually not all that complicated – and fit beautifully together.
Mathias will guide you in this journey towards writing effective F# code with lots of coding on fun problems.
Should I take my laptop with me?
Yes. You will need a laptop with an IDE or editor running F#. Check www.fsharp.org for instructions on how to get setup.
Are there any prerequisites?
No F# or Machine Learning prerequisites: complete beginners are totally welcome.
In which language will the workshop be?
The workshop will be held in English.
The workshop is subject to the confirmation of a minimum number of registered attendees.
Two coffee breaks and lunch with the trainer and the other attendees are also included in this ticket… because networking matters. :)
Questions? Drop us a line: firstname.lastname@example.org
I tuoi non ti mandano? Partecipi di nascosto?
L'IVA te la facciamo risparmiare
Se ti stai iscrivendo al corso a titolo personale, e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo corrente del biglietto.
Per usufruire dello sconto basta cliccare il tasto qui sotto:
Lo sconto non è cumulabile con altri codici promozionali.