Octoverse 2018 (2018年10月時点の統計情報) ー 機械学習

Image of Thomas Elliott

2018年10月のOctoverseレポートでは、GitHubで機械学習とデータサイエンスが話題になりました。tensorflow/tensorflowは最もコントリビューションが多かったプロジェクトでした。また、pytorch/pytorchは最も急成長しているプロジェクト、そしてPythonはGitHubで3番目に人気のある言語でした。 GitHubでの機械学習とデータサイエンスの状態をもう少し詳しくみてみましょう。

本調査は2018年1月1日から2018年12月31日までの間に行われた、コードのプッシュ、IssueまたはPull Request、IssueまたはPull Requestに関するコメント、またはPull Requestのレビューなどのコントリビューションが行われたプロジェクトのデータをもとに調査しています。最もインポートされたパッケージのデータを調査するにあたっては、ディペンデンシーグラフのデータを使用しました。これらデータには、すべてのパブリックリポジトリと、ディペンデンシーグラフにオプトインしたプライベートリポジトリが含まれます。

プログラミング言語

私たちは“ machine-learning”というトピックでタグ付けされたリポジトリを調べ、それらリポジトリで最も使われているプログラミング言語をランク付けしました。 Pythonは機械学習リポジトリの中で最も利用されている言語であり、GitHub全体で3番目に利用されている言語です。とは言え、すべての機械学習がPythonで書かれているわけではありません。C++、JavaScript、Java、C#、Shell、TypeScriptなどもGitHubの上位10言語でよく使われている言語であり、これら言語は機械学習プロジェクトでも上位10言語に入っています。Julia、R、Scalaは機械学習プロジェクトでトップ10に入っていますが、GitHub全体ではそれほど使われている言語ではありません。 JuliaとRはどちらもデータサイエンティストによってよく使用されている言語であり、ScalaはApache Sparkのようなビッグデータシステム構築時によく使われるようになりつつある言語です。

上位の機械学習およびデータサイエンスパッケージ

ディペンデンシーグラフのデータから、機械学習プロジェクトまたはデータサイエンスに関するプロジェクトで、Pythonのパッケージをインポートするものの割合を計測しました。上記のリストは上位10位に入るパッケージのリストです。他にも、以下のことがわかりました。

  • Numpy(多次元データに対する数学的操作をサポートするパッケージ)は、最もインポートされたパッケージで、ほぼ75%の機械学習およびデータサイエンスプロジェクトで使用されています。
  • 科学計算用のパッケージであるScipy、データセットを管理するためのパッケージであるpandas、および視覚化ライブラリであるmatplotlibはすべて、機械学習およびデータサイエンスプロジェクトの40%以上で使用されています。
  • Scikit-learnは、多数の機械学習アルゴリズムの実装が含まれており、機械学習プロジェクトの40%近くで使用されています。
  • ニューラルネットを扱うためのパッケージであるTensorFlowは、25%ものパッケージで使用されています。

他に上位10位に入っているのはユーティリティパッケージです。six はPython 2と3の互換性ライブラリで、python-dateutilpytzは日付を扱うためのパッケージです。

上位機械学習プロジェクト

また、2018年に「machine-learning」というラベルの付いたオープンソースプロジェクトで、最もコントリビューションが多いものを調べました。TensorFlowは最も人気があり、2番めに人気のプロジェクトであるscikit-learnの5倍のコントリビュータがいます。explosion/spaCyRasaHQ/rasa_nluという2つのプロジェクトは、自然言語処理の問題に焦点を当てています。CMU-Perceptual-Computing-Lab / openposethtrieu / darkflowageitgey / face_recognitiontesseract-ocr / tesseractの4つのプロジェクトは、画像処理に焦点を当てています。 Julia言語のソースコードも、2018年にコントリビューションが多かったプロジェクトの1つでした。

GitHubでホストされている機械学習プロジェクトは、Exploreに一覧としてまとめてありますので、これからも、機械学習を使用して素晴らしいプロジェクトを作ってください。