スーツ姿のプロダクトマネージャー

ITで新しいプロダクトを生み出したいすべての人を応援するブログです。

PythonとR

データ分析や機械学習のための環境・道具としては、PythonかRを使うことが多いと思います。私も、両方を使っていますが、だんだんPythonを使うことが多くなってきました。

f:id:ku2t:20180228171343p:plain

データサイエンティストのコミュニティのData Science Centralなどでも、たびたび「Python vs R」のようなトピックスが取り上げられています。

 

www.datasciencecentral.com

www.datasciencecentral.com

ucanalytics.com

 

そこで、Googleトレンドを使って国内の様子を簡単に調べてみました。

 

日本を対象として、ウェブ検索のトレンドを見てみました。Rという言葉のノイズが多そうだったので、カテゴリを科学に絞っています。また、Pythonは汎用的な言語なので、必ずしもデータサイエンスや機械学習のみに使われるものではありませんので、かなりザクッとした図になっている点は、ご了承ください。

粗い見方ですが2014年の中盤頃からPythonの方がRより大きくなってきています。そして、関連ワードとして、機械学習Deep Learningというキーワードが少しずつ増えて来たタイミングにも近いですね。

私はRも好きですが、機械学習Deep Learningを使おうとすると、Pythonの方が楽な場面が多い気がします。その理由としては主に、

  1. Python機械学習ライブラリ scikit-learn がきわめて使いやすいこと
  2. Keras などの Deep Learningオープンソースライブラリの多くが、Pythonからの利用を前提としていたこと
  3. IPythonから発展した Jupyter Notebook の使い勝手が良かったこと
  4. 前処理がプログラマにとってわかりやすいこと

の4つだと思います。これらについて、Rの現状としては、

  1. caret を使うことでRの機械学習ライブラリを統一的に処理できるようになった

  2. R Interface to Keras のようにRでDeep Learningを動かすためのツールが出てきた

  3. Jupyter NotebookでもRを使えるし、従来からあるRStudioの使い勝手はよい
  4. Rでも前処理を楽にできるdplyrとかtidyrがある

というところで、オープンソースならではの早い改善が進んでいます。

現状としては、用途やプロジェクトの状況によって使い分けるということになると思います。