【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/ >>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はテキストファイル自分で読み書きとか、例外処理とか、
備え付けられている動作から外れて、ちょっと普通のことやろうと思うとややこしい。 ■ このスレッドは過去ログ倉庫に格納されています