LoginSignup
4
5

More than 3 years have passed since last update.

(随時更新予定)こんなにも有る!?データ分析、機械学習、Deep Learning用OSSの数々

Last updated at Posted at 2020-07-02

業務でデータ分析、機械学習、Deep Learning用OSSについて調査しました。少し調べただけでも多数のOSSが見つかりました。以前から使ってる物から名前は聞いたことが有るけれども実体をあまり知らなかった物まで有ったので一覧表にしてまとめることにしました。今回の調査は時間が少なかったので漏れが有りそうです。。。今後随時更新していこうと思います。

【参考】ライブラリ、ソフトウェア、ツールのシェア

参考ページにデータサイエンス、機械学習の分野で利用されているライブラリ、ソフトウェア、ツールのシェア状況1が掲載されていました。

lib2019.jpg
図1: KDnuggets Analytics/Data Science 2019 Software Poll: 2017~2019年のトップツールシェア

表1: 2017~2019年ツールシェア詳細

Software 2019 %share 2018 %share 2017 %share
Python 65.8% 65.6% 59.0%
RapidMiner 51.2% 52.7% 31.9%
R Language 46.6% 48.5% 56.6%
Excel 34.8% 39.1% 31.5%
Anaconda 33.9% 33.4% 24.3%
SQL Language 32.8% 39.6% 39.2%
Tensorflow 31.7% 29.9% 22.7%
Keras 26.6% 22.2% 10.7%
scikit-learn 25.5% 24.4% 21.9%
Tableau 22.1% 26.4% 21.8%
Apache Spark 21.0% 21.5% 25.5%

表2: 主要なDeep Learningプラットフォームのシェアの変動(2018年,2019年比較)

Platform 2019 %share 2018 %share %change
Tensorflow 31.7% 29.9% +5.8%
Keras 26.6% 22.2% +19.7%
PyTorch 11.3% 6.4% +75.5%
Other Deep Learning Tools 5.6% 4.9% +15.2%
DeepLearning4J 2.5% 3.4% -25.6%
Apache MXnet 1.7% 1.5% +13.1%
Microsoft Cognitive Toolkit 1.6% 3.0% -45.5%
Theano 1.6% 4.9% -67.4%
Torch 0.9% 1.0% -6.1%
TFLearn 0.7% 1.1% -34.7%
Caffe 0.6% 1.5% -58.3%

Pythonの人気は堅調という印象を受けます。後Excelが思いの外使われている印象です。。。Deep Learningの分野では矢張りTensor Flowが圧倒的です。Kerasはtf.kerasとしてTensor Flowに取り込まれた為、両者合わせるとシェアの6割弱を占めます。PyTorchは急成長しており、着実にTensor Flow(+Keras),PyTorchの2強体制に向かいつつあります。

こんなにも有るOSS

データ分析、機械学習系のOSSは調査を始めてみるとちょっと調べただけでもそれはそれは多数見つかりました。。。調べて出て来た物を一覧にまとめました。(言語とツールが混ざっていますが、今後改善を検討します。)既に知っていて利用している物も有りますが、名前を聞いたことが有るという程度のOSSも多数見つかりました。また、筆者が知らなかっただけで、今回調査して詳しく知ったOSSの中には現在進行形で盛んに開発が行われている物も有りました。今後も以下の表を随時更新していこうと思います。

OSS名 言語 概要 ライセンス GitHubスター数[k] GitHub公式リポジトリ 公式HP
Pandas Python Pythonにおいて、データ解析を支援する機能を提供するライブラリである。特に、数表および時系列データを操作するためのデータ構造と演算を提供する。デ BSD3 25.5 https://github.com/pandas-dev/pandas https://pandas.pydata.org/
SciPy Python Pythonで主に数値計算や科学技術計算を行うためのライブラリ。確率モデルの計算にも対応する。 BSD3 7.3 https://github.com/scipy/scipy https://www.scipy.org/
R R オープンソース・フリーソフトウェアの統計解析向けのプログラミング言語及びその開発実行環境である。データ分析の世界ではPythonに次いで利用されている。時系列分析に強いことも特徴 GNU 2.0 - GitHubリポジトリ無し https://www.r-project.org/
scikit-learn Python Pythonの機械学習ライブラリである。SVM、ランダムフォレスト、Gradient Boosting、k近傍法、DBSCANなどを含む様々な分類、回帰、クラスタリングアルゴリズムを備えており、数値計算ライブラリのNumPyとSciPyとやり取りするよう設計されている。Python、機械学習のデファクトスタンダート的なOSSであり、2012年11月に「well-mantained and popular (よくメンテナンスされており、広く使われている)」と評されている。 BSD 41.3 https://github.com/scikit-learn/scikit-learn https://scikit-learn.org/stable/
statsmodels Python Pythonで様々な統計モデルを扱えるライブラリ。Pythonで時系列モデル(ARIMA等)を扱う場合はこのライブラリを用いる。但し、リポジトリの更新がここ数ヶ月あまり無く、コミュニティーの開発意欲が下がっているの可能性が有る。加えて日英双方で資料が少ない。 BSD3 5.3 https://github.com/statsmodels/statsmodels https://www.statsmodels.org/stable/index.html
RapiMiner Java(Python版も有) RapidMinerは、機械学習、データマイニング、テキストマイニング、特徴選択、予測分析、経営分析などを扱うソフトウェア及びその開発元会社である。研究や教育や産業分野、ラピッドプロトタイピングやソフトウェア開発の場で利用されている。OSS版の開発はここ数年ストップしている可能性が有る。 AGPL3(無償版) 0.112 https://github.com/rapidminer/rapidminer-5 https://rapidminer.com/
Apache Spark Scala Apache Sparkはオープンソースのクラスタコンピューティングフレームワークである。カリフォルニア大学バークレー校のAMPLabで開発されたコードが、管理元のApacheソフトウェア財団に寄贈された。Sparkのインタフェースを使うと、暗黙のデータ並列性と耐故障性を備えたクラスタ全体をプログラミングできる。MLlibを同梱 Apache2.0 26.6 https://github.com/apache/spark https://spark.apache.org/
PySpark Python SparkのPython版 Apach2.0 26.6 https://github.com/apache/spark/tree/master/python/pyspark https://spark.apache.org/
Weka Java Weka は、ニュージーランドのワイカト大学で開発した機械学習ソフトウェアで、Javaで書かれている。 GNU 0.092 https://github.com/Waikato/weka-3.8 https://www.cs.waikato.ac.nz/~ml/weka/
Eland Python Elasticsearchにおけるデータフレーム、ビッグデータ、機械学習及びETLをPythonで扱うためのクライアント及びツールキット群 Apache2.0 0.064 https://github.com/elastic/eland https://www.elastic.co/guide/en/elasticsearch/client/eland/current/index.html
PyCaret Python An open source low-code machine learning library.を謳っているライブラリ。学習させたいデータセットを用意すれば、最低限のプログラミングで様々な機械学習モデルにデータを適用した結果を評価し、性能の高いモデルのアンサンブルまで自動的に実行出来る。所謂AutoMLと呼ばれる技術 MIT 1.1 https://github.com/pycaret/pycaret https://pycaret.org/
Caret R Caretは本来Rのライブラリとして開発されたためこちらが本家。GitHubスター数が少ないのそのため。機能はPyCaretと同様。 MIT 0.008 https://github.com/cran/caret https://topepo.github.io/caret/
Stan Stan StanはC++で書かれた統計的推論のための確率的プログラミング言語。 Stan言語では、対数確率密度関数を計算する命令型プログラムを使用して、 統計モデルを実装できる。 アンドリュー・ゲルマンらによって開発され、 モンテカルロ法の先駆者であるスタニスワフ・ウラムにちなんで名付けられた。ベイズ推論に特化した機能も実装されている。 BSD3 1.9 https://github.com/stan-dev/stan https://mc-stan.org/
PyStan Python StanのPython版。Stan同様にベイズ推論に特化した機能が実装されている。 GPL3 0.824 https://github.com/stan-dev/pystan https://mc-stan.org/
Elasticsearch Java ElasticsearchはLucene基盤の分散処理マルチテナント対応検索エンジンである。オープンソースソフトウェアだが、現在はオランダ・アムステルダムに本社を置くElastic社が中心になって開発が進められている。 Elastic 49.6 https://github.com/elastic/elasticsearch https://www.elastic.co/jp/elasticsearch/
Julia Julia 汎用プログラミング言語水準から高度の計算科学や数値解析水準まで対処するよう設計された高水準言語かつ仕様記述言語、及び動的プログラミング言語である。 MIT 28 https://github.com/JuliaLang/julia https://julialang.org/
Tensor Flow 主にPython Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリである。Deep Learningに特化している。 Apache2.0 146 https://github.com/tensorflow/tensorflow https://www.tensorflow.org/
Keras Python Kerasは、Pythonで書かれたオープンソースニューラルネットワークライブラリである。MXNet、Deeplearning4j、TensorFlow、CNTK、Theanoのラッパである。 MIT 48.8 https://github.com/keras-team/keras https://keras.io/
Apache MXNet Python DNNのトレーニングと展開に使用されるOSSのDeep Learningフレームワーク。スケーラブルで高速なモデルトレーニングを可能にし、柔軟なプログラミングモデルと複数のプログラミング言語をサポート。 Apache2.0 18.8 https://github.com/apache/incubator-mxnet
PyTorch Python PyTorchは、コンピュータビジョンや自然言語処理で利用されているTorchを元に作られた、Pythonのオープンソースの機械学習ライブラリである。最初はFacebookの人工知能研究グループAI Research labにより開発された。 修正BSD 39.9 https://github.com/pytorch/pytorch https://pytorch.org/
Kubeflow Python David Aronchick、Jeremy Lewi、Vishnu Kannanによって共同設立された無料のオープンソース機械学習プラットフォームであり、Google、Arrikto、Cisco、IBM、Red Hat、CoreOS、CaiCloudの開発者によって構築された。 Apache2.0 9.1 https://github.com/kubeflow/kubeflow https://www.kubeflow.org/

まとめ

調査前から多数のOSSが有ることは前提知識として知っていましたが、改めてまとめてみると数も多く大変でした。今回は開発が中止になったOSS(例:Theano,Torch7,Chainer等)は取り上げませんでした。但し、まだまだ漏れが有ると思われますので、随時追記していこうと思います。また、コメント欄でご教示頂けますと幸いです。


  1. The 20th annual KDnuggets Software Poll1,800名を対象に行った調査 

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5