web-dev-qa-db-ja.com

データマイニングのためのRとMatlabの比較

最近、Matlabでコードを作成する代わりに、主にオープンソースであるため、Rの学習を始めました。私は現在、データマイニングと機械学習の分野で働いています。 Rに実装されている多くの機械学習アルゴリズムを見つけましたが、Rに実装されているさまざまなパッケージをまだ調査しています。

私は簡単な質問があります:データマイニングアプリケーション、その人気、長所と短所、業界および学術的受容などについて、RをMatlabとどのように比較しますか?あなたはどちらを選びますか、そしてその理由は?

私はさまざまなメトリックに対してMatlabとRのさまざまな比較を行いましたが、データマイニングとMLでのその適用性について答えを得ることに特に興味があります。どちらの言語も私にとってかなり新しいので、Rが良い選択になるかどうか疑問に思っていました。

どんな提案にも感謝します。

35
iinception

過去3年間ほど、私は毎日Rを使用しており、その毎日の使用の大部分は機械学習/データマイニングの問題に費やされています。

私は大学にいる間、独占的なMatlabユーザーでした。当時、私はそれが優れたツール/プラットフォームのセットだと思っていました。きっと今日もそうだと思います。

ニューラルネットワークツールボックス、最適化ツールボックス、統計ツールボックス、およびカーブフィッティングツールボックスは、ML /データマイニング作業にMATLABを使用するユーザーにとってそれぞれ非常に望ましい(必須ではない場合)が、すべて個別基本的なMATLAB環境から、つまり、別途購入する必要があります。

Rでの学習ML /データマイニングのトップ5リスト

これはいくつかのことを指します:最初に、すべてが始まるRパッケージのグループarules(利用可能CRANから);完全なリスト(arules、aruluesVizなど)は Project Homepage にあります。次に、これらのパッケージはすべて、Market-Basked AnalysisまたはAssociation Rulesとして知られているデータマイニング手法に基づいています。多くの点で、このアルゴリズムファミリーはデータマイニングの本質であり、大規模なトランザクションデータベースを徹底的にトラバースし、それらのデータベースのフィールド(変数または機能)間の平均以上の関連または相関を見つけます。実際には、それらをデータソースに接続して、一晩実行します。上記のセットの中心的なRパッケージはarules;と呼ばれます。 arulesのCRANパッケージページに、いくつかの優れた二次ソース(Rのレキシコンのビネット)へのリンクがあります。 arulesパッケージと一般的なアソシエーションルール手法。

この本の最新版は、デジタル形式でfreeで入手できます。同様に、本のWebサイト(上記のリンク先)には、ESLで使用されるすべてのデータセットがあり、無料でダウンロードできます。 (余談ですが、私は無料のデジタルバージョンを持っています。ハードバックバージョンもBN.comから購入しました。デジタルバージョンのすべてのカラープロットはハードバインドバージョンで再現されています。)ESLには、主要なMLルーブリックのほとんど(例:ニューラルmetworks、SVM、KNN)。教師なし手法(LDA、PCA、MDS、SOM、クラスタリング)、回帰の多数のフレーバー、CART、ベイジアン手法、モデル集約手法(ブースティング、バギング)およびモデル調整(正規化)。最後に、本に付属するRパッケージをCRANから取得します(これにより、データセットを入力する必要がないため、ダウンロードする手間が省けます)。

  • CRANタスクビュー:機械学習

Rで利用可能な+3,500パッケージは、ドメインごとに約30のパッケージファミリまたは「 タスクビュー 」に分割されます。機械学習はこれらのファミリーの1つです。機械学習タスクビューには、約50個のパッケージが含まれています。これらのパッケージの一部は、e1071(通常のMLカテゴリのかなりの数の作業コードを含む、広大なMLパッケージ)を含む、コアディストリビューションの一部です。

Predictive Analyticsでタグ付けされた投稿に特に焦点を当てて

  • ML in R tutorialスライドデッキとJoshによるRコードで構成されるライヒ

コードを徹底的に調査すること自体は、RにおけるMLの優れた入門となります。

そして、私が優れていると思うが、トップ5に含まれなかった最後のリソース:

ブログに投稿A Beautiful WWW

61
doug

CRANタスクビュー 、特にこれをうまくまとめた 機械学習と統計学習のCRANタスクビュー をご覧ください。

9

マトリックスを多用する演算を行う場合は、MatlabとRの両方が適しています。これは、高度に最適化された低レベルコード(BLASライブラリなど)を使用できるためです。

ただし、データマイニングには、行列を処理するだけではありません。多くの人々は、データマイニング(たとえば、単純な機械学習とは対照的)のデータ構成の側面全体を完全に無視しています。

そして、データの整理に取り掛かると、RとMatlabは苦痛になります。 RまたはmatlabでR *ツリーを実装して、O(n^2)アルゴリズムをO(n log n)ランタイムまで削減します。まず第一に、それはRとMatlabが設計されている方法に完全に逆行します(可能な限りバルク演算を使用します)。次に、それはパフォーマンスを低下させます。たとえば、解釈されたRコードは、Cコードの速度の約50%で実行されるようです(R組み込みk平均とflexclus k平均を比較してください);また、BLASライブラリは非常に高いレベルに最適化されており、キャッシュサイズ、データ配置、高度なCPU機能を利用しています。冒険したい場合は、RまたはMatlabに手動の行列乗算を実装して、ネイティブの行列乗算に対してベンチマークしてください。

誤解しないでください。 Rとmatlabがelegantprototypeingに優れているものはたくさんあります。たった10行のコードで多くのことを解決し、そこから適切なパフォーマンスを得ることができます。同じものを手で書くと、何百行もかかり、おそらく10倍遅くなります。しかし、複雑なレベルで最適化できる場合があります。これは、大規模なデータセットの場合doesがRとmatlabの最適化された行列演算に勝るものです。

長期的に「Hadoopサイズ」にスケールアップしたい場合、あなたデータレイアウトと編成についても考慮する必要があります。データの線形スキャンが必要です。しかし、その後、あなたもサンプリングするだけかもしれません!

それはあなたがどの学問分野にいるかにも依存すると思います。多くのMatlabを使用する沿岸調査の人々を知っています。このグループでRを使用すると、生活がより困難になります。同僚が問題を解決した場合、Matlabを使用して修正したため、使用できません。

1
Paul Hiemstra

昨日、データマイニングに関する2冊の新しい本を見つけました。 「データマイニング」と題されたこれらの一連の本は、新しいマイニングアルゴリズムと多くの有用なアプリケーションの詳細な説明を提示することにより、ニーズに対応しています。 2つの本は、各セクションを深く理解することに加えて、問題を解決するための有用なヒントと戦略を次の章に示します。書籍は次のとおりです。「データマイニングの新しい基本テクノロジー」はこちら http://www.intechopen.com/books/show/title/new-fundamental-technologies-in-data-mining &「Knowledge- 「データマイニングにおける指向アプリケーション」はこちら http://www.intechopen.com/books/show/title/knowledge-oriented-applications-in-data-mining これらはオープンアクセスブックなので、ダウンロードできますそれを無料で、または私と同じようにオンラインの読書プラットフォームで読んでください。乾杯!

1
Jonny

これら2つのソフトウェアのOriginソースを忘れてはなりません。科学計算と信号処理はMatlabにつながりますが、統計はRにつながります。

Unixに1つインストールしてすべての学生に公開しているので、私は大学でmatlabをよく使用しました。ただし、Matlabの価格は、特に無料のRと比較して高すぎます。主な焦点が行列の計算と信号処理ではない場合、Rはニーズにうまく機能するはずです。

1
Leo5188

大量のデータを扱う場合にも、それぞれの機能を確認します。私はRがこれに問題を抱えている可能性があることを知っており、反復的なデータマイニングプロセスに慣れている場合は制限が生じる可能性があります。たとえば、複数のモデルを同時に見ます。 MATLABにデータ制限があるかどうかはわかりません。

0
Ralph Winters