scikit-learn(sklearn)のインストールを解説【Python入門】

scikit-learn(sklearn)のインストールを解説【Python入門】 プログラミング

scikit-learnが機械学習用のライブラリだと知っていますか?
そして、機械学習の世界におけるscikit-learnの立ち位置を知っていますか?

本記事の内容

  • scikit-learnとは?
  • scikit-learnのシステム要件
  • scikit-learnのインストール
  • scikit-learnの動作確認

この記事では、scikit-learnの現状を知ることから始めます。
現状を知った上で、利用していくことを前提にインストールも行っていきます。

それでは、上記に沿って解説していきます。

scikit-learnとは?

scikit-learnとは、Pythonのオープンソース機械学習ライブラリです。
そして、scikit-learnの読み方は「サイキット・ラーン」となります。

さて、機械学習のライブラリと言えば、みなさんは何を思い浮かべますか?
TensorFlow?
PyTorch?

この二つを思い浮かべる方が多いのではないでしょうか。
ここで、これら機械学習ライブラリの公開時期を見てみましょう。

ライブラリ名初版公開時期
scikit-learn 2007年
TensorFlow2015年11月
PyTorch2016年10月

表を見ると、scikit-learnは京都の老舗旅館並みに古いです。
しかし、TensorFlowやPyTorchの勢いに押されている感はありますね。

では、そのことをデータで確認しましょう。
Google Trendでそれぞれの検索ボリュームを比較します。

比較期間は、直近5年間(2016年1月~2021年1月)です。

この結果を見ると、PyTorchスゲーに目が行ってしまいます。
ただ、この記事の主役はscikit-learnです。

scikit-learnに注目すると、ある意味安定はしています。
常に需要は一定数あるということです。

そう考えると、どのライブラリがいいとは一概には言えません。
結局、利用する側のスタンス次第と言えるでしょう。

本格的に機械学習を行うなら、TensorFlowやPyTorchが候補となります。
それとは逆に、手軽に機械学習を触りたいなら、scikit-learnが選択肢になりえます。

それこそ、次で説明するシステム要件も絡んできます。
TensorFlowはインストールでトラブルも多いです。

その視点からも、利用する機械学習ライブラリを選んでみるべきでしょう。
では、以下でscikit-learnのシステム要件を確認します。

scikit-learnのシステム要件

scikit-learnの最新バージョンは、0.24.1となります。
この最新バージョンは、2021年1月20日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux(Ubuntu、Debianなど)

Pythonのバージョンは、3.6以降がサポート対象となります。
また、依存ライブラリについてもバージョンが指定されています。

NumPy1.13.3以降
SciPy0.19.1以降
joblib0.11以降
threadpoolctlthreadpoolctl以降

Pythonのバージョンについては、注意が必要です。
以下のコマンドで確認しましょう。

>python -V
Python 3.9.1

私の環境では、現時点(2021年1月時点)の最新バージョンがインストールされています。
scikit-learnのシステム要件は以上とします。

では、scikit-learnのインストールを行っていきましょう。

scikit-learnのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.0
setuptools 52.0.0

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

では、scikit-learnのインストールです。
scikit-learnのインストールは、以下のコマンドとなります。

pip install scikit-learn

インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package       Version
------------- -------
joblib        1.0.0
numpy         1.19.5
pip           21.0
scikit-learn  0.24.1
scipy         1.6.0
setuptools    52.0.0
threadpoolctl 2.1.0

指定されていた依存ライブラリは、すべてインストールされています。
この結果を見ると、NumPyやSciPyなどのバージョンが古くても問題なさそうです。

その意味でも、scikit-learnはインストールがかなり容易と言えます。
Python 3.6以降であれば、どんな環境にでも導入できそうです。

最後に、インストールしたscikit-learnの動作確認を行います。

scikit-learnの動作確認

scikit-learnの動作確認用プログラムです。

from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# create a pipeline object
pipe = make_pipeline(
    StandardScaler(),
    LogisticRegression()
)

# load the iris dataset and split it into train and test sets
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

# fit the whole pipeline
pipe.fit(X_train, y_train)

# we can now use it like any other estimator
print(accuracy_score(pipe.predict(X_test), y_test))

上記を実行して、次ような値が表示されればOK。

0.9736842105263158

なお、動作確認用のPythonコードは、以下のページを参考にしています。

scikit-learn公式チュートリアル
https://scikit-learn.org/stable/getting_started.html

以上で、scikit-learnの動作確認は終わりとします。

追記 2024年3月25日
2021年1月末以降の状況は、次の記事で説明しています。

タイトルとURLをコピーしました