기계학습을 구현하기 위해서 어떤 언어가 좋은가?


원제: Best Programming Language for Machine Learning


아래는 기계학습을 위해서 사람들이 선택한 언어를 나타낸다.




We ran a brief analysis on the tools Kagglers used and wanted to share the results.  The open source package R was a clear favorite, with 543 of the 1714 users listing their tools including it.  Matlab came in second with 218 users.  The graph shows the tools that at least 20 users listed in their profile.


Machine Learning Languages


MATLAB/Octave

깊이 있게 내부를 구현해보고 싶을때 사용할 수 있는 언어이다.

matrix 연산에 특화된 도구이다.

R

statistical analysis에 특화된 언어이다.

machine learning 알고리즘도 많이 구현 되어있다.

확장성도 용이하다.


Python

NumPY로 MATLAB과 같은 행렬 연산 가능

SciPy로 machine learning 알고리즘 구현 가능


Java-family / C-family

여기에는 강건한 라이브러리르 들이 많이 있다.

Weka(java), LibSVM(C++) 등이 하나의 예이다.

성능관점에도 C는 유용하다.





Programming Languages for Machine Learning Implementations

Speed

python과 java 같은 경우 garbage collection이 문제이다.


Programming Ease

매우 주관적인 부분이지만 그래도 차이는 존재 한다.

1) Syntax: 일반언어처럼 자연스러우며 간결해야 한다. 

2) Library support: linear algebra, graphics, IO 등과 같은 라이브러리를 효율적으로 제공 해줘야 한다.

3) Built in Functionality: 자료구조, module 등을 의미 한다.

4) Scalability: 

5) Familiarity


The existing significantly used machine learning code bases seem to favor lower level languages.

  1. Weka is one of the best known general purpose machine learning toolkits. It is implemented in Java and has far more algorithmic coverage than any other system I know of.
  2. LibSVM is implemented in C++ and Java.
  3. SVMlight is implemented in C.
  4. C4.5 is implemented in C.
  5. SNNS is written in C.







+ Recent posts