コンテンツにスキップ

5 機械学習入門から実践まで

機械学習のメインビジュアル

第 5 章の目的は 1 つです。データの問題を、学習でき、評価でき、改善できる機械学習プロジェクトに変えることです。

ここまでに、データが数値になること、loss と勾配がモデルの改善をどう説明するかを学びました。この章では、その考えを実務へ移します。予測問題を定義し、baseline を作り、指標を選び、エラーを見て、証拠があるときだけ改善します。

これは数学の直感からモデルエンジニアリングへ進む橋です。第 6 章では同じ証拠の習慣を保ったまま、モデルが tensor と逆伝播で学習するニューラルネットワークになります。

機械学習モデリングの主線閉ループ

先に図を見てください。信頼できる機械学習の多くは、この流れです。

タスクを定義するデータを分けるbaseline を学習する評価するエラーを見る改善する

モデル名を追う前に baseline を作ります。baseline があると、後の変更が本当に改善したか判断できます。

このチェックリストを、本章の学習ガイド兼タスクリストとして使います。モデルを増やす前に、baseline と評価の習慣を先に作ります。

  1. 5.1 機械学習の基礎 手を動かすこと:分類、回帰、クラスタリング、異常検知、特徴量、ラベル、train/test 分割、sklearn の流れを見分ける。 残す証拠:問題定義メモ。

  2. 5.1.5 機械学習の歴史 手を動かすこと:任意の背景として、古典アルゴリズムがなぜ現れたかを軽く読む。 残す証拠:「このアルゴリズムがある理由」のメモ。

  3. 5.2 教師あり学習 手を動かすこと:多数のモデル比較の前に、回帰と分類の例を動かす。 残す証拠:baseline スコアと改善後スコア。

  4. 5.3 教師なし学習 手を動かすこと:ラベルがないときにクラスタリング、次元削減、異常検知を試す。 残す証拠:グラフまたはクラスタ解釈。

  5. 5.4 評価 手を動かすこと:指標を選び、交差検証を使い、バイアス/バリアンスを診断し、慎重に調整する。 残す証拠:指標選択メモとエラーサンプル。

  6. 5.5 特徴量エンジニアリング 手を動かすこと:欠損値、カテゴリ、スケーリング、特徴量作成、特徴量選択、Pipeline を扱う。 残す証拠:特徴量処理ログとリーク確認。

  7. 5.6 プロジェクト5.6.6 ワークショップ 手を動かすこと:住宅価格、離反、分群、Kaggle の前に、再現可能な証拠パックを作る。 残す証拠:README、モデル比較、エラー分析、次の計画。

いま学ぶことどう使うか
必修コアタスク種類、train/test 分割、baseline、指標、エラーサンプル、リーク確認、Pipeline後で LLM Prompt、RAG 検索、Agent 振る舞いの評価習慣になります
任意の拡張追加の古典アルゴリズム、機械学習史、Kaggle 型の反復より広いアルゴリズム比較や競技型ワークフローが必要なときに戻ります
深掘り課題データと指標を固定し、特徴量またはモデル選択を 1 つだけ変え、前後のエラーを説明する根拠のないモデル変更を防ぎます

本章でよく使う用語:

用語意味
featureモデルが使える入力列
label / targetモデルが予測する答え
baselineまず超えるべき最も単純なモデルやルール
metricF1、AUC、MAE、RMSE など、モデルを測るものさし
leakageテストデータや答えの情報が学習へ漏れること
Pipeline前処理とモデルをまとめ、リークを減らす仕組み

sklearn がなければ先に入れます。

Terminal window
python -m pip install scikit-learn

次の自己完結した baseline を実行します。内蔵データセットを使い、データを分割し、dummy baseline と実モデルを学習して比較します。

from sklearn.datasets import load_breast_cancer
from sklearn.dummy import DummyClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
baseline = DummyClassifier(strategy="most_frequent")
baseline.fit(X_train, y_train)
print("Baseline")
print(classification_report(y_test, baseline.predict(X_test), zero_division=0))
model = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))
model.fit(X_train, y_train)
print("Logistic regression")
print(classification_report(y_test, model.predict(X_test), zero_division=0))

期待される形:

Baseline
...
Logistic regression
...

最終スコアだけを比べないでください。どのクラスが簡単で、どのクラスが難しく、実運用でどのエラーが重要かを考えます。

  • baseline は、ほとんど有用なパターンを学ばない素朴なモデルがどこまでできるかを示します。
  • Logistic regression は baseline を超えるべきですが、全体スコアよりクラスごとの precision と recall が重要です。
  • あるクラスの recall が低いなら、モデルを変える前に、その見逃し例を確認します。
  • 次の実験と比べるときは、データ分割、指標、失敗サンプルを固定します。
レベル証明できること
最低合格タスク種類を言え、データを分け、baseline を学習し、スコアを読める。
プロジェクト利用可その指標が目的に合う理由を説明し、1 つのエラーサンプルを示せる。
深い確認リークを確認し、2 つの特徴量案を比べ、実際の製品やデータ更新で何が変わるか言える。

この章を出る前に、間違った予測または弱いクラスタ解釈を1つ保存します。次の形式で書きます。

case_id:
input_summary:
true_or_expected:
model_output:
why_it_matters:
next_controlled_change:

この小さな failure note は、別の model name を覚えるより役立ちます。後の deep learning curves、prompt evaluation、RAG retrieval errors、Agent traces を読む共通習慣になります。

このページを終えたら、この evidence card を残します。

モデリングループ
data、features、model、metric、エラー समीक्षा、次の実験
成果物
code、score、chart、pipeline、または project README
失敗確認
リーク、指標不一致、不安定な分割、過学習、または不明確なビジネス目標
次の行動
多数のパラメータ変更ではなく、1つの制御された実験を行う
期待される成果
深層学習に備えた再現可能なML証拠
症状最初に確認することよくある修正
スコアが妙に高いリークまたは train/test 分割ミス学習前に特徴量と分割方法を確認する
学習スコアは高いがテストスコアが低い過学習モデルを単純にする、正則化する、データを増やす
すべてのモデルが弱いラベルが悪い、特徴量が弱い、指標が合っていないエラーサンプルとラベル定義を見る
accuracy はよいが実務リスクが高いクラス不均衡または false negative のコストが高いrecall、precision、F1、AUC、しきい値確認を使う
結果を再現できないrandom seed、データバージョン、依存関係が変わったseed を固定し、バージョンを記録する

次の 5 つに答えられたら、第 6 章へ進めます。

  • このタスクは分類、回帰、クラスタリング、異常検知のどれですか?
  • baseline は何で、実モデルはどのスコアを超える必要がありますか?
  • 目的に合う指標は何で、accuracy はいつ誤解を招きますか?
  • データリークをどう確認しましたか?
  • モデルは何が得意で、何が苦手で、次にどこを改善しますか?
確認の考え方と解説
  1. まず target を見ます。カテゴリを予測するなら分類、連続値を予測するなら回帰、ラベルがないならクラスタリングや異常検知を疑います。
  2. baseline は、最も単純で再現できるモデルまたはルールです。同じ分割と同じ指標でそれを超えたときだけ、より複雑なモデルに意味があります。
  3. 指標はミスのコストから選びます。クラス不均衡がある場合や、片方のミスが高コストな場合、accuracy は誤解を招きます。
  4. リーク確認では、各特徴量に target、未来情報、テストデータ、人手レビュー結果が混じっていないかを確認します。
  5. よい次の一手は、弱点を 1 つ、証拠サンプルを 1 つ、変更点を 1 つに絞って説明できます。

印刷用のチェックリストが必要なときは、5.0 学習ガイドとタスクリスト を使ってください。次の章では sklearn モデルからニューラルネットワークと深層学習へ進みます。