統計ロードマップ
2026-04-29·実装·⏱ 約 5

scikit-learn 入門 ─ 30 分で覚える ML 7 ステップ

Python で機械学習を始めるなら scikit-learn が最短ルート。前処理 → 学習 → 評価 → ハイパラ調整までの 7 ステップを最小コードで一気に体験します。

scikit-learn は Python の機械学習ライブラリのデファクトスタンダード。一貫した API で 100 種類以上のアルゴリズムが使え、入門から実務まで活躍します。本記事では 7 ステップで全体像を掴みます。

Step 1 ─ データ読み込み

iris データセットで遊ぶ
from sklearn.datasets import load_iris
import pandas as pd

data = load_iris(as_frame=True)
X, y = data.data, data.target
print(X.head())
print(y.value_counts())

Step 2 ─ 訓練 / テスト分割

8:2 で分割
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

Step 3 ─ 前処理(スケーリング)

標準化
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)  # fit せず transform のみ!
💡 fit/transform/fit_transform

fit = 統計量を学習。transform = それで変換。テストデータには fit_transform を使わない(リーク防止)。

Step 4 ─ モデル学習

ロジスティック回帰
from sklearn.linear_model import LogisticRegression

model = LogisticRegression(max_iter=1000)
model.fit(X_train_scaled, y_train)

Step 5 ─ 評価

精度・混同行列・分類レポート
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

y_pred = model.predict(X_test_scaled)
print('Accuracy:', accuracy_score(y_test, y_pred))
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred, target_names=data.target_names))

Step 6 ─ 交差検証

5-fold CV
from sklearn.model_selection import cross_val_score

scores = cross_val_score(model, X_train_scaled, y_train, cv=5, scoring='accuracy')
print(f'CV mean: {scores.mean():.3f} ± {scores.std():.3f}')

Step 7 ─ ハイパラ最適化(GridSearch)

C パラメータの探索
from sklearn.model_selection import GridSearchCV

params = {'C': [0.01, 0.1, 1, 10, 100]}
grid = GridSearchCV(LogisticRegression(max_iter=1000), params, cv=5)
grid.fit(X_train_scaled, y_train)
print('Best C:', grid.best_params_, 'CV:', grid.best_score_)

おまけ ─ Pipeline でまとめる

前処理+学習を 1 つに
from sklearn.pipeline import Pipeline

pipe = Pipeline([
    ('scaler', StandardScaler()),
    ('clf', LogisticRegression(max_iter=1000)),
])
pipe.fit(X_train, y_train)
pipe.score(X_test, y_test)
🛠 実務での重要性

Pipeline を使うと『前処理を訓練データだけで fit してテストにも適用』が自動化。データリークを防ぎ、再現性も高まります。

次のステップ

  • [統計検定 2 級 教科書](/textbook/grade-2) ─ 線形回帰・ロジスティック回帰の理論
  • [E 資格 教科書](/certs/e-shikaku/textbook) ─ DL への発展
  • [Python 環境構築](/blog/python-setup-for-stats) ─ 環境がまだの方
  • [AIエンジニア統計チートシート](/blog/ai-stats-cheatsheet) ─ 必要な統計知識
Related Articles

関連記事