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年 |
TensorFlow | 2015年11月 |
PyTorch | 2016年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以降がサポート対象となります。
また、依存ライブラリについてもバージョンが指定されています。
NumPy | 1.13.3以降 |
SciPy | 0.19.1以降 |
joblib | 0.11以降 |
threadpoolctl | threadpoolctl以降 |
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月末以降の状況は、次の記事で説明しています。