# Machine Learning

From Noisebridge

(Difference between revisions)

Mschachter (Talk | contribs) m |
Mschachter (Talk | contribs) m (→Classes) |
||

(48 intermediate revisions by 10 users not shown) | |||

Line 1: | Line 1: | ||

+ | === Join the Mailing List === | ||

+ | |||

+ | https://www.noisebridge.net/mailman/listinfo/ml | ||

+ | |||

=== Next Meeting=== | === Next Meeting=== | ||

− | *When: | + | *When: Thursday, February 13, 2014 @ 6:30pm |

− | *Where: 2169 Mission St. ( | + | *Where: 2169 Mission St. (Church classroom) |

− | *Topic: | + | *Topic: Bayesian Inference for everyone |

− | *Details: | + | *Details: |

− | *Who: | + | *Who: Sam Tepper |

+ | |||

+ | === Learn about Data Science and Machine Learning === | ||

− | === | + | ===== Classes ===== |

− | [ | + | *[https://www.coursera.org/course/ml Coursera Machine Learning Course with Andrew Ng] |

+ | *[https://www.coursera.org/course/compneuro Coursera Computational Neuroscience Course with Adrienne Fairhall] | ||

+ | *[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/ MIT Machine Learning Class with Tommi Jaakkola] | ||

+ | *[http://cs229.stanford.edu/materials.html Stanford CS229] | ||

+ | *[http://www.cs.cmu.edu/~tom/10701_sp11/lectures.shtml Carnegie Mellon Machine Learning Course with Tom Mitchell] | ||

+ | *[http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/ Linear Algebra with Gilbert Strang] | ||

+ | *[https://www.youtube.com/playlist?list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH Neural Networks Class with Hugo Larochelle] | ||

− | === | + | ==== Books ==== |

− | + | *[http://statweb.stanford.edu/~tibs/ElemStatLearn/ Elements of Statistical Learning] | |

+ | *[https://www.google.com/search?client=ubuntu&channel=fs&q=pattern+recognition+and+machine+learning&ie=utf-8&oe=utf-8#channel=fs&q=pattern+recognition+and+machine+learning+pdf Pattern Recognition and Machine Learning] | ||

+ | *[https://www.google.com/search?&channel=fs&q=+Information+Theory%2C+Inference%2C+and+Learning+Algorithms.&ie=utf-8&oe=utf-8#channel=fs&q=Information+Theory%2C+Inference%2C+and+Learning+Algorithms+pdf Information Theory, Inference, and Learning Algorithms] | ||

+ | *[http://chimera.labs.oreilly.com/books/1230000000345 Interactive Data Visualization for the Web (D3)] | ||

+ | *[http://cran.r-project.org/doc/manuals/R-intro.pdf Introduction to R] | ||

+ | *[http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/amsbook.mac.pdf Introduction to Probability (Grinstead and Snell)] | ||

+ | *[http://www.cis.temple.edu/~latecki/Courses/CIS2033-Spring12/A_modern_intro_probability_statistics_Dekking05.pdf Modern Introduction to Probability and Statistics (Kraaikamp and Meester)] | ||

+ | *[http://web4.cs.ucl.ac.uk/staff/D.Barber/textbook/090310.pdf Bayesian Reasoning and Machine Learning] | ||

− | === | + | ==== Tutorials ==== |

− | + | *[http://nbviewer.ipython.org/github/unpingco/Python-for-Signal-Processing/tree/master/ Signal Processing IPython Notebooks] | |

+ | *[http://scikit-learn.org/stable/tutorial/basic/tutorial.html Introduction to ML with scikits.learn] | ||

+ | *[http://www.sagemath.org/doc/tutorial/ Learn how to use SAGE] | ||

− | === | + | ==== Noisebridge ML Class Slides ==== |

− | + | ||

*[[NBML/Workshops/Intro to Machine Learning|Intro to Machine Learning]] | *[[NBML/Workshops/Intro to Machine Learning|Intro to Machine Learning]] | ||

*[[NBML/Workshops/Brief Tour of Statistics|A Brief Tour of Statistics]] | *[[NBML/Workshops/Brief Tour of Statistics|A Brief Tour of Statistics]] | ||

Line 42: | Line 62: | ||

*Working with the Kinect | *Working with the Kinect | ||

*Computer Vision with OpenCV | *Computer Vision with OpenCV | ||

− | |||

− | |||

− | |||

− | |||

=== Projects === | === Projects === | ||

Line 68: | Line 84: | ||

**Upload your algorithm and objectively compare it's performance to other algorithms | **Upload your algorithm and objectively compare it's performance to other algorithms | ||

*[http://www.ntis.gov/products/ssa-dmf.aspx Social Security Death Master File!] | *[http://www.ntis.gov/products/ssa-dmf.aspx Social Security Death Master File!] | ||

+ | *[http://www.sipri.org/databases SIPRI Social Databases] | ||

+ | **Wealth of information on international arms transfers and peace missions. | ||

+ | *[http://aws.amazon.com/publicdatasets/ Amazon AWS Public Datasets] | ||

+ | *[http://www.prio.no/Data/Armed-Conflict/ UCDP/PRIO Armed Conflict Datasets] | ||

+ | *[https://opendata.socrata.com/browse Socrata Government Datasets] | ||

=== Software Tools === | === Software Tools === | ||

Line 86: | Line 107: | ||

**Modular framework, has lots of stuff! | **Modular framework, has lots of stuff! | ||

*[[Machine Learning/VirtualBox|VirtualBox]] Virtual Box Image with Pre-installed Libraries listed here | *[[Machine Learning/VirtualBox|VirtualBox]] Virtual Box Image with Pre-installed Libraries listed here | ||

− | |||

*[http://sympy.org sympy] Does symbolic math | *[http://sympy.org sympy] Does symbolic math | ||

*[http://waffles.sourceforge.net/ Waffles] | *[http://waffles.sourceforge.net/ Waffles] | ||

Line 108: | Line 128: | ||

*[http://www.torch.ch/ Torch] | *[http://www.torch.ch/ Torch] | ||

**MATLAB-like environment for state-of-the art ML libraries written in LUA | **MATLAB-like environment for state-of-the art ML libraries written in LUA | ||

+ | |||

+ | ==== Deep Nets ==== | ||

+ | *[http://deeplearning.net/software/theano/ Theano] | ||

+ | **Symbolic Expressions and Transparent GPU Integration | ||

+ | *[http://caffe.berkeleyvision.org/ Caffe] | ||

+ | **Convolutional Neural Networks on GPU | ||

+ | *[https://code.google.com/p/neurolab/ Neurolab] | ||

+ | **Has support for recurrent neural nets | ||

==== Online ML ==== | ==== Online ML ==== | ||

Line 129: | Line 157: | ||

*[https://github.com/kutschkem/Jayes Jayes] | *[https://github.com/kutschkem/Jayes Jayes] | ||

**Bayesian networks in Java | **Bayesian networks in Java | ||

+ | *[http://tops.sourceforge.net/ ToPS] | ||

+ | **Probabilistic models of sequences | ||

+ | *[http://pymc-devs.github.io/pymc/ PyMC] | ||

+ | **Bayesian Models in Python | ||

==== Text Stuff ==== | ==== Text Stuff ==== | ||

Line 135: | Line 167: | ||

*[http://www.mlsec.org/sally/ SALLY] | *[http://www.mlsec.org/sally/ SALLY] | ||

**Tool for embedding strings into vector spaces | **Tool for embedding strings into vector spaces | ||

+ | *[http://radimrehurek.com/gensim/ Gensim] | ||

+ | **Topic modeling | ||

==== Collaborative Filtering ==== | ==== Collaborative Filtering ==== | ||

Line 181: | Line 215: | ||

*[https://plot.ly/ plot.ly] | *[https://plot.ly/ plot.ly] | ||

**Web-based plotting | **Web-based plotting | ||

− | + | *[http://chimera.labs.oreilly.com/books/1230000000345/ch02.html D3 Ebook] | |

+ | **Has a good list of HTML/CSS/Javascript data visualization tools. | ||

+ | *[https://plot.ly/ plotly] | ||

+ | **Python plotting tool | ||

==== Cluster Computing ==== | ==== Cluster Computing ==== | ||

*[http://lucene.apache.org/mahout/ Mahout] | *[http://lucene.apache.org/mahout/ Mahout] |

## Revision as of 16:57, 18 March 2014

## Contents |

### Join the Mailing List

https://www.noisebridge.net/mailman/listinfo/ml

### Next Meeting

- When: Thursday, February 13, 2014 @ 6:30pm
- Where: 2169 Mission St. (Church classroom)
- Topic: Bayesian Inference for everyone
- Details:
- Who: Sam Tepper

### Learn about Data Science and Machine Learning

##### Classes

- Coursera Machine Learning Course with Andrew Ng
- Coursera Computational Neuroscience Course with Adrienne Fairhall
- MIT Machine Learning Class with Tommi Jaakkola
- Stanford CS229
- Carnegie Mellon Machine Learning Course with Tom Mitchell
- Linear Algebra with Gilbert Strang
- Neural Networks Class with Hugo Larochelle

#### Books

- Elements of Statistical Learning
- Pattern Recognition and Machine Learning
- Information Theory, Inference, and Learning Algorithms
- Interactive Data Visualization for the Web (D3)
- Introduction to R
- Introduction to Probability (Grinstead and Snell)
- Modern Introduction to Probability and Statistics (Kraaikamp and Meester)
- Bayesian Reasoning and Machine Learning

#### Tutorials

#### Noisebridge ML Class Slides

- Intro to Machine Learning
- A Brief Tour of Statistics
- Generalized Linear Models
- Neural Nets Workshop
- Support Vector Machines
- Random Forests
- Independent Components Analysis
- Deep Nets

### Code and SourceForge Site

- We have a Sourceforge Project
- We have a git repository on the project page, accessible as:

git clone git://ml-noisebridge.git.sourceforge.net/gitroot/ml-noisebridge/ml-noisebridge

- Send an email to the list if you want to become an administrator on the site to get write access to the git repo!

### Future Talks and Topics, Ideas

- Random Forests in R
- Restricted Boltzmann Machines (Mike S, some day)
- Analyzing brain cells (Mike S)
- Deep Nets w/ Stacked Autoencoders (Mike S, some day)
- Generalized Linear Models (Mike S, Erin L? some day)
- Graphical Models
- Working with the Kinect
- Computer Vision with OpenCV

### Projects

- Small Group Subproblems
- Fundraising
- Noisebridge Machine Learning Course
- Kaggle Social Network Contest
- KDD Competition 2010
- HIV

### Datasets and Websites

- UCI Machine Learning Repository
- DataSF.org
- Infochimps
- Face Recognition Databases
- Time Series Data Library
- Data Q&A Forum
- Metaoptimize
- Quora ML Page
- A ton of Weather Data
- MLcomp
- Upload your algorithm and objectively compare it's performance to other algorithms

- Social Security Death Master File!
- SIPRI Social Databases
- Wealth of information on international arms transfers and peace missions.

- Amazon AWS Public Datasets
- UCDP/PRIO Armed Conflict Datasets
- Socrata Government Datasets

### Software Tools

#### Generic ML Libraries

- Weka
- a collection of data mining tools and machine learning algorithms.

- scikits.learn
- Machine learning Python package

- scikits.statsmodels
- Statistical models to go with scipy

- PyBrain
- Does feedforward, recurrent, SOM, deep belief nets.

- LIBSVM
- c-based SVM package

- PyML
- MDP
- Modular framework, has lots of stuff!

- VirtualBox Virtual Box Image with Pre-installed Libraries listed here
- sympy Does symbolic math
- Waffles
- Open source C++ set of machine learning command line tools.

- RapidMiner
- Mobile Robotic Programming Toolkit
- nitime
- NeuroImaging in Python, has some good time series analysis stuff and multi-variate response fitting.

- Pandas
- Data analysis workflow in python

- PyTables
- Adds querying capabilities to HDF5 files

- statsmodels
- Regression, time series analysis, statistics stuff for python

- Vowpal Wabbit
- "Intrinsically Fast" implementation of gradient descent for large datasets

- Shogun
- Fast implementations of SVMs

- MLPACK
- High performance scalable ML Library

- Torch
- MATLAB-like environment for state-of-the art ML libraries written in LUA

#### Deep Nets

- Theano
- Symbolic Expressions and Transparent GPU Integration

- Caffe
- Convolutional Neural Networks on GPU

- Neurolab
- Has support for recurrent neural nets

#### Online ML

- MOA (Massive Online Analysis)
- Offshoot of weka, has all online-algorithms

- Jubatus
- Distributed Online ML

- DOGMA
- MATLAB-based online learning stuff

- libol
- oll
- scw-learning

#### Graphical Models

- BUGS
- MCMC for Bayesian Models

- JAGS
- Hierarchical Bayesian Models

- Stan
- A graphical model compiler

- Jayes
- Bayesian networks in Java

- ToPS
- Probabilistic models of sequences

- PyMC
- Bayesian Models in Python

#### Text Stuff

- Beautiful Soup
- Screen-scraping tools

- SALLY
- Tool for embedding strings into vector spaces

- Gensim
- Topic modeling

#### Collaborative Filtering

- PREA
- Personalized Recommendation Algorithms Toolkit

- SVDFeature
- Collaborative Filtering and Ranking Toolkit

#### Computer Vision

- OpenCV
- Computer Vision Library
- Has ML component (SVM, trees, etc)
- Online tutorials here

- DARWIN
- Generic C++ ML and Computer Vision Library

- PetaVision
- Developing a real-time, full-scale model of the primate visual cortex.

#### Audio Processing

- Friture
- Real-time spectrogram generation

- pyo
- Real-time audio signal processing

- PYMir
- A library for reading mp3's into python, and doing analysis

- PRAAT
- Speech analysis toolkit

- Sound Analysis Pro
- Tool for analyzing animal sounds

- Luscinia
- Software for archiving, measuring, and analyzing bioacoustic data

#### Data Visualization

- Orange
- Strong data visualization component

- Gephi
- Graph Visualization

- ggplot
- Nice plotting package for R

- MayaVi2
- 3D Scientific Data Visualization

- Cytoscape
- A JavaScript graph library for analysis and visualisation

- plot.ly
- Web-based plotting

- D3 Ebook
- Has a good list of HTML/CSS/Javascript data visualization tools.

- plotly
- Python plotting tool

#### Cluster Computing

- Mahout
- Hadoop cluster based ML package.

- STAR: Cluster
- Easily build your own Python computing cluster on Amazon EC2

#### Database Stuff

#### Neural Simulation

#### Other

### Presentations and other Materials

- Awesome Machine Learning Applications -- A list of cool applications of ML
- Hands-on Machine Learning, a presentation jbm gave on 2009-01-07.
- http://www.youtube.com/user/StanfordUniversity#g/c/A89DCFA6ADACE599 Stanford Machine Learning online course videos]
- Media:Brief_statistics_slides.pdf, a presentation given on statistics for the machine learning group
- LinkedIn discussion on good resources for data mining and predictive analytics
- Face Recognition Algorithms
- Max Welling's ML classnotes

### Topics to Learn and Teach

NBML Course - Noisebridge Machine Learning Curriculum (work-in-progress)

CS229 - The Stanford Machine learning Course @ noisebridge

- Supervised Learning
- Linear Regression
- Linear Discriminants
- Neural Nets/Radial Basis Functions
- Support Vector Machines
- Classifier Combination [1]
- A basic decision tree builder, recursive and using entropy metrics

- Unsupervised Learning
- Hidden Markov Models
- Clustering: PCA, k-Means, Expectation-Maximization
- Graphical Modeling
- Generative Models: gaussian distribution, multinomial distributions, HMMs, Naive Bayes
- Deep Belief Networks & Restricted Boltzmann Machines

- Reinforcement Learning
- Temporal Difference Learning

- Math, Probability & Statistics
- Metric spaces and what they mean
- Fundamentals of probabilities
- Decision Theory (Bayesian)
- Maximum Likelihood
- Bias/Variance Tradeoff, VC Dimension
- Bagging, Bootstrap, Jacknife [2]
- Information Theory: Entropy, Mutual Information, Gaussian Channels
- Estimation of Misclassification [3]
- No-Free Lunch Theorem [4]

- Machine Learning SDK's

- Applications
- Collective Intelligence & Recommendation Engines