論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
scikit-learn
scikit-learn
ライブラリ
別称: sklearn

🔖 キーワード索引

scikit-learnscikit-learnライブラリsklearn

本ページは scikit-learn(scikit-learn)を多角的に解説します。 上のチップは、 検索・関連語の手がかりです。

💡 30秒で分かる結論

📍 文脈 — どこで使う概念か

scikit-learn は 2007 年に David Cournapeau が GSoC で開始したプロジェクトで、 Python の機械学習エコシステムの 中核です。 NumPy / SciPy / pandas / matplotlib との連携が完璧で、 入門から実務まで幅広く使われます。 ドキュメントの質も非常に高く、 機械学習を学ぶならまず scikit-learnと言われるほど。

🎨 直感で掴む — 具体例で理解する

scikit-learn の哲学は 「統一 API」。 どんなアルゴリズムでも同じ 3 つのメソッドで使える:

これにより、 ロジスティック回帰を SVM に差し替えるのに クラス名 1 行だけ変えれば済む。 アルゴリズム比較が極めて容易です。

主な機能群:

📐 定義

Python の機械学習標準ライブラリ

英語名 scikit-learn、 カテゴリ:ライブラリ。

🔬 記号・要素の読み解き

Estimator
学習可能なオブジェクト(モデル)。 fit を持つ
Transformer
データ変換するオブジェクト。 fit_transform を持つ
Predictor
予測するオブジェクト。 predict を持つ
Pipeline
複数の処理を直列に繋ぐ。 リーク防止に必須
GridSearchCV
ハイパラ探索を交差検証で行うクラス
random_state
再現性のための乱数シード。 必ず指定

🧮 数値例・実値計算

scikit-learn 標準ワークフロー(典型 7 ステップ):

  1. データを train_test_split で分割
  2. StandardScaler で標準化(fit は訓練データのみ)
  3. モデル選択(例:RandomForestClassifier
  4. fit(X_train, y_train) で学習
  5. predict(X_test) で予測
  6. accuracy_score 等で評価
  7. 必要なら GridSearchCV でハイパラ調整

🐍 Python 実装例

最小コードで動かしてみる例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline

# パイプラインで前処理 + モデルを連結
pipe = Pipeline([
    ('scaler', StandardScaler()),
    ('rf', RandomForestClassifier(n_estimators=100, random_state=42)),
])

X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.2, random_state=42)
pipe.fit(X_tr, y_tr)
print('Acc:', accuracy_score(y_te, pipe.predict(X_te)))

⚠️ よくある落とし穴

❌ Data Leakage
テストデータも含めて fit_transform すると情報漏洩。 必ず Pipeline + train でのみ fit。
❌ random_state 未指定
再現性がなく、 デバッグ困難。 すべて固定する。
❌ カテゴリ変数の扱い
scikit-learn は数値前提。 必ず OneHotEncoder か OrdinalEncoder。
❌ 不均衡データ
accuracy だけ見ると、 多数クラス予測で「精度 95%」が出てしまう。 ROC-AUC / F1 を見る。
❌ 深層学習を期待しない
scikit-learn の MLP は教育用。 本格 NN は PyTorch / TensorFlow へ。