Scalaを使用したデータサイエンスツール


15

SparkはScalaと完全に統合されていることを知っています。ユースケースは、特に大規模なデータセット向けです。Scalaを適切にサポートしている他のツールはどれですか?Scalaはより大きなデータセットに最適ですか?または、より小さなデータセットにも適していますか?


2
FACTORIEなどの機械学習ツールキットについても知りたいですか?
エリックカプルン14

それは私の質問に関連するように聞こえますが、もっと共有してください。
シェルドンクレガー14

回答:


11

再:データのサイズ

短い答え

Scalaは小規模および大規模データの両方で機能しますが、その作成と開発は、スケーラブルなものが必要なために動機付けられています。 Scalaは「Scalable Language」の頭字語です

長い答え

Scalaはjvm上で実行される関数型プログラミング言語です。これの「機能的」部分は、プログラミングの考え方を変えさせる言語の根本的な違いです。そのような考え方が好きなら、小さなデータをすばやく操作できます。好むと好まざるとにかかわらず、関数型言語は根本的に簡単に大規模に拡張できます。jvmは基本的にどこにでもあり、したがってScalaコードは基本的にどこでも実行できるため、jvmピースも重要です。(jvmで記述された他の多くの言語と他の多くの関数型プログラミング言語があり、Scala以外の言語は両方のリストに表示されます。)

この講演では、Scalaの背後にある動機の概要を説明します。

再:Scalaのサポートが良好な他のツール:

先ほど述べたように、Spark(反復アルゴリズムのほうが対応するバッチ処理よりも優れた分散可能なバッチ処理)は大きなものです。Sparkには、機械学習用のライブラリMllibとグラフ用のGraphXが付属しています。Erik AllikとTris Nefzgerが述べたように、AkkaFactorieが存在します。Playもあります。

一般に、掘り下げている特定のユースケースがあるかどうか(もしそうなら、それをあなたの質問の一部にします)、または単にビッグデータツールの調査が必要で、Scalaを少し知りたいと思います。そこから始めます。



4

Scalaの作成者であるMartin Oderskyによるプレゼンテーションを聞くことから、オブジェクト指向と柔軟な構文と組み合わせて関数型プログラミング構造を活用することにより、非常にスケーラブルなシステムを構築するのに特に適しています。また、他のいくつかの言語よりもコードの行数が少なく、高速フィードバックのためのインタラクティブモードを備えているため、小規模システムの開発やラピッドプロトタイピングにも役立ちます。注目すべきScalaフレームワークの1つは、同時計算のアクターモデルを使用するAkkaです。Oderskyのプレゼンテーションの多くはYouTube上にあり、wiki.scala-lang.orgにScalaで実装されているツールのリストがあります。

暗黙のポイントは、Scalaで記述されたツールとフレームワークには、本質的にScala統合があり、通常はScala APIがあることです。Scalaはすでに統合されており、実際にはJavaに大きく依存しているため、Javaで始まる他の言語をサポートするために、他のAPIを追加できます。ツールまたはフレームワークがScalaで記述されていない場合、Scalaをサポートする可能性はほとんどありません。それが、ScalaとSparkで書かれたツールとフレームワークに向けたあなたの質問への答えがその一例である理由です。ただし、現在Scalaは市場でわずかなシェアを持っていますが、その採用率は成長しており、Sparkの高い成長率はそれを強化します。私がScalaを使用する理由は、SparkのScala APIがJavaおよびPython APIよりも豊富であるためです。

私が一般にScalaを好む主な理由は、オブジェクト指向のモジュール性を維持しながらオブジェクトおよび値としての機能の使用を許可および促進するため、Javaよりもはるかに表現力が高いためです。広範囲に使用され、明快で優れたドキュメントがあるため、私は好んでいました。


1
これは一般的なScalaに関する素晴らしい情報ですが、Scalaと統合された特定のデータサイエンスツールまたはフレームワークに関する情報、およびScalaがこれらのツールを使用するのに適した言語である理由を探しています。
シェルドンクレガー14

0

Scalaは、大規模および小規模の両方のデータサイエンスアプリケーションに適しています。Apache Sparkとうまく統合できる機械学習ライブラリを試してみたい場合は、DynaMLを検討してください。提供されているモデルの数という点ではいまだにまだ初期段階にありますが、広く柔軟な機械学習APIで補っています。

いくつかのサンプルユースケースを見るには、考慮してください(それはどこから来たのか)

  1. システム識別-アボット発電所

免責事項:私はDynaMLの著者です


これがあなたのプロジェクトである場合、所属を書き留めてください。
ショーンオーウェン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.