Ask HN: What are the most commonly used languages for machine learning?

7 points by dopamean ↗ HN
A coworker just asked me this and I didn't have a clue. Does anyone know of a paper or resource or something that may have some information?

3 comments

[ 2.6 ms ] story [ 23.4 ms ] thread
Short answer: Python and R for academic. Java or C++ for production. Julia has some followers, LUA has a Deep Learning Implementation. Python+CUDA+C++ is very common in deep learning.

---

Chiming in as a machine learning researcher. My experience is primarily focused on the 'deep learning' buzzword at the moment, so people still researching SVM/NN/clustering may have different experiences.

Academic machine learning is starting to shift towards Python. Most (all?) of the main deep learning packages have either Python as the core (like PyLearn2 + Theano) or a strong Python component (like Caffe or DeepLearn). There is some Java presence (like DeepLearning4j) and some C++ mixed in for the very high performance code. Usually people will write the glue code in Python and then do the heavy matrix-intensive operations using PyCuda or cuBLAS (which are, to oversimplify, Python wrappers of C++ calls to CUDA/OpenCL code).

Some of the bigger names in Deep Learning:

(C++ w/ Python & Matlab support) Caffe: https://github.com/BVLC/caffe Their talk has links to a lot of other implementations.

(Python) PyLearn2: https://github.com/lisa-lab/pylearn2 Another popular deep-learning project.

(Java) DeepLearning 4j: https://github.com/agibsonccc/java-deeplearning

(C++ + Python) Cuda-Convnet: https://code.google.com/p/cuda-convnet/ Has C++ for the learning portions and Python glue.

This is a bit off topic but I thought I'd mention, there's a new language being developed specifically for AI / Machine learning by a couple guys in LA called Premise. I saw the main developer demo it at a meetup and it looked very promising.

http://premiseai.tumblr.com/

Certainly not commonly used, but might be worth checking out.