Data Science and Machine Learning in Go

GoTO Meetup – November 24, 2016

Kent English

http://zeroviscosity.com
@kentenglish

Senior Software Engineer at Uncharted Software

http://uncharted.software

R vs Python

R vs Python

Powerful but...

Turtle

How about Go?

Gopher Coding

gophernotes

gophernotes

Go on the Jupyter Notebook

gonum

gonum

Linear algebra (LAPACK/BLAS), stats, matrix, graph, plotting, optimization, etc.

GoLearn

GoLearn

ML for Go: clustering, linear/logistic regression, random forest, etc.

Demo Time

TensorFlow

TensorFlow

Numerical computation using data flow graphs

Go bindings are in the works but not yet stable

Glow

Easy-to-use distributed computation system written in Go

Gleam

Distributed map/reduce system written in Go and LuaJIT

gRPC

gRPC

RPC with Protocol Buffers

Demo Time

Also...

  • Gorgonia: ML in the vein of Theano/TensorFlow
  • Gota: Dataframes and data wrangling
  • Fit: Toolkit for exploring and manipulating datasets
  • word2vec: Perform computations in word2vec binary models
  • SciPipe: Scientific workflow system inspired by Flow-based Programming
  • and on and on...

Caveats

  • Early days
  • Lack of libraries

 

However...

Enthusiastic and prolific community

Resources

  • #data-science on Gopher Slack

  • GopherDS Resources - curated lists of blogs, conferences, tooling, packages, etc.