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, (^^ゞ