学ぶならば「Python」か「R」か

Blog

よく学生や初学者の方から「データサイエンスを学ぶにあたり、PythonとRのどちらを学ぶべきですか?」と質問されます。なので、今回はその点について、自分の私見をまとめておきます。結論から言うと、「目指すべき姿による」になります。

Pythonから学ぶ人

Pythonは、その行列演算処理の特徴から機械学習のパッケージが豊富にあり、汎用プログラミング言語であるため、データベースやWebサーバーといった他の機能と組み合わせることでモデルを実装することもできます。

反面、従来の多変量解析などの手法を計算することは可能ですが、そのアウトプットに関してはあまり理解しやすい形で出力されるとは限りません。別途、自身で計算が必要なこともあります。機械学習モデルは予測の精度に重きを置くため、パラメータを読み解く「モデルの解釈」をそこまで重視していないからでしょう。

なので、「分類や予測の精度に関心があり、それらを実際に利用するためにアプリケーションなどに実装したいエンジニア寄りの方」は、Pythonから学ぶ方が良いと考えます。

Rから学ぶ人

Rは、統計分析の特化型言語になります。そのため、モデルの解釈がしやすいようにアウトプットがわかりやすく設計されています。基本的なモデル評価指標やパラメータなどは名称付きで出力されますし、人が読んで分かりやすいように表示されます。一方、手元のデータや計算能力以上の分析をするのはあまり得意ではありません。データベースに繋いだり、Webサーバーへ実装したりすることも可能ではあるのですが、クセがあるため各分野の一定の知識が必要になるため、あまりおすすめはしません。

なので、「大規模ではないデータに対して分析モデルを解釈し、その結果を用いて意思決定を行うようなコンサルタント的な使い方をしたい人」は、Rから学ぶ方が良いと思います。

PythonとR、両方を学ぶメリット

自身は20年以上前の大学院の頃に、まだ日本にR関連の書籍が全く無く、舟尾 暢男氏が管理されていた【R-tips】(現在は閉鎖された模様)と海外サイトを参考にRを学びました。当時は、Rで統計解析を行い、実装などはRubyという汎用プログラミング言語を使っていました。ただ、機械学習の分野が注目を集めるタイミングで業務上必要となり、Pythonを学び、利用するようになりました。

余談ですが、当時のRの知名度は当然かなり低く、「因子分析の結果がなんでSPSSと結果が違うんだ。そんな怪しいソフトは信じられない。」と言われたこともありました。世界のどこかで同じようなこと言われた方がいたのでしょう。後のパッケージでSPSSと同じ結果になるもの(多分、乱数を合わせたもの)が現れた時は謎の仲間意識が芽生えました(笑)

上記のような経緯を経て、一応、双方を利用している身として言えることは、「片方に限定する必要はなく、両方使えるに越したことはない」ということです。前段でも述べたように、PythonとRにはそれぞれ特徴があります。手元のデータとPCスペックで事足りるのならば、機械学習でもR(※Rにも機械学習モデルは結構あります)を使います。従来の統計モデルでも、その先にアプリケーションによる実装などが必要であれば、Pythonで行います。

重要なのは、「なんのためにデータ分析を行うのかを予め意識し、その目的のためにPythonとRを使い分けられる」ことが重要だと考えます。

コメント

トップへ戻る