Download presentation
Presentation is loading. Please wait.
Published byJaden Pendell Modified over 10 years ago
1
Machine Learning on.NET F# FTW!
2
A few words about me Mathias Brandewinder / @brandewinder Background: economics, operations research .NET developer for 10~ years (C#, F#) Bay.Net San Francisco, SFSharp.org Yes I have an accent www.clear-lines.com/blog www.clear-lines.com/blog
3
I am assuming… Few familiar with F# Mostly unfamiliar with Data Science / Machine Learning Mostly familiar with C#, VB.NET Some familiar with Functional Languages
4
Why this talk Machine Learning, Data Science are red-hot topics ›... and relevant to developers .NET is under-represented
5
My goal Can’t introduce F#, Machine Learning under 1h Give you a sense for what Machine Learning is ›Highlight some differences with “standard” development ›Mostly live code Illustrate why I think F# is a great fit
6
What is Machine Learning? "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E“ [Tom M. Mitchell]
7
In English, please? Program performs a Task using Data The more Data, the better it gets Rooted in statistics, math A Computer Science problem as well ›Used in live software, with changing data
8
The plan Classification Regression Unsupervised Type Providers Existing.NET libraries Algebra Functional fit
9
Classification & Regression
10
Goal What does “a day of Machine Learning” look like? Illustrate Classification and Regression
11
Classification, Regression Classification = using data to classify items ›Ex: Spam vs. Ham, Character Recognition, … Regression = predicting a number ›Ex: predict price of item given attributes, … Both belong to Supervised Learning ›You know what question you are trying to answer ›You use data to fit a predictive model
12
Support Vector Machine Classic algorithm Tries to separate the 2 classes by the widest possible margin Using Accord.NET implementation
13
Demo
14
Take-aways F# is a first-class citizen in.NET Decent libraries: Accord.NET, Math.NET, Alea.cuBase, … Interactive experience with the REPL Syntax matters! Classification, Regression, Cross-Validation
15
Unsupervised
16
Goal Illustrate unsupervised learning Functional programming and ML are a great fit
17
Writing your own Usually not advised Useful for ML because ›You don’t always have a library ›As you learn your domain, you may need a custom model
18
Most ML algorithms are the same Read data Transform into Features Learn a Model from the Features Evaluate Model quality
19
Translates well to FP Read data Transform into Features -> Map Learn a Model from the Features -> Recursion Evaluate Model quality -> Fold/Reduce
20
Focus on transforms, not objects Need to transform rapidly Features ›Don’t force your domain to fit my algorithm ›Morph around the shape of the data, pass functions ›Algorithms need to be generic FP is fantastic for code reuse
21
What is Unsupervised Learning? “Tell me something about my data” Example: Clustering ›Find groups of “similar” entities in my dataset
22
Example: clustering (1)
23
Example: clustering (2) “Assign to closest Centroid” [Distance]
24
Example: clustering (3) “Update Centroids based on Cluster” [Reduce]
25
Example: clustering (4) “Stop when no change” [Recursion]
26
Demo
27
Type Providers
28
No data, no learning Most of ML effort is spent acquiring data Most of the World is not in your Type System Unpleasant trade-off: ›Dynamic: easy hacking but runtime exceptions ›Static: safer, but straight-jacket
29
Demo
30
Conclusion
31
F# is a perfect fit for ML on.NET Functional style fits very well with ML REPL/interactive experience is crucial Smooth integration with all of.NET Type Providers: static types, without the pain
32
My recommendation Take a look at Machine Learning, Data Science Do it with a functional language … and preferably, do it using F# Workshop this Friday!
33
Getting involved Very dynamic community FSharp.org, the F# Foundation Machine Learning working group, FsLab.org Kaggle.com
34
Contacting me mathias@clear-lines.com @brandewinder
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.