機械学習の問題のプロトタイプを作成するには、どのプログラミング言語をお勧めしますか?


12

現在Octaveで作業していますが、ドキュメントが不十分なため、進捗は非常に遅くなっています。

どの言語が学習および使用が簡単で、機械学習の問題を解決するために十分に文書化されていますか?私は小さなデータセット(数千の例)のプロトタイプを探しているので、速度は重要ではありません。

編集:私は推奨エンジンを開発しています。したがって、私は正則化線形回帰、ニューラルネット、SVN、または協調フィルタリングの使用に興味があります。


1
私はかつてOctaveから始めましたが、これはprofがmatlabに入っていたからです(ええと、これはprofのライブラリーを使用したコースワークでは楽しかったです。matlabとoctaveの構文はまったく同じではないためです)。その後、Rに切り替えて単純に吹き飛ばされましたそれによって、優れたドキュメントとさまざまなライブラリがあります。
steffen '12

9
もちろん、Pythonは非常に学習しやすく、読みやすいので、好みの問題だと思います。私はこれらのリンクをお勧めします:python-stat-workbenchwhat-programming-language-for-statistical-inferencemachine-learning-using-pythonclojure
steffen

1
R、Python、またはMatlabをお勧めします。対処するには広すぎる理由のため、Matlabを削除します。統計の人はRを使い、プログラマーはPythonを使います。内側のループについては、C / C ++を使用します。十分な規模で、Matlabのコストはどのようなメリットも超えています。
イテレータ2012

1
または、ジュリアを見てください...
kjetil b halvorsen '19

回答:


7

すぐに使えるものを使いたい場合は、Wekaが出発点として最適です。何もプログラムする必要はありません。データをインポートして視覚化し、さまざまなモデルで遊んでみます。

チェーンの次はRになります。特に、Rデータ構造に適合するようにデータを変更することで、学習曲線が関連付けられますが、それを乗り越えると、多くの労力をかけずにすべての機械学習機能を提供する多数のライブラリがあります。

次は、機械学習アルゴリズムを手動でプログラミングします。すでにOctaveを使用していて代替案を探しているので、他のシステムでコードアルゴリズムを渡すのではなく、他の人が作成したライブラリーを使用するだけでよいでしょう。

Rパスをたどると、Luis Torgo著の本(Rを使用したデータマイニング:ケーススタディを使用した学習)が非常に役立つことがあります(開示:所属なし)。問題に適応できるケーススタディについて詳しく説明します。


15

興味のある特定のアルゴリズムを指定すると、より良い答えが得られる可能性があります。この種のことにはRを使用します(ただし、機械学習ではなく、時系列計量経済学を使用します)。ここで既存の機能を確認できます。

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

そして、ハスティー、ティブシラーニ、フリードマンの統計学習要素に分析を実装するRコードがあります。

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

Rのパッケージングシステムは非常に優れており、コードのドキュメント化に向けて人々を惹きつけます。これはオープンソースであるため、いつでも実装を確認できます。私は数年前にMatlabを使用していなかったため、多くの機械学習に使用していませんでした-それらのツールボックスは通常十分に文書化されていますが、高価になる可能性がありますが、ユーザーが提供したコードは他の文書ほど文書化されていません。


11

Andrew Ngは、機械学習のオンラインコースでOctave / Matlabの使用を提案しています。

このコースの次のエディションに登録することをお勧めします。これは本当に便利で、Octaveやさまざまな機械学習アルゴリズムについて多くのことを学びます。

編集1:私はRで作業することを好む他の人々に同意します。ただし、機械学習の問題を解決する場合、ほとんどの計算は行列形式で行われ、@ Wayne、Matlab、またはOctave言語で非常に人気があります彼らの力のために。他の学生が提案した機械学習コースの演習のソリューションを確認することをお勧めします。きっとあなたはそれらからいくつかのことを学ぶことができます:

Gkokaisel Github

Merwan Github


1
コースのこのエディションに登録しています!問題は、コース外で最も単純なことをしてもうまくいかないことです。ドキュメントは役に立たない。
B 7

3
Matlab(したがってOctave)はひどいプログラミング言語だと言わざるを得ません。エンジニアリングや機械学習の分野で非常に人気がありますが、それはその力と学校で使用されているためです。現代のプログラミング言語ではないからです。とはいえ、RやPythonを使用するよりも、それを使用する機械学習テキストに遭遇する可能性が高くなります。
ウェイン

1
私はすべての作業をMATLABで行っていますが、これは世界で最高のプログラミング言語ではありません(Rの方がさらに悪かったと思います; o)。ニューラルネットワークの場合は、NETLABライブラリを探し、GPMLライブラリでガウスプロセスを調査します。どちらもキットの優れたビットであり、IIRCはどちらもオクターブで動作します。正則化線形回帰の場合、これはMATLABの1行のみです。非線形モデルの場合、GKMツールボックス、theoval.cmp.uea.ac.uk / projects / gkmがあります(まだ申し訳ありませんが、まだありません)。
Dikran Marsupial 2011

1
行列の計算はRでも行うことができますが、たとえば、の表記t(A) %*% BはMatlabよりも直感的ではありません。
Itamar

1
C#、Java、Python、Perlなどのすべての高水準言語に適したマトリックスライブラリはありませんか?
Bセブン

10

scikit-学ぶ(今はsklearn)あなたがターゲットとするアプリケーション(L1 / L2等回帰、SVMを、ペナルティ)を含む、(速度、データ、モデル、および結果を処理するためのうまく設計されたクラス)に記載の条件のいくつかを満たす必要があります。豊富なドキュメントセットと多くのが付属しています。JMLRで公開された論文の説明も参照してください。

Pythonの代替フレームワークはOrangeで、穏やかなGUIまたはコマンドラインから直接使用できます。協調フィルタリングの場合、pyrsvdは興味深いかもしれませんが、試したことはありません。ただし、Apache Mahoutは確かに協調フィルタリングに使用できます


1

工業用プロトタイプ(つまり、純粋な研究ではなく実際の人が使用するために行われるもの)を参照する場合、現時点ではpythonが唯一の方法です。

Matlab、Octave、またはRを使用する場合、ML研究のための使いやすい環境が得られますが、ユーザーインターフェースまたはWebサービスを使用してモデルを機能させるのは悪夢になります。

Pythonで、私たちは、大規模な科学的なエコシステム(両方持っているラッキーですsklearn(考える可視化のためのMLのため、データwraglingためのパンダ、matplotlibの/ seaborn)とアプリケーションのエコシステムをジャンゴと、その静止フレームワーク)。

Pythonは学ぶのが簡単な言語です。将来的には、JavaScriptエコシステムがpythonエコシステムとして科学的に健全になることを願っていますが、いくつかの素晴らしいプロジェクトにもかかわらず、すぐには実現しないと思います。

ボックスに身を包むのではなく、一般的な言語を使用してください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.