第11章. データサイエンスとR
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
データ・サイエンスは比較的新しい学問分野であり、オライリーのマイク・ルーキデスによるこの記事()で初めて多くの人の注目を集めた。この分野には多くの定義があるが、ルーキデスはこの分野の詳細な観察と参加をこの定義に集約した:
データ・アプリケーションは、データそのものからその価値を獲得し、その結果としてより多くのデータを作成する。単なるデータ・アプリケーションではなく、データ製品なのだ。データ・サイエンスはデータ製品の創造を可能にする。
データサイエンスソフトウェアの主要なオープンソースエコシステムの1つがApacheで、Hadoop(HDFS分散ファイルシステム、HadoopMap/Reduceを含む)、Cassandra分散データベース、Sparkコンピュートエンジンを含む、1 最新のリストについては、Hadoopページの「モジュールとリレーショナル・ツール」のセクションを読もう。
ここで興味深いのは、データサイエンティストにとって当たり前のこのインフラの多くが、JavaとScala(JVM言語)で書かれていることだ。 残りの多くは、Javaを補完する言語であるPythonで書かれている。
データサイエンスの問題には多くの設定が必要な場合があるので、ここでは従来のDSからSparkフレームワークを使った例を1つだけ紹介する。 SparkはScalaで書かれているので、Javaコードから直接使うことができる。
Rは広く使われており、知っておくと便利である。Rの主な実装はJavaで書かれたものではなく、C言語とFortranとR自身の混合言語である。 しかし、RはJavaの中で使うことができ、JavaはRの中で使うことができる。Rのいくつかの実装とその選び方について話し、RからJavaを使うテクニックとJavaからRを使うテクニック、そしてウェブアプリケーションでRを使うテクニックを紹介する。
11.1 Javaによるマシン学習
問題
機械学習やデータサイエンスにJavaを使いたいのに、みんなPythonを使えと言う。
解決策
無料でダウンロードできる数多くの強力なJavaツールキットのいずれかを使用する。
ディスカッション
機械学習(ML)や深層学習(Deep Learning)は、効率化のためにC++で、あるいはソフトウェアの豊富さのためにPythonでやらなければならないと言われることがある。 これらの言語には利点があり、支持者もいるが、これらの目的にJavaを使うことは確かに可能だ。 しかし、これらのパッケージをセットアップし、短いデモを紹介するとなると、本書の典型的なレシピ形式では収まらない長さになりがちだ。
業界大手のAmazonが、本書の出版と同時にJavaベースのDeep Java Learning (DJL)ライブラリをリリースしたし、他にも多くの優れたライブラリが利用できる(GPUベースの処理を高速化するためにCUDAをサポートしているものもかなりある)ので(表11-1参照)、MLにJavaを使わない理由はない。 DJLを除いて、現在も保守が続けられていて、ユーザの間でそれなりの評判があるパッケージをリストアップしてみた。
| 図書館名 | 説明 | 情報URL | ソースURL |
|---|---|---|---|
ADAMS |
データドリブンでリアクティブなワークフローを構築/維持するためのワークフローエンジン。 ... |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access