【さいきっとらーん】

scikit-learn(サイキットラーン) とは?

💡 機械学習アルゴリズムの「道具箱」
📌 このページのポイント
scikit-learn — 機械学習パイプライン データ取得 CSV / DB 前処理 スケーリング 学習 model.fit() 評価 score() 予測 predict 主要アルゴリズム 分類 ランダムフォレスト SVM / ロジスティック 回帰 線形回帰 Ridge / Lasso クラスタリング K-means DBSCAN 次元削減 PCA t-SNE 統一API(fit → predict)で様々なアルゴリズムを同じ書き方で利用可能 Python機械学習のデファクトスタンダードライブラリ
scikit-learnの機械学習パイプラインのイメージ
ひよこ ひよこ

scikit-learnって何ができるの?

ペンギン先生 ペンギン先生

機械学習でやりたいことがほぼ一通りできるよ。データの分類スパム判定など)、数値の予測(売上予測など)、グループ分け(顧客セグメンテーション)、次元削減、さらにモデルの評価まで。しかも数行のコードで使えるから、機械学習の入門には最適なんだ。

ひよこ ひよこ

使い方は難しくないの?

ペンギン先生 ペンギン先生

scikit-learnの素晴らしいところは、どのアルゴリズムでも使い方が同じなんだ。model.fit(X, y)で学習して、model.predict(X_new)で予測する。アルゴリズムを変えたいときも、modelの部分を差し替えるだけ。この統一的なインターフェースのおかげで、10種類のアルゴリズムを簡単に比較できるよ。

ひよこ ひよこ

ディープラーニングもできるの?

ペンギン先生 ペンギン先生

scikit-learnは伝統的な機械学習に特化していて、ディープラーニングは対象外なんだ。ディープラーニングにはTensorFlowPyTorchを使うよ。ただ、表形式のデータであればディープラーニングよりscikit-learnのアルゴリズム(特に勾配ブースティング系)の方が性能が良いことも多いんだ。

ひよこ ひよこ

scikit-learnの落とし穴ってある?

ペンギン先生 ペンギン先生

簡単に使えるがゆえに「正しい評価をせずに精度が高いと勘違いする」罠が多いんだ。一番典型的なのが「データリーケージ」で、例えばデータ全体で標準化してから訓練・テスト分割すると、テストデータの情報が訓練に漏れてしまう。本来はPipelineを使って「訓練データだけで標準化のパラメータを計算し、テストデータに適用する」とすべきなんだけど、初心者はもちろん、ある程度経験のある人でもやってしまいがちなんだ。scikit-learnが用意しているPipelineやcross_val_scoreをちゃんと使えば防げるのに、「面倒だから」と手動でやって間違える。ツールの正しい使い方を知ることと、実際に正しく使うことの間には大きなギャップがあるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「scikit-learn」って出てきたら「Python機械学習を簡単に使えるようにする定番ライブラリのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「scikit-learn(SciPy Toolkit for Learning)」 = SciPy上の学習用ツールキット
💬 SciPy(科学計算ライブラリ)の拡張キット(scikit)として始まった機械学習ライブラリだよ
← 用語集にもどる