作者 | デイビット・クールナポー |
---|---|
初版 | 2007年 |
最新版 | 1.5.1[1] - 2024年7月3日 [±] |
リポジトリ | |
プログラミング 言語 | Python, Cython, C, C++ |
対応OS | Linux, macOS, Microsoft Windows |
種別 | 機械学習ライブラリ |
ライセンス | BSD License |
公式サイト |
scikit-learn |
scikit-learn(サイキット・ラーン、旧称: scikits.learn)は、Pythonのオープンソース機械学習ライブラリ[2]である。サポートベクターマシン、ランダムフォレスト、勾配ブースティング、k近傍法、DBSCANなどを含む様々な分類、回帰、クラスタリングアルゴリズムを備えており、Pythonの数値計算ライブラリのNumPyとSciPyとやり取りするよう設計されている。
教師あり学習と教師なし学習に対応している。ただし、強化学習・深層学習・グラフィカルモデル(隠れマルコフモデルなど)・シーケンス予測には対応しない方針となっている[3]。
Scikit-learnプロジェクトは David Cournapeau によるGoogle Summer of Codeプロジェクト、scikits.learnとして始まった。名前は「Scikit」 (SciPy Toolkit) つまり独立して開発・配布されるScipyのサードパーティ拡張であることを示している[4]。オリジナルのコードベースは他の開発者に後に書き換えられた。様々なScipy Toolkitのうち、scikit-learnとscikit-imageは2012年11月に「well-maintained and popular(よくメンテナンスされており、広く使われている)」と評されている[5]。
2015年以降、scikit-learnは活発に開発されており、INRIA、Telecom ParisTech、そして(Google Summer of Codeを通して)部分的にGoogleの援助を受けている[6]。Evernoteはscikit-learnを使用しており、ライブラリのナイーブベイズ分類器でユーザーの投稿から食べ物のレシピであるものを判別している[7]。またMendeleyはscikit-learnのSGD回帰アルゴリズムを用いて推薦システムを構築している[8]。
scikit-learnのAPIは、wiseRFと呼ばれる非フリーなランダムフォレスト実装を提供するwise.ioに採用されている[9][10]。wise.ioのビジネスパートナーであるContinuum IOは、データスループットがscikit-learn実装の7.5倍に上昇したと述べている[11]。これを受けてscikit-learnの開発者らはメモリ使用以外の部分で、wise.ioに並ぶよう実装を最適化したと主張している[12]。
scikit-learnは大部分がPythonで書かれている。いくつかのコアアルゴリズムは性能向上のためCythonで書かれている。サポートベクターマシンはLIBSVMをラップするCythonで実装されておりロジスティック回帰や線型サポートベクターマシンはLIBLINEARの同様なラッパーで実装されている。