Shikata Ga Nai

Private? There is no such things.

27. 機械学習の基礎② 〜分類・回帰モデルの違い〜

Hello there, ('ω')ノ

📌 1. 分類(Classification)とは?

分類(Classification) は、データを カテゴリ(離散的な値) に分類するタスクです。

📌 分類の例

問題 説明
スパムメール分類 メールが「スパム」か「スパムでない」かを予測 2クラス分類
手書き数字認識 数字(0〜9)を分類 多クラス分類
がん診断 「良性」か「悪性」かを分類 2クラス分類

分類モデルは「どのカテゴリに属するか?」を予測する!

✅ 代表的な分類アルゴリズム

アルゴリズム 特徴
ロジスティック回帰 シンプルで解釈しやすい スパム分類
ランダムフォレスト 高精度で汎用性が高い 画像分類
XGBoost / LightGBM 勾配ブースティングで高性能 顧客の購買予測

分類では「ロジスティック回帰」や「決定木系(ランダムフォレスト, XGBoost)」がよく使われる!


📌 2. 回帰(Regression)とは?

回帰(Regression) は、データから 連続値(数値)を予測するタスク です。

📌 回帰の例

問題 説明
住宅価格予測 家の面積・部屋数から価格を予測 数値予測
売上予測 広告費から売上を予測 数値予測
気温予測 天気データから翌日の気温を予測 数値予測

回帰モデルは「数値」を予測する!

✅ 代表的な回帰アルゴリズム

アルゴリズム 特徴
線形回帰(Linear Regression) シンプルで解釈しやすい 住宅価格予測
ランダムフォレスト回帰 非線形データに強い 売上予測
XGBoost回帰 勾配ブースティングで高精度 株価予測

回帰では「線形回帰」や「ランダムフォレスト回帰」がよく使われる!


📌 3. 分類 vs 回帰の違い

分類と回帰の違いを整理すると、以下のようになります。

分類(Classification) 回帰(Regression)
予測対象 カテゴリ(離散値) 数値(連続値)
「犬 or 猫」, 「スパム or 非スパム」 売上予測, 気温予測
代表的な手法 ロジスティック回帰, ランダムフォレスト, XGBoost 線形回帰, ランダムフォレスト回帰, XGBoost回帰
評価指標 Accuracy, F1-score, AUC RMSE, MAE, R²

予測したいデータが「カテゴリ」か「数値」かでモデルを選ぶ!


📌 4. Pythonで分類・回帰を試してみよう!

✅ 分類(ロジスティック回帰を使って手書き数字を分類)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

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

y_pred = model.predict(X_test_scaled)

手書き数字(0〜9)を分類するシンプルなモデル!
分類タスクでは「Accuracy(正解率)」を指標にする!


✅ 回帰(線形回帰を使って住宅価格を予測)

from sklearn.linear_model import LinearRegression
from sklearn.datasets import fetch_california_housing
from sklearn.metrics import mean_squared_error

# 住宅価格データをロード
data = fetch_california_housing()
X, y = data.data, data.target

# データを学習用・テスト用に分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 線形回帰モデルの学習
model = LinearRegression()
model.fit(X_train, y_train)

# 予測
y_pred = model.predict(X_test)

# RMSE(平均二乗誤差)を表示
rmse = mean_squared_error(y_test, y_pred, squared=False)
print(f"RMSE: {rmse:.2f}")

住宅価格を予測する線形回帰モデル!
回帰タスクでは「RMSE(誤差)」を評価指標にする!


📌 5. 分類か回帰か迷ったときの選び方

もし、分類か回帰かで迷ったら、以下のポイントをチェックしましょう!

質問 分類(Yes) 回帰(No)
予測結果は「カテゴリ(A/B/Cなど)」ですか?
予測結果は「数値」ですか?
予測結果が「Yes / No」などの二択ですか?
目的変数が数値だけど、グループ分けしたい? ✅(分類)

「予測したいもの」がカテゴリか数値かで選ぶ!


🎯 まとめ

分類は「カテゴリ(犬 or 猫)」、回帰は「数値(売上)」を予測!
分類は「ロジスティック回帰・ランダムフォレスト」、回帰は「線形回帰・XGBoost」などを使う!
Pythonで簡単に分類・回帰モデルを試せる!

Best regards, (^^ゞ