【IT】データサイエンス向け言語はRとPythonのどっち?

■ このスレッドは過去ログ倉庫に格納されています
0001田杉山脈 ★2019/06/21(金) 12:01:56.83ID:CAP_USER
このほど、「matloff/R-vs.-Python-for-Data-Science|GitHub」に、データサイエンスで利用するという観点からプログラミング言語であるRとPythonを比較した記事が掲載された。これまで、データサイエンスの分野ではRが使われることが多かったが、近年はPythonの利用が進んでいる。

記事の執筆者であるNorm Matloff氏はカリフォルニア大学デービス校におけるコンピュータサイエンスの教授。以前は、同大学で統計学の教授だったようだ。同氏はR関連の書籍を4冊執筆しているほか、現在はR Journalの編集長を務めている。同氏はこれまでの経験および統計学者/コンピュータ学者という視点から、今回のトピックに関して有用な光を当てることができるだろうと説明している。

執筆段階で掲載されている比較の主な内容は次のとおり。

項目 内容
優雅さ 明らかにPythonの勝ち。主観的ではあるもの、これまでさまざまなプログラミング言語を使ってきた経験や教育してきた経験から、Pythonにおける括弧や中括弧の利用が大幅に減少したことにとても感謝している

学習曲線 Rの大勝利。Pythonを使ってデータサイエンスを始めるにはNumPy、Pandas、matplotlibなど、Python以外のライブラリについて学ぶ必要がある。また、パッケージ構成も時に難しい。Pythonに比べると、Rには行列型と基本的なグラフが最初から組み込まれており、数分以内に簡単なデータ解析を行うことができる

データサイエンス向けライブラリ Rがちょっとだけ優勢。CRANに登録されているパッケージは1万4000個ほど、PyPIに登録されているパッケージは18万3000個ほどとPytPIのほうが多い。しかし、データサイエンスに関するものはそれほど多くない

機械学習 Pythonがちょっとだけ優勢。多くの人にとって機械学習はNNを意味しており、NN用ソフトウェアの多くはPythonに関連している

統計的な正確さ Rの大勝利。Rは統計学者によって統計学者のために開発されている

並列計算 引き分け。RもPythonもベースバージョンはマルチコア計算に対して優れたサポートを提供しているとは言い難い

C/C++インタフェース Rがちょっとだけ優勢。どちらにもC/C++インタフェースは存在しているが、PythonのそれはRと比べるとそれほど強力なものではない

オブジェクト指向/メタプログラミング Rがちょっとだけ優勢。どちらもオブジェクト指向をサポートしているが、RのほうがPythonよりも真剣度が高い

言語の統一性 Rはとてもひどい状況。Rは複数の実装系が存在しており、使っていない実装系のコードは読むことが難しい状況になっている

リンクデータ構造 Pythonの勝ち。Pythonでは簡単に実装することができる

オンラインヘルプ Rの大勝利。Rのhelp()関数はPythonよりも情報が多い
以下ソース
https://news.mynavi.jp/article/20190619-845288/

0114名刺は切らしておりまして2019/06/26(水) 01:15:26.81ID:e5c7nLP5
>>109
プログラム書きで食っていくんなら変な癖がついたら困るとかいうのもわかるけど
そうじゃないんなら我流でも便利に使えればどうでもいいこと。

0115名刺は切らしておりまして2019/06/26(水) 02:39:24.60ID:Cr7GuPtU
>>107

おおっと、Pandas の悪口はそこまでだ!

0116名刺は切らしておりまして2019/06/26(水) 06:43:04.16ID:EkqfFw2O
>>61
文系的な理解だと一種の判別分析だと思ってる。間違ってる?

0117名刺は切らしておりまして2019/06/26(水) 07:48:54.38ID:JTtCxs+l
>>116
機械学習の殆どはまだ判別機のレベル
去年論文発表されたネタからやっと少し先に進めるかもしれないかもとみんなが期待してる感じ。実際に案件で使ってみたと言うことは聞いたことがないよ。

統計は予知から予測に近くなってきた感じ。予想に行き着くには全然遠い。

0118名刺は切らしておりまして2019/06/26(水) 09:33:11.77ID:OzEH6WKp
>>117
もう、・・・よそう

0119名刺は切らしておりまして2019/06/26(水) 09:37:04.65ID:dAb6vlBU
>>118
洒落なのはわかるけど…
クライアントによっては、詐欺師まがいのコンサルに踊らされて変な期待しすぎは本当にもうよしたほうが…って思うなぁ

0120名刺は切らしておりまして2019/06/26(水) 11:52:19.50ID:/5C+3UMz
AI のイメージとダブるんだが、区別はあっても無いようなものなのか?
沢山あるデータから、複数の観点で情報を抽出して分析するお仕事かと思ったが。

0121名刺は切らしておりまして2019/06/26(水) 12:14:00.13ID:1ai7zQUy
過去のデータの分布が将来も同じなら
程度の予想はラプラスの時代からできてるしな

0122名刺は切らしておりまして2019/06/26(水) 12:40:50.10ID:FLP+7mqB
統計情報を用いて予測モデルを作るお仕事です
機械学習の一部の分野
人間の役割はアノテーションを行いモデルを誘導する、所謂データの前処理を主に行うのでデーターサイエンティストと言われているんだと理解しているよ

0123名刺は切らしておりまして2019/06/26(水) 13:33:03.99ID:WDzMLjwh
>>120
明確な区別はなく基礎となる技術も手法もおおいにかぶってるけど、

統計学=値の分布を分析・評価する
機械学習=値の分布のモデルを仮定し推測する。通常の統計学より高次元データが多い。
人工知能=コンピュータに学習させ難しいことをやらせる

ベン図書いたらほとんど被ってるといっていい

0124名刺は切らしておりまして2019/06/26(水) 15:24:10.05ID:34hb3Ily
データサイエンスって人工知能エンジニアリングとほぼ同義なの?

0125名刺は切らしておりまして2019/06/26(水) 16:41:24.11ID:ILLohe3P
>>124
データサイエンスのほうが広いかな

0126名刺は切らしておりまして2019/06/26(水) 17:23:53.35
データサイエンスはお客さんの要求をどうやって学習させるかを考えて正解率を上げる人
人工知能エンジニアリングは学者でスピードと正解率を上げる方法を考える人
1ヶ月、機械学習を勉強しての定義はこんな感じ

0127名刺は切らしておりまして2019/06/26(水) 17:42:56.92ID:ILLohe3P
>>126
統計屋は?

0128名刺は切らしておりまして2019/06/26(水) 18:21:49.38
統計屋+機械学習構築屋=データサイエンティストなのかな

0129名刺は切らしておりまして2019/06/26(水) 19:08:45.67ID:ILLohe3P
>>128
それ、宇宙人だよ…
どれか一つでも一人前にできて、ビジネスに応用できたら、データサイエンティストでよかない?

0130名刺は切らしておりまして2019/06/26(水) 19:14:53.84
データサイエンティストって東大数学科の博士課程の人が
アルバイトでやってるイメージ

0131名刺は切らしておりまして2019/06/26(水) 20:30:55.30ID:1ai7zQUy
数学
→統計論
〜〜↑数学科の人たち〜〜
→応用統計学(応用数学)微妙な領域
〜〜物理とか生物とか↓〜〜
→でーたどうのこうの機械学習横文字多数

こういうイメージ

0132名刺は切らしておりまして2019/06/26(水) 20:49:48.54ID:LDZlD18F
Pythonはせめて10年コードが使えるように命令文を変えるな

0133名刺は切らしておりまして2019/06/26(水) 22:25:06.91ID:60gftvkL
python 4でI/Fを刷新しますん??

0134名刺は切らしておりまして2019/06/27(木) 06:51:43.61ID:bCXVVIIv
研究者のコーディングが幼稚なわけ
スブの素人でも支障がないコーディングができるほどソフトウェア工学は発展してないし
大学で片手間にやった程度の素人がひらめけるほどソフトウェア工学が取り組んだ問題は浅くない

0135名刺は切らしておりまして2019/06/27(木) 08:11:19.74ID:T0rrtdNL
>>132
そこなんだよな
2->3 de 移植性が亡かったから
10年先つかえるか不安な言語
また書きなおしとか効率悪い

0136名刺は切らしておりまして2019/06/27(木) 08:15:13.46ID:zwVW4Q0A
>>134
おまえのような自閉症のアホにもわかるように教えてやると
研究者はソフトウェア工学を研究しているのではない。
人間の知覚をモデル化する研究に取り組んでるんだよ。

だから、コーディングなんてPythonで充分なの。
アイデアやアルゴリズムをテストしたいだけ。

0137名刺は切らしておりまして2019/06/27(木) 08:19:40.57ID:zwVW4Q0A
>>123
>機械学習=値の分布のモデルを仮定し推測する。通常の統計学より高次元データが多い。
>人工知能=コンピュータに学習させ難しいことをやらせる

これじゃどっちも同じだろうが。

人工知能は人間の知覚をモデル化したアルゴリズムを実装しているところに特徴があるんだよ
そもそもプログラマーは脳科学なんて素人だから、こういう中途半端な説明に終始する。

0138名刺は切らしておりまして2019/06/27(木) 09:13:13.35ID:bPi2z2M7
>>136
Pythonである必要すらないぞ?
ほしい計算結果が一番早く出るやつなら何でも良い

0139名刺は切らしておりまして2019/06/27(木) 09:41:02.70ID:6ObXvRij
Cのライブラリを呼べればどんな言語でもいい。

0140名刺は切らしておりまして2019/06/27(木) 11:56:22.84ID:tDjUMRIW
>>137
> 人工知能は人間の知覚をモデル化したアルゴリズムを実装しているところに特徴があるんだよ
研究対象としては面白いが、工学的には割とどうでもいい。
人間とは違ったモデルのほうが性能いいかもしれないし。
一生懸命二足歩行をモデリングして再現するより、車輪で移動したほうが速いのと同様。

0141名刺は切らしておりまして2019/06/27(木) 19:04:33.60ID:fYRU4FaW
>>107
汎用性が高く、素人初心者にも解りやすく、綺麗なコードが書けるようになるプログラム教えてくだちい

0142名刺は切らしておりまして2019/06/27(木) 19:42:11.25ID:dkDi6/eJ
>>141
最初は教材の多い汎用的な言語で勉強した方がいい。
JavaとかC++とかC#とか。この辺できてりゃほかの言語はすぐできるようになるし。

PythonやRはプログラミング初心者向けの良書が少ない。

0143名刺は切らしておりまして2019/06/27(木) 19:47:27.03ID:dkDi6/eJ
受託開発とかと同レベルのコーディング品質でなくてもいいけど、
自分だけで解析するにしても最低限のコーディングの基本やソフトウェアエンジニアリングは知っておいた方がいいぞ。

グローバル変数避けるとか、関数・プロシージャに分けるとか、
分かりやすい関数名や変数名をつけるとか、並列化時はリソースの同時アクセスに気をつけるとか、
メモリリークを避けるとか、そういうのは誰がプログラミングしても当たり前に知っておくべきこと。

あと意外と研究者にとっても大事なのはテストだったりする。
結果について間違いがあってはいけないのは研究者も同じだから。
テスト自動化したらやたら捗るよ。

0144名刺は切らしておりまして2019/06/27(木) 21:00:07.46ID:23i4fR1C
言語設計をした人の哲学で選んでみてもいいかも。
Larry Wall は楽しい事を書くよ。
難しい本を書く人もいるし。

0145名刺は切らしておりまして2019/06/29(土) 12:15:14.02ID:Sim04gn/
良し perl5 だ

0146名刺は切らしておりまして2019/06/29(土) 20:08:26.36ID:b6sgGveO
今のAIって実はサヴァン症候群と同じような状態だよ

タチコマやロボコンの実現ははなかなかに難しいよ

0147名刺は切らしておりまして2019/06/30(日) 13:42:12.99ID:3VY8uaBP
>>129
そうでもない統計を利用するだけの知識なら然程専門的な知識は要らないとまで言わないが化物である必要はない
一瞬で対峙した問題への適切なモデル提唱とか利用とかを行える連中は宇宙人言っても過言じゃないと思うが
プログラミング上のライブラリーと一緒で数学の知識もツール化が図られてる
ちょうど実数論全くわからない連中がsin(x)*cos(x)の微分なんかを簡単に成しとげることが出来るのは有用な定理を証明なしにツール的に用いることで達成されてるのと一緒


>>146
タチコマは夢があるよね確かに現状からブレイクするーなしに達成されることはなさそう
推論の仕方は人間に近いものというか人間も学習によっての帰納的判断でしか物事は判断できないと思ってる
問題はタチコマみたいにどのように自発的にインプットをインプットとして判断させるかだと思う
これは何でこうなるんだろうという自発的な疑問からそれに関するインプットを自発的にサーチするそうして次の学習に現在までの学習結果を利用し学習結果を部分を現在の学習に関連付けて学習に利用する(これがガチでムズい)
タチコマのよく言う「それはどうしてかな?」が現状のAIとタチコマの決定的違いだと思う(´・ω・`)

0148名刺は切らしておりまして2019/06/30(日) 15:26:58.78ID:/0keLcYm
>>127

その漢字をあてたらかわいそうだ。
統計家だろwww

0149名刺は切らしておりまして2019/06/30(日) 17:12:15.45ID:I9G19psB
これ読んだけど結論は用途により使いわけろってことだな

両方必要

0150名刺は切らしておりまして2019/06/30(日) 17:14:19.98ID:I9G19psB
>>128
個人的なイメージでは機械学習はデータサイエンティストの範囲外だなあ

ビジネスの知識と統計周りの知識があると良いのではないかという気がする

機械学習はAI技術者というイメージ

0151名刺は切らしておりまして2019/06/30(日) 18:36:12.32ID:rLihAarv
AI技術者はデータサイエンティストじゃないの?

0152名刺は切らしておりまして2019/06/30(日) 21:56:55.14ID:LrEVE7/+
科学全体がデータサイエンスだと言えなくもない。

0153名刺は切らしておりまして2019/07/01(月) 02:32:35.19ID:yPIF2KI7
時代はSAS

0154名刺は切らしておりまして2019/07/01(月) 04:55:43.68ID:pGr8y/QH
並列演算ってマルチコアのことでいいの?
せめてクラスタじゃないのか

0155名刺は切らしておりまして2019/07/01(月) 08:22:18.06ID:Pgmkj2xk
> 並列計算 引き分け。RもPythonもベースバージョンはマルチコア計算に対して優れたサポートを提供しているとは言い難い
PythonはGPU使った並列計算に強いと言うイメージだが

0156名刺は切らしておりまして2019/07/01(月) 20:44:47.93ID:HEwS8vex
C#

0157名刺は切らしておりまして2019/07/01(月) 22:08:54.16ID:XHCskhIQ
ゆうちゃんしか思いつかない。

0158名刺は切らしておりまして2019/07/01(月) 22:49:18.84ID:b6zhpIDp
SASそんなにいい?
ならやろうかな

0159名刺は切らしておりまして2019/07/01(月) 23:00:31.85ID:qHCA05lE
驚くような内容の論文の査読では、データ処理に使ったのがSASじゃないとまずソフトのバグを疑われるとか。

0160名刺は切らしておりまして2019/07/02(火) 02:58:30.27ID:Owy4F8a/
SASは今でも売上高課金とかやってんのかねぇ。

0161名刺は切らしておりまして2019/07/02(火) 16:26:10.69ID:Ok16CiJ1
Mindが復活

0162名刺は切らしておりまして2019/07/05(金) 07:40:37.68ID:FyO4qbgI
Rは手軽、Pythonは少し面倒。自分でガリガリコードを書けるタイプなら気にならないかもしれないけど。
例えば、線形回帰のステップワイズなんかRはデフォで出来ちゃうし、機械学習も探索の可視化は適当にplotするだけ。
それらをPythonでやろうとするとそこそこ面倒に感じる。

0163名刺は切らしておりまして2019/07/05(金) 15:00:05.01ID:lvwGoD30
Rはテキストファイル自分で読み書きとか、例外処理とか、
備え付けられている動作から外れて、ちょっと普通のことやろうと思うとややこしい。

0164名刺は切らしておりまして2019/07/07(日) 08:56:11.29ID:96p1GJFM
パイプ使うとかすればいい

■ このスレッドは過去ログ倉庫に格納されています