Python

PythonとRはどっちを使うべき!?【データサイエンティストが徹底比較】

Python R
ウマたん
ウマたん
本記事では、データ分析の言語として非常によく使われるPythonとRのどっちを使いべきなのかという議論をしていきたいと思います。昔Rを使っていて最近はPythonばっかり使っている人間がPythonとRの違いを徹底比較していきますので是非理解してくださいね!

こんにちは!

消費財メーカーのデータサイエンティスト、ウマたん(@statistics1012)です。

元々大学院の研究でRを使っていたのですが、企業に入ってからはPythonを使うことが多くなりました。

やはりアカデミックの場ではRが使われることが多いのですが、実務の場ではより広範な範囲を抑えているPythonを使っているケースが多いです。

ロボたん
ロボたん
なんとなーく使っているけど、Pythonの違いってRの違いって結構曖昧だよなー・・・
ウマたん
ウマたん
そうだよねー、PythonにはPythonの良さがRにはRの良さがあるからそこを徹底的に比較していくよ!

そんな経験もふまえて、この記事ではRとPythonの違いを徹底比較していきたいと思います。

以下の動画でも解説していますのでチェックしてみてください!

Pythonの特徴

Python

まずはじめにPythonの特徴についてカンタンにおさえておきましょう!

Pythonは、1991年に開発された言語であり、非常に分かりやすくコードがシンプルであることが特徴的な言語です。

C言語やJavaなどに比べると初心者の敷居が低いプログラミング言語と言えます。

ただ敷居が低いからといって、応用範囲が狭いわけではありません。

データ分析の文脈で使われることは確かに多いですが、単純なデータ分析以外にもできることの幅は広く様々なことが可能です。

Pythonで出来ること

WEBスクレイピング
データベース操作
API連携
Webアプリケーション開発

API連携やWebアプリケーション開発を行えるのでエンジニアに人気な言語でもあります。

AIやデータサイエンスの技術を組み込んだWebアプリケーションを作成する場合はマストでマスターしたい言語ですね!

また、Pythonはディープラーニングの実装に必要なライブラリが多数備わっていて、Rとの差別化ポイントになっています

Pythonでできること7つをコード例をまじえてまとめておく!当サイト【スタビジ】本記事では、Pythonでできることを7つまとめていきます!!Pythonで何ができるのか分からない状況から深い理解にもっていきますよー!実際にPythonでの実装例や勉強方法も取り上げているのでぜひご自分の環境で手を動かして実装してみてくださいね!...

Rの特徴

R

続いて、Rの特徴について見ていきましょう!

Rは1995年に開発された言語で、統計解析専門の言語になっています。

機械学習手法・統計解析まわりのライブラリはそろっており、データ分析において利用されるシーンが多いです。

先ほどPythonはデータ分析以外にも出来ることが多いと述べましたが、RはPythonのように幅広い利用は出来ずデータ分析がメインになっております。

一方でビジュアル化や統計解析に関しては非常に簡単に実装でき結果も分かりやすく優位性があります。

結局PythonとRってどっちがいいの?

python

さて、PythonとRの特徴についてそれぞれ述べてきました。

ロボたん
ロボたん
なんとなーくそれぞれの特徴は分かったけど、結局どっちがいいの?
ウマたん
ウマたん
曖昧な表現になってしまうけど、シーンによってやっぱり使い分けることが重要かな!

正直、どちらの言語も一長一短でどっちが確実に優れているとは言えません。

ただ、個人的には現在Pythonをほぼ使っているので、Pythonを使っておけばまず間違いないとは思っています。

ただ時と場合によってはもちろんRの方が優秀なケースもあるのでやはり使い分けが大事なんですけどねー!

どんなシーンにPythonとRのどちらが有用か簡単に見ていきましょう!

データ分析以外の汎用性であればPython!

先ほどもお話しした通り、Pythonはサーバサイド言語として使うことのできる優秀な言語です。

ウマたん
ウマたん
データ分析だけじゃないのがPythonの魅力だよ!!

結局Webアプリケーションに組み込んだり、API連携など、サーバーサイド言語として利用する際はPythonが有用です。

そのため、エンジニアはPythonを使用することが多いです。

大規模データを扱うならPython!

Rだとメモリを食いやすいため、大規模データを扱う際はPythonが向いています。

また処理速度的にもPythonが優れているケースが多く、データ量が多い時はPythonを使うことをオススメします。

ウマたん
ウマたん
ログデータなどを扱う時は数億レコードの解析もザラだからね!

ディープラーニングを実装するならPython!

ディープラーニングを実装するならPythonが必須!

Rにも一部ディープラーニングを実装するライブラリはありますが、Pythonの方が豊富にそろっています。

ウマたん
ウマたん
そうなんだよー、ディープラーニング系はPythonが必須・・・

またディープラーニングを実装するとなると必然的に大規模データになり処理が重くなるのでRよりもPythonの方がよくなりますね。

簡潔な記述ならR!

ここまでは圧倒的にPythonの方が良さそうに思えますが、Rは簡潔な記述が強みです。

簡単な統計的検定を行う際や回帰分析などの統計解析の枠組みで行う解析の実装と可視化はRの方が簡単に行うことができます。

そのため慣れている人は簡単な統計解析はRで行うという場合は多いみたいです。

ウマたん
ウマたん
Python偏重になってしまっていて、あまりRとの使い分けは出来てないんだけどね・・

予測はPython、説明はR

機械学習と統計学にはスタンスの違いがあります。

機械学習は予測精度を追究し、統計学は現状構造の説明を追究する。

ウマたん
ウマたん
機械学習と統計学の違いは結構大事!

先ほどのディープラーニングをはじめとした最新の手法群はPythonの方が早い段階でパッケージ化されて使えるようになる印象があります。

一方でRは統計学的スタンスに立っているので、現状のデータを簡単に把握することが出来ます。

機械学習的スタンスと統計学的スタンスの違いからPythonとRを見ていただけると違いが分かりやすいかもしれません。

機械学習と統計学の違いについてモノ申す!!当サイト【スタビジ】の本記事では、機械学習と統計学の違いについて考察していきます。定義と境界が曖昧な2つの領域ですが、目的の違いを理解しておくことが大事。機械学習は予測精度を上げることを目的とし統計学はデータ構造の把握をすることを目的とします。...

PythonとRでの実装を見てみよう!

pc python

それでは実際にPythonとRでの実装を見ていきましょう!

データ分析のデータセットとして超定番のirisデータを使っていきます。

ウマたん
ウマたん
irisデータは分かりやすいからよーく登場するよ!!

irisデータとはあやめの種類を分類したデータで目的変数は3カテゴリーの質的変数、説明変数は花びらの幅とか4つです。

サンプルは150個で、分類しやすいデータなのでどんな手法でも割と簡単に分類できるんですが、PythonとRでそれぞれ書いてみるとどうなるでしょう??

ウマたん
ウマたん
どんな手法でも比較的分類しやすいから精度比較をする上ではあまり不適切かなー!

手法はランダムフォレストという決定木アンサンブル(バギング)した手法を使用していきます。

まずはRから!

最終的に予測に対しての実測値をマトリックスで表した表が返ってきます。

まあそれなりの精度で当てられるわけなのですが、これをPythonで実装すると以下のようになります。

基本的にそれほど変わらないのですが、Pythonの方は可視化する際にライブラリをインポートしていますが、Rは標準で備わっていますね。

また、Rは目的変数を含んだデータフレーム型でデータセットを持っておりそのままモデル構築時に目的変数を指定していますが、Pythonは目的変数(ターゲット)と説明変数が別々に格納されております。

PythonとRをそれぞれ勉強する方法

studies book

PythonとRの違いについて徹底的に見てきましたが、実際それらをどのように勉強していけばよいでしょうか?

それぞれの勉強方法についておさえておきましょう!

Pythonのオススメ勉強法

Pythonは色々なサービスが展開していて学べるところはたくさんありますが・・・

自分で進められる自信のある人はUdemyの教材を視聴もしくはPyQを自力で進めた後Kaggleに挑戦してみることをオススメします。

Udemyは世界最大のオンライン学習プラットフォームで非常に分かりやすく色んなコースがあるので自分のやりたいことが明確にきまっている人にオススメ!

以下の記事でPythonコースを徹底比較しています。

Udemy Python
【20コース以上受講】UdemyのおすすめPythonコースを徹底レビュー!当サイト【スタビジ】の本記事では、世界最大の教育プラットフォーム「Udemy」のPython講座を20コース以上受講した僕がそれぞれのコースを徹底的にレビューしていきます!ぜひムダな時間を費やさず目的に沿った効率の良いPython学習を進めてくださいね!...
\30日間返金無料/

PyQはPython特化のオンライン学習サービスで、ひたすらPythonコーディングを行うのにオススメです。

データサイエンスの理論まわりはあまり深く扱っていません。

【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!...

ただUdemyやPyQは個人で進めることになるので、なかなかモチベーションも続きません。

僕自身なかなかお尻に火がつかない人間でプログラミングスクールに通ってPythonを勉強した経験もあります。

完全独学で勉強するのに自身のない人はぜひプログラミングスクールに通ってみることをオススメします!

僕自身は、テックアカデミーというスクールに通ったことがありますが、他にもたくさんPythonを学べるスクールはあります。

以下の記事で比較しています!

Python おすすめ スクール
【2020年最新】Python学習に最適なオンラインスクールおすすめ6選当サイト【スタビジ】の本記事では、実際にスクールに通ったりWebサービスを利用したりしながらPythonを習得した僕がおすすめするオンラインメインのスクールを紹介していきます。正直Python学習スクールは乱立し過ぎていてどれを選べばよいのか難しい!そんな人にぜひ読んで欲しいです...

そしてある程度Pythonの素地が出来上がった後は、データ分析コンペティションのKaggleに挑戦してみることをオススメします!

Kaggleでは企業から提供されるデータを基にお題に沿って精度の高いモデルを構築していきます。

【初心者向けKaggle入門】Kaggleサブミットの前準備と勉強法!当サイト【スタビジ】の本記事では、Kaggleについて解説していきKaggleに挑戦するまでにどのようなことを勉強しておいたらよいのか丁寧に解説していきます。ある程度データサイエンスの土台が出来た後はKaggleに挑戦し、世界各国の猛者と凌ぎを削りましょう!...

Pythonの勉強法については以下の記事でまとめていますので是非チェックしてみください!

Python 勉強
【入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...

Rのオススメ勉強法

正直Rに関しては研究時に論文を読んだり、実際に先行研究のRコードを眺めたりしながら勉強していたので明確な勉強法を伝えるは難しいのですが、以下の書籍が比較的分かりやすくオススメです!

created by Rinker
¥2,970
(2020/10/25 06:15:07時点 Amazon調べ-詳細)

Rを学べるサービスはあまりないんですよね・・・

Rのおすすめ勉強書籍については以下の記事でまとめています。

R Pythonの本
厳選10冊!データ解析(R・Python)の勉強におすすめな本当サイト【スタビジ】の本記事では、PythonとRを勉強するのにおすすめな書籍を徹底的にまとめていきます!書籍だと続かない・・・という人のために書籍以外の勉強法についても紹介していきますのでぜひチェックしてみてください!...

PythonとRの違い まとめ

PythonとRの違いについて徹底的に比較してきましたが、結局どちらも一長一短で使い分けるべきだよーってことです。

一概には言えませんが、アカデミックの世界ではRを使っている方が多く、ビジネスの世界ではPythonを使っている方が多い印象です。

最近はだいぶPythonに偏重してしまっていますが、たまにはRも使ってみるかなーと書きながら思いました。

ロボたん
ロボたん
あんまり違いが分かっていなかったので勉強になったよ!
ウマたん
ウマたん
まあ結局はRもPythonも手段だからね!目的を見失わないようにしようね!

そうなんです。

結局はいくらRが使えてもPythonが使えてもデータから何も生み出せなければ意味がない。

あまり手段にこだわりすぎず、目的を見失わないようにしたいですね!(自戒)

データサイエンティストへの勉強法について以下の記事でまとめていますので是非こちらも合わせてチェックしてみてください!

【入門者向け】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。...
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!