【IT】データサイエンス向け言語はRとPythonのどっち?
■ このスレッドは過去ログ倉庫に格納されています
このほど、「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/ データ分析クラスタも機械学習クラスタも
仕事や勉強で忙しくて
こんなクソみたいなところに書き込んだりせんだろ。 うーん、用途と使う層が違うから
比べてもしょうがないよな
ただ、統計の勉強にはRがいいと思うし、それからpython
使ってもいいだろうし、まあ両方使えば良いんじゃない。
R は、すぐにやってみられるし、検算用でも良いしね Rは、プログラミング言語ではあるけど
数学処理系といった感じですぐ使えるから、両方で良いんじゃないかい Pythonはアホでも使えるという理由だけで
機械学習まわりで広く使われてるというだけだからな
自前で実装するなら言語は何でもいい しつこいけど、maximaも覚えとくと便利かもよ
微分とか記号のまま出来るし
こういうのは、同じ言語でも、数学知ってれば
そこそこ使えるからね。あ、別にpython目の敵に
してるわけではないよ。両方使えれば、もっと
便利だ、って言いたいだけだよ これからはPython主流になるんじゃないの
Perlが食われたように、Rも消えていきそう 消えないよ、これ古ーい言語だから
今消えてないなら、もう消えないよ
ほんとは言語というより、電卓みたいなもんだから Rしか使えないっす
というか、統計に関してはネット上の情報量がRの方が多いし… あんまり用途はかぶらない気がするが、ありうるとすればPythonがRの用途を取り込んでしまう方向 >>17
昔からやっていることでも、それらしい名前を付けると人が集まってくるんだよなぁ・・・ >>18
なかったらRの完敗。
あったところで、やっと引き分け Maxima + Octave が最強だって早く気づけばいいのに
Rは分析ツール
pythonはデータシステム記述
という認識なんだが Rもpythonもc++も使ってるけど
pythonは正直要らない Rは言語仕様的に微妙なところが多い。
例外処理とかNAとかほんと糞。 コードかけないでーたさいえんちすと
出した結果とやらも再現性なし Excelはビックデータ開けんでないか。
DB+シェルスクリプト で大半はできるけど、R使うのって、何計算させるんだ? 関数型っぽいRのほうがコードが短くて一見楽ちんだけど、
Pythonのほうが柔軟で大きなデータを扱えるのかな? >>44
数式を直接扱える人はね…
ライブラリ使わないと何もできない人のほうが多いんだから… len(nums)
これがいやだから
nums.lenかnums.len()
で要素数とれるようにしてくれ >>46
最小はそう思ったわ
でもなんか慣れてしまったな
慣れてしまうから改善されないんだろうなとは思う ニュートラルネットが使いやすいのは、Pythonのほう!! プログラミング言語自体の機能を比較しても意味がない。
何を作りたくて何を使うべきかであって得手不得手がある。 Python、NumPy、Pandas、matplotlibこれで問題ないよな >>19
今のデータサイエンスはAIのCNN処理が進んでからのもので
昔流行ったデータマイニングとは訳が違う。 LibreOffice Calc + Neuronica
はどうなんだろう?
試したことはない。 機械学習屋ばっかり…
統計屋はやっぱり一人前になるの難しいのかねぇ… データマイニングという言葉は1990年代にデータベースの分野で使われだしたらしい。
knowledge-discovery in databases(KDD)と関係がある。
データサイエンスのほうが言葉としてはそれよりはるかに古いけど、
そのころの意味はコンピュータサイエンスとほとんど同義だったようだ。
今日のデータサイエンスはデータマイニングを含み込む科学分野っぽいね。 文系ど素人が働きながら効率よく身に付けるにはRから始めるべき?
どこかで基礎を学べればいいんだけど独学最強状態なのかな >>62
文系でもド素人でもいいけど、
何を身に着けたいのか不明ではどうしようもない データサイエンティストと統計学者の違いについて結局いちばん納得できた説明は、
データサイエンティストはソフトウェアエンジニアの中で特に統計に詳しい人で、
かつ、他の統計学者よりもソフトウェアエンジニアリングに詳しい人だ
ってものw
そのほかの説明は、たくみに言いくるめられているようでどれも納得がいかなかった。 >>64
あぁ、良い表現!
でも、最適化問題やってるサプライチェーンマネジメントの人や、陸運のダイヤグラム引いてる人は?
彼らだって立派なデータサイエンティストだよ >>63
managemental accounting畑で役立てるには何やったらいい? >>62
そんなこと聞いてる奴は向いてない。
その質問する間にツールをインストールしてる奴が向いてる奴
プログラミングが初めてならRはおすすめしない。
教材が少ないから。回り道でも他の教材の多い言語をやってからのほうが早い。 >>66
素直にfinancialからrisk managementに行ったほうが良いとおもう >>67
まあそうだよな
SASやSPSSより安いらしいからなんかに使いたいとか言われてさ
そういうふわっとしたオーダーが一番困る
右も左もわからんしマジ詰み
統計学からやるべきなのか?
とりまRよりPythonのがとっつきはいいのかな >>68
自分もそのつもりでしたが寄り道させられそうなんで… ExcelやLibreOfficeの分析ツールじゃあかんのですか?
RやPythonを使っていたほうがカッコいいの?
Linuxユーザーみたいだね。 >>69
ツールとしてはRのほうが使いやすいと思うよ。 rPythonパッケージをインストールすればRからPythonコードを実行でき、
RPy2ライブラリを使えばPythonからRのコードを実行できる。 >>70
risk managementの手法だって全然使われてないんだから、それをどう使うのかと、他分野への横展開を考えながらやったら良いとおもう。
寄り道しすぎると、使えなくなるよ。
エンジニア上がりのなんちゃってとどっこいになりたくないでしょ? >>71
エクセルだってそこらに居るなんちゃってデータ屋じゃ使いこなせないレベルのこと出来るからね…
結果が出るなら何でも良いともう夜 >>69
俺は沢山そういう人を見てきたが、
身につく人は質問以前にとっと手を動かしてる。
それができない人は無理なので諦めた方がいい。 Excel の定義がVBAも含んで、Excel 自体はあまり使ってないのか、
Excel でデータの準備を人がコピペでやってるのかで、全然違うな。
Excel ってグラフ化(含むPivot)くらいにしか使ってない。 Deep Learning入門:Generative Adversarial Networks (GAN)とは?
http://www.youtube.com/watch?v=2rC2_-HtpsQ
ソニーのNeural Network Consoleの登録者数は1102人しかいない
日本人が勉強しないから国家が衰退したんだよ
登録して見てやれよ >>69
R にしとけ
統計なんて大学院卒業レベルまでやりこまなくても
R を起動すれば使える
t検定とかぐらいなら
起動したインタプリタから
データいれて
関数呼ぶ
の2ステップで見やすくフォーマットされた詳しい出力がでてくる あ〜でもない、こうでもない
つぎはこれ、まえのはもうだめ
なんぼでもかわるな >>83
右も左もわからん奴には無理だと思うの。
酷い話、曖昧な質問でも答えてくれるSiriみたいなの付けないと。 >>72-74
あんがと
R軸足で見てみる
個人的にメインツールはExcel極めて他はそこそこでと思ってるんだが、職場環境はとっちらかってるんだよね
なかなか自分のスキル構築うまく行かなんのだねど、頑張るわ 2016年のあたりではデータサイエンスの間でRがトップだったけど、
今はPythonがRを上回ったらしいよ。 プログラミング未経験でRってありえん。
すげー悪い癖がつきそう。 >>82
nncは良いね。かなり使いやすい…
でも、1000人?
俺ってレアだなぁ… >>90
R使う人ってプログラム書きをメインにするわけじゃないだろうからどうでもいい話 >>90
逆だろ。
未経験でも使える敷居の低い低級言語が R だろ
将来グラマーやるわけじゃないなら、悪いくせついても全然OK Rだって代入演算子に=を使えるんだから使えばいいのにと思う。
<-と=は同じ意味なんだから。 データサイエンスなら、PythonよりもJulia。
文系の方で英文がすらすら読めるなら障害なし。 ここまでMATLAB, Spark, Scalaの推薦なし。 >>98
昔、シミュレーション系はmatlab使ってたけど、なんか作れるようになったら別に使わなくても良くなっちゃって… >統計的な正確さ Rの大勝利。Rは統計学者によって統計学者のために開発されている
重要なのはここだけだろ
excelの間違いだらけの関数とかあったけどな >>100
Rも計算間違いするよ…一時期よりはマシになったけど…まぁフリーだからねぇ… >>101
そういうの見つけたら指摘して直せよというのがフリーソフト文化の良いとこなんでは
俺は間違いを知ってると自慢してるだけで
報告してないとかじゃないんだろ >>102
知り合いのR使いがなんかしてたよ。俺はstatalistなので、そこらはよくわからんのよ C++を中心に必要なとこだけ他の言語呼び出してるわ >>94
全然ダメ。グローバル変数使いまくったり、
変数名もピリオドとか含めてつけたり、配列やデータフレームにインデックス値で直接アクセスしたり、
そういう有り得ないことが身についてしまう。
そもそもコーディング基本流儀は何も職業コーダーだけのものではなく、
研究者も含めてコードを書く人全てが従うべきもの。
おまけに基本的に値渡しか参照渡しかを制御できない言語だから、
分かってない人が書くコードはすぐメモリエラーになる。
低級言語と高級言語の違いを逆に覚えている人には理解できないかもしれないが。 >>107
プログラム書きになるんじゃなければどうでもいい話
変な癖ついても直せばいいだけだしな >>108
だからそのコーダー以外はプログラム書きではないという発想やめれ。
研究者とかだって立派なプログラム書きだ。
プログラミングの基本は全員が学ぶべきことだよ。 プログラミングは当たり前に出来て+数学+専門知識なのに
派遣とか経験の永久ループでシステムとして破綻してるから
禁止にして業界を改革しないと
コンピューターサイエンスを勉強する人が増えないで国力が落ち続ける
もう安全保障の問題になってるのに
利権化してるから誰も指摘できないんだろうな >>107
全くそのとおり
幼稚なコードから生まれた結果なんて再現性があったもんじゃない 再現性のない科学とかオボちゃんじゃん
わかってるのかね?でーたさえんちすとくん >>109
プログラム書きで食っていくんなら変な癖がついたら困るとかいうのもわかるけど
そうじゃないんなら我流でも便利に使えればどうでもいいこと。 >>107
おおっと、Pandas の悪口はそこまでだ! >>61
文系的な理解だと一種の判別分析だと思ってる。間違ってる? >>116
機械学習の殆どはまだ判別機のレベル
去年論文発表されたネタからやっと少し先に進めるかもしれないかもとみんなが期待してる感じ。実際に案件で使ってみたと言うことは聞いたことがないよ。
統計は予知から予測に近くなってきた感じ。予想に行き着くには全然遠い。 >>118
洒落なのはわかるけど…
クライアントによっては、詐欺師まがいのコンサルに踊らされて変な期待しすぎは本当にもうよしたほうが…って思うなぁ AI のイメージとダブるんだが、区別はあっても無いようなものなのか?
沢山あるデータから、複数の観点で情報を抽出して分析するお仕事かと思ったが。 過去のデータの分布が将来も同じなら
程度の予想はラプラスの時代からできてるしな 統計情報を用いて予測モデルを作るお仕事です
機械学習の一部の分野
人間の役割はアノテーションを行いモデルを誘導する、所謂データの前処理を主に行うのでデーターサイエンティストと言われているんだと理解しているよ >>120
明確な区別はなく基礎となる技術も手法もおおいにかぶってるけど、
統計学=値の分布を分析・評価する
機械学習=値の分布のモデルを仮定し推測する。通常の統計学より高次元データが多い。
人工知能=コンピュータに学習させ難しいことをやらせる
ベン図書いたらほとんど被ってるといっていい データサイエンスって人工知能エンジニアリングとほぼ同義なの? データサイエンスはお客さんの要求をどうやって学習させるかを考えて正解率を上げる人
人工知能エンジニアリングは学者でスピードと正解率を上げる方法を考える人
1ヶ月、機械学習を勉強しての定義はこんな感じ 統計屋+機械学習構築屋=データサイエンティストなのかな >>128
それ、宇宙人だよ…
どれか一つでも一人前にできて、ビジネスに応用できたら、データサイエンティストでよかない? データサイエンティストって東大数学科の博士課程の人が
アルバイトでやってるイメージ 数学
→統計論
〜〜↑数学科の人たち〜〜
→応用統計学(応用数学)微妙な領域
〜〜物理とか生物とか↓〜〜
→でーたどうのこうの機械学習横文字多数
こういうイメージ Pythonはせめて10年コードが使えるように命令文を変えるな 研究者のコーディングが幼稚なわけ
スブの素人でも支障がないコーディングができるほどソフトウェア工学は発展してないし
大学で片手間にやった程度の素人がひらめけるほどソフトウェア工学が取り組んだ問題は浅くない >>132
そこなんだよな
2->3 de 移植性が亡かったから
10年先つかえるか不安な言語
また書きなおしとか効率悪い >>134
おまえのような自閉症のアホにもわかるように教えてやると
研究者はソフトウェア工学を研究しているのではない。
人間の知覚をモデル化する研究に取り組んでるんだよ。
だから、コーディングなんてPythonで充分なの。
アイデアやアルゴリズムをテストしたいだけ。 >>123
>機械学習=値の分布のモデルを仮定し推測する。通常の統計学より高次元データが多い。
>人工知能=コンピュータに学習させ難しいことをやらせる
これじゃどっちも同じだろうが。
人工知能は人間の知覚をモデル化したアルゴリズムを実装しているところに特徴があるんだよ
そもそもプログラマーは脳科学なんて素人だから、こういう中途半端な説明に終始する。 >>136
Pythonである必要すらないぞ?
ほしい計算結果が一番早く出るやつなら何でも良い >>137
> 人工知能は人間の知覚をモデル化したアルゴリズムを実装しているところに特徴があるんだよ
研究対象としては面白いが、工学的には割とどうでもいい。
人間とは違ったモデルのほうが性能いいかもしれないし。
一生懸命二足歩行をモデリングして再現するより、車輪で移動したほうが速いのと同様。 >>107
汎用性が高く、素人初心者にも解りやすく、綺麗なコードが書けるようになるプログラム教えてくだちい >>141
最初は教材の多い汎用的な言語で勉強した方がいい。
JavaとかC++とかC#とか。この辺できてりゃほかの言語はすぐできるようになるし。
PythonやRはプログラミング初心者向けの良書が少ない。 受託開発とかと同レベルのコーディング品質でなくてもいいけど、
自分だけで解析するにしても最低限のコーディングの基本やソフトウェアエンジニアリングは知っておいた方がいいぞ。
グローバル変数避けるとか、関数・プロシージャに分けるとか、
分かりやすい関数名や変数名をつけるとか、並列化時はリソースの同時アクセスに気をつけるとか、
メモリリークを避けるとか、そういうのは誰がプログラミングしても当たり前に知っておくべきこと。
あと意外と研究者にとっても大事なのはテストだったりする。
結果について間違いがあってはいけないのは研究者も同じだから。
テスト自動化したらやたら捗るよ。 言語設計をした人の哲学で選んでみてもいいかも。
Larry Wall は楽しい事を書くよ。
難しい本を書く人もいるし。 今のAIって実はサヴァン症候群と同じような状態だよ
タチコマやロボコンの実現ははなかなかに難しいよ >>129
そうでもない統計を利用するだけの知識なら然程専門的な知識は要らないとまで言わないが化物である必要はない
一瞬で対峙した問題への適切なモデル提唱とか利用とかを行える連中は宇宙人言っても過言じゃないと思うが
プログラミング上のライブラリーと一緒で数学の知識もツール化が図られてる
ちょうど実数論全くわからない連中がsin(x)*cos(x)の微分なんかを簡単に成しとげることが出来るのは有用な定理を証明なしにツール的に用いることで達成されてるのと一緒
>>146
タチコマは夢があるよね確かに現状からブレイクするーなしに達成されることはなさそう
推論の仕方は人間に近いものというか人間も学習によっての帰納的判断でしか物事は判断できないと思ってる
問題はタチコマみたいにどのように自発的にインプットをインプットとして判断させるかだと思う
これは何でこうなるんだろうという自発的な疑問からそれに関するインプットを自発的にサーチするそうして次の学習に現在までの学習結果を利用し学習結果を部分を現在の学習に関連付けて学習に利用する(これがガチでムズい)
タチコマのよく言う「それはどうしてかな?」が現状のAIとタチコマの決定的違いだと思う(´・ω・`) >>127
その漢字をあてたらかわいそうだ。
統計家だろwww これ読んだけど結論は用途により使いわけろってことだな
両方必要 >>128
個人的なイメージでは機械学習はデータサイエンティストの範囲外だなあ
ビジネスの知識と統計周りの知識があると良いのではないかという気がする
機械学習はAI技術者というイメージ 並列演算ってマルチコアのことでいいの?
せめてクラスタじゃないのか > 並列計算 引き分け。RもPythonもベースバージョンはマルチコア計算に対して優れたサポートを提供しているとは言い難い
PythonはGPU使った並列計算に強いと言うイメージだが 驚くような内容の論文の査読では、データ処理に使ったのがSASじゃないとまずソフトのバグを疑われるとか。 Rは手軽、Pythonは少し面倒。自分でガリガリコードを書けるタイプなら気にならないかもしれないけど。
例えば、線形回帰のステップワイズなんかRはデフォで出来ちゃうし、機械学習も探索の可視化は適当にplotするだけ。
それらをPythonでやろうとするとそこそこ面倒に感じる。 Rはテキストファイル自分で読み書きとか、例外処理とか、
備え付けられている動作から外れて、ちょっと普通のことやろうと思うとややこしい。 ■ このスレッドは過去ログ倉庫に格納されています