Machine Learning on .NET FTW: A few words about me


Mathias Brandewinder discusses his background in economics and operations research and his experience with machine learning on the .NET framework.
- Uploaded on | 2 Views
-
millielewis
About Machine Learning on .NET FTW: A few words about me
PowerPoint presentation about 'Machine Learning on .NET FTW: A few words about me'. This presentation describes the topic on Mathias Brandewinder discusses his background in economics and operations research and his experience with machine learning on the .NET framework.. The key topics included in this slideshow are . Download this presentation absolutely free.
Presentation Transcript
Slide1Machine Learning on.NET F# FTW!
Slide2A 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
Slide3I am assuming… Few familiar with F# Mostly unfamiliar with Data Science / Machine Learning Mostly familiar with C#, VB.NET Some familiar with Functional Languages
Slide4Why this talk Machine Learning, Data Science are red-hot topics › ... and relevant to developers .NET is under-represented
Slide5My 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
Slide6What 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]
Slide7In 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
Slide8The plan Classification Regression Unsupervised Type Providers Existing .NET libraries Algebra Functional fit
Slide9Classification & Regression
Slide10Goal What does “a day of Machine Learning” look like? Illustrate Classification and Regression
Slide11Classification, 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
Slide12Support Vector Machine Classic algorithm Tries to separate the 2 classes by the widest possible margin Using Accord.NET implementation
Slide13Demo
Slide14Take-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
Slide15Unsupervised
Slide16Goal Illustrate unsupervised learning Functional programming and ML are a great fit
Slide17Writing 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
Slide18Most ML algorithms are the same Read data Transform into Features Learn a Model from the Features Evaluate Model quality
Slide19Translates well to FP Read data Transform into Features -> Map Learn a Model from the Features -> Recursion Evaluate Model quality -> Fold/Reduce
Slide20Focus 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
Slide21What is Unsupervised Learning? “Tell me something about my data” Example: Clustering › Find groups of “similar” entities in my dataset
Slide22Example: clustering (1)
Slide23Example: clustering (2)“Assign to closest Centroid” [Distance]
Slide24Example: clustering (3)“Update Centroids based on Cluster” [ Reduce ]
Slide25Example: clustering (4)“Stop when no change” [Recursion]
Slide26Demo
Slide27Type Providers
Slide28No 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
Slide29Demo
Slide30Conclusion
Slide31F# 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
Slide32My recommendation Take a look at Machine Learning, Data Science Do it with a functional language … and preferably, do it using F# Workshop this Friday!
Slide33Getting involved Very dynamic community FSharp.org, the F# Foundation Machine Learning working group, FsLab.org Kaggle.com
Slide34Contacting me mathias@clear-lines.com @brandewinder