機械学習の基礎
学習目標: 機械学習の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. 顧客を購買傾向でグループ分けするタスクは、どの学習タイプに該当しますか?