기계 학습 문제를 프로토 타이핑하기 위해 어떤 프로그래밍 언어를 권장합니까?


12

현재 Octave에서 작업하고 있지만 문서화가 좋지 않아 진행 속도가 매우 느립니다.

어떤 언어는 배우고 사용하기 쉽고 기계 학습 문제를 해결하기 위해 잘 문서화되어 있습니까? 작은 데이터 세트 (수천 개의 예제)에서 프로토 타입을 제작하려고하므로 속도는 중요하지 않습니다.

편집 : 추천 엔진을 개발 중입니다. 따라서 정규 선형 회귀, 신경망, SVN 또는 공동 필터링을 사용하고 싶습니다.


1
(이것은 교수의 라이브러리를 사용하여 과정 동안 재미 uuh MATLAB 때문에, 그리고 옥타브하지 않은 내 교수는 MATLAB에 때부터 한 번도, 옥타브 시작 정확하게 동일한 구문을), 그러나 나는 R로 전환하고 간단하게 날아했다 뛰어난 문서와 다양한 라이브러리가 있습니다.
steffen

9
물론 파이썬은 배우고 읽기가 매우 쉽기 때문에 맛의 문제라고 생각합니다. 나는이 링크 제안 : 파이썬-STAT-워크 벤치를 , - 언어를 위해 통계-추론 프로그래밍 무엇을 , 기계 학습 사용 - 파이썬 , Clojure의
스테 펜

1
R, Python 또는 Matlab을 추천합니다. 해결하기에는 너무 광범위한 이유로 Matlab을 삭제했습니다. 통계 담당자에게는 R과 함께 가고 프로그래머에게는 Python과 함께 갈 것입니다. 내부 루프의 경우 C / C ++를 사용합니다. 충분한 규모로 Matlab의 비용은 모든 이점을 능가합니다.
반복자

1
또는, 줄리아를 보라 ...
kjetil b halvorsen

답변:


7

상자 밖에서 무언가를 사용하고 싶다면 Weka가 훌륭한 출발점이 될 수 있습니다. 아무것도 프로그래밍 할 필요가 없습니다. 데이터를 가져 와서 시각화하고 다른 모델로 플레이 할 수 있습니다.

체인의 다음 단계는 R입니다. 특히 R 데이터 구조에 맞게 데이터를 녹이는 것과 관련된 학습 곡선이 있지만 일단 극복하면 많은 노력없이 모든 머신 러닝 기능을 제공하는 수많은 라이브러리가 있습니다.

다음은 머신 러닝 알고리즘을 직접 프로그래밍하는 것입니다. 이미 Octave를 사용하고 대안을 찾고 있기 때문에 다른 시스템에서 알고리즘을 직접 코딩하지 않고 다른 사람이 작성한 라이브러리를 사용하는 것이 좋습니다.

R 경로를 따라 가면 Luis Torgo (R을 사용한 데이터 마이닝 : 사례 연구를 통한 학습)의 책이 매우 유용합니다 (공개 : 제휴 없음). 문제에 적응할 수있는 심층 사례 연구를 설명합니다.


15

관심있는 특정 알고리즘을 지정하면 더 나은 답변을 얻을 수 있습니다. 나는 이런 종류의 일에 R을 사용합니다 (기계 학습이 아니라 시계열 계량 경제학을 사용합니다). 기존 기능을 여기에서 볼 수 있습니다.

http://cran.r-project.org/web/views/MachineLearning.html

그리고 Hastie, Tibshirani 및 Friedman의 통계 학습 요소에 분석을 구현하는 R 코드가 있습니다 .

http://www-stat.stanford.edu/~tibs/ElemStatLearn/

R의 패키징 시스템은 꽤 훌륭하고 사람들이 코드를 문서화하는 것을 방해하며 오픈 소스이므로 항상 구현을 살펴볼 수 있습니다. 필자는 몇 년간 Matlab을 사용하지 않았고 많은 머신 러닝에 사용하지 않았습니다. 툴박스는 일반적으로 잘 문서화되어 있지만 비용이 많이 들지만 사용자가 제공 한 코드는 다른 문서와 마찬가지로 문서화가 잘되지 않습니다.


11

기계 학습 온라인 과정에서 Andrew Ng 는 Octave / Matlab 사용을 제안합니다.

이 과정의 다음 버전에 등록하는 것이 좋습니다. 실제로 유용하며 Octave 및 다양한 기계 학습 알고리즘에 대해 많은 것을 배우게됩니다.

편집 1 : R에서 일하는 것을 선호하는 다른 사람들과 동의하지만 기계 학습의 문제를 해결하기 위해 대부분의 계산은 행렬 형식이며 @Wayne, Matlab 또는 Octave 언어에서 지적한 것처럼 매우 인기가 있습니다. 그들의 힘 때문에. 다른 학생들이 제안한 기계 학습 과정 연습에 대한 솔루션을 살펴볼 수도 있습니다. 분명히 당신은 그들로부터 몇 가지를 배울 수 있습니다 :

고 카이젤 깃 허브

메르 완 깃 허브


1
이 강좌에 등록했습니다! 문제는 코스 밖에서 가장 간단한 일을하는 것이 효과가 없다는 것입니다! 문서는 쓸모가 없습니다.
B 세븐

3
Matlab (따라서 Octave)은 끔찍한 프로그래밍 언어라고 말해야합니다. 공학 및 기계 학습 분야에서 매우 인기가 있지만, 그것은 현대적인 프로그래밍 언어가 아니라 그 힘으로 인해 학교에서 사용되기 때문입니다. 즉, R 또는 Python을 사용하는 것보다이를 사용하는 기계 학습 텍스트가 발생할 가능성이 높습니다.
Wayne

1
저는 MATLAB에서 모든 작업을 수행합니다.이 언어는 세계 최고의 프로그래밍 언어는 아니지만 (R은 더 나빴습니다 .o) 기계 학습 연구에 매우 적합하기 때문에 인내 할 가치가 있습니다. 신경망의 경우 NETLAB 라이브러리를 찾고 GPML 라이브러리로 가우시안 프로세스를 조사하십시오. 두 키트 모두 우수한 키트이며 IIRC는 모두 옥타브와 함께 작동합니다. 정규 선형 회귀 분석의 경우 MATLAB의 한 줄에 불과하며 비선형 모델의 경우 GKM 도구 상자 인 theoval.cmp.uea.ac.uk/projects/gkm (아직 미안하지 않음)이 있습니다.
Dikran Marsupial

1
매트릭스 계산은 R에서도 수행 할 수 있지만, 예를 들어 표기법 t(A) %*% B은 Matlab보다 직관적이지 않습니다.
Itamar

1
C #, Java, Python 및 Perl과 같은 모든 고급 언어에 적합한 매트릭스 라이브러리가 있습니까?
B Seven

10

scikit은 배우기 (현재 sklearn) 대상 응용 프로그램 (L1 / L2 범 회귀, SVM 등)을 포함하여, 당신은 (데이터, 모델 및 결과를 처리하기 위해 속도, 잘 설계된 클래스) 기술 기준의 몇 가지를 충족해야합니다. 풍부한 문서 세트 와 많은 예제 가 함께 제공됩니다 . JMLR에 게시 된 논문 의 설명도 참조하십시오 .

Python의 대체 프레임 워크는 Orange입니다 .이 인터페이스는 부드러운 GUI를 통해 또는 명령 줄에서 직접 사용할 수 있습니다. 협업 필터링의 경우 pyrsvd흥미로울 수 있지만 시도한 적이 없습니다. 그러나 Apache Mahout협업 필터링에 사용될 수 있습니다 .


1

산업 프로토 타입 (실제 사람들이 사용하고 순수 연구용으로 사용하지 않는 것)을 언급한다면, 파이썬은 현재 갈 수있는 유일한 방법입니다.

Matlab, Octave 또는 R을 사용하면 ML 연구에 사용하기 쉬운 환경을 얻을 수 있지만 모델을 사용자 인터페이스 또는 웹 서비스와 함께 사용하는 것은 악몽이 될 것입니다.

파이썬에서 우리는 (광범위한 과학 생태계 모두가 행운 sklearn을 시각화를위한 wragling 데이터 팬더,하기 matplotlib / 시본, ML 용) 및 애플리케이션 생태계 (생각 장고와 나머지 프레임 워크 ).

파이썬 배우기 쉬운 언어입니다. 앞으로 나는 자바 스크립트 생태계가 과학적으로 파이썬처럼 들리기를 희망하지만, 훌륭한 프로젝트에도 불구하고 곧 그런 일이 일어나지 않을 것입니다.

상자에 싸지 말고 일반적인 언어를 사용하십시오!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.