scikit-learn
概要

様々な機械学習アルゴリズムを共通の操作手順で扱えるライブラリである。学習用データを用いてモデルを訓練する「fit」、新たなデータに対して予測を行う「predict」などの操作が、多くのアルゴリズムで共通の形式で提供されている。異なる手法を比較検討しやすく、初学者でも扱いやすい環境が整えられている。内部ではNumPyやSciPyと連携しており、高速かつ効率的な数値計算が可能である。
提供されるアルゴリズムには、線形回帰やロジスティック回帰、決定木、サポートベクターマシン、ランダムフォレスト、勾配ブースティング、最近傍法、k-means法などが含まれる。モデルの性能評価を行うための指標や、データを訓練用と評価用に分割する機能、過学習を防ぐための交差検証など、実務的な分析に必要な機能も充実している。単なるモデル構築だけでなく、評価や改善のプロセスまで一貫して扱うことができる。
データの前処理に関する機能も充実している。数値データの標準化、正規化、カテゴリ変数のエンコーディング、欠損値の補完といった処理を専用のクラスとして提供している。学習データと検証データに対して一貫した変換を適用するパイプライン機能も備えており、前処理とモデル学習を一体化した再現性の高いワークフローを構築することができる。
数値計算分野で人気のNumPyやpandas、MatplotlibといったPythonライブラリとの親和性が高く、データの読み込みから分析、可視化、モデル構築までをPythonの統一された環境で進められる。ただし、scikit-learnはディープラーニング(深層学習)には対応しておらず、画像認識や自然言語処理など深層学習が必要な分野ではPyTorchやTensorFlowなど別のフレームワークが用いられる。