機械学習の基礎

学習目標: 機械学習の3つの主要な手法(教師あり・教師なし・強化学習)を理解する

機械学習とは

機械学習(Machine Learning)とは、明示的にプログラムされることなく、 データからパターンを学習し、予測や判断を行うコンピュータの能力です。

従来のプログラミング vs 機械学習
従来のプログラミング

ルール + データ → 結果

人間がルールを定義する
機械学習

データ + 結果 → ルール

機械がルールを学習する

機械学習の3つの種類

教師あり学習

正解ラベル付きデータで学習


タスク例:

  • スパムメール検出
  • 画像分類
  • 価格予測

アルゴリズム: 線形回帰、決定木、SVM、ニューラルネット

教師なし学習

ラベルなしデータからパターンを発見


タスク例:

  • 顧客セグメンテーション
  • 異常検知
  • 次元削減

アルゴリズム: K-means、階層的クラスタリング、PCA

強化学習

報酬と罰で行動を最適化


タスク例:

  • ゲームAI
  • ロボット制御
  • 自動運転

アルゴリズム: Q学習、DQN、PPO、A3C

機械学習のワークフロー

1

データ収集

2

前処理

3

モデル選択

4

学習

5

評価

簡単な例:線形回帰

住宅価格を面積から予測する例を見てみましょう。

# 線形回帰のシンプルな例
import numpy as np
from sklearn.linear_model import LinearRegression

# データ(面積と価格)
X = np.array([[50], [60], [70], [80], [90]])  # 面積(m²)
y = np.array([1500, 1800, 2100, 2400, 2700])  # 価格(万円)

# モデルの学習
model = LinearRegression()
model.fit(X, y)

# 新しいデータで予測
new_area = np.array([[75]])
predicted_price = model.predict(new_area)
print(f"75m²の予測価格: {predicted_price[0]:.0f}万円")
このコードは、面積と価格の関係を学習し、新しい面積から価格を予測します。

過学習と汎化

過学習(Overfitting)

訓練データに過度に適合し、新しいデータに対する性能が低下

  • 訓練精度は高いが、テスト精度が低い
  • モデルが複雑すぎる
  • データが少なすぎる
汎化(Generalization)

未知のデータに対しても良好な性能を発揮

  • 適切なモデル複雑度
  • 十分なデータ量
  • 正則化の適用

理解度チェック

Q. 顧客を購買傾向でグループ分けするタスクは、どの学習タイプに該当しますか?