分類の方法まとめ
(GPTまとめ)
🧩 分類の代表的なやり方
1️⃣ ロジスティック回帰(Logistic Regression)
やり方:
- 入力に「線形モデル」をあてはめる。
- 出力をシグモイド関数で 0〜1 に変換して「確率」として解釈する。
- 0.5以上ならクラスA、未満ならクラスB!みたいに判定。
特徴:
- シンプルで解釈性が高い。
- 線形境界しか引けないので複雑データには弱い。
2️⃣ k近傍法(kNN)
やり方:
- 新しいデータが来たら、「訓練データの中で一番近いk個」を探す。
- 多数決でクラスを決定。
特徴:
- 直感的で実装が超簡単。
- データが大きくなると検索コストが高い。
3️⃣ サポートベクターマシン(SVM)
やり方:
- クラスを分ける「境界線(超平面)」を引く。
- ポイントは「マージン(余白)」を最大化する線を選ぶこと。
- カーネル関数を使えば非線形な境界もOK。
特徴:
- 少ないデータでも強い。
- 大規模データは計算が重くなりがち。
4️⃣ ナイーブベイズ(Naive Bayes)
やり方:
- ベイズの定理を使って「この特徴が出たら、このクラスの確率は何%」を計算。
- 特徴は独立してる(ナイーブ)と仮定する。
特徴:
- テキスト分類(スパムメール判定など)で強い。
- 独立性の仮定は実際はちょっと無理あるけど、それでもわりと当たる。
5️⃣ 決定木(Decision Tree)
やり方:
- if文のツリーを作って分類。
- 「身長 > 170cm?」YES → クラスA、NO → クラスB、みたいな分岐を繰り返す。
特徴:
- わかりやすい&非線形対応。
- 1本の木だと過学習しやすい。
6️⃣ ランダムフォレスト(Random Forest)
やり方:
- 複数の決定木をランダムに作る。
- 多数決で分類を決める。
特徴:
- 過学習に強く、精度も安定。
- 木の数が増えると解釈性は低下。
7️⃣ 勾配ブースティング(XGBoost / LightGBM / CatBoost)
やり方:
- 決定木を「弱い学習器」として次々に追加。
- 前の木が間違えた部分を、次の木が補強していく仕組み。
特徴:
- テーブルデータでは最強クラス。Kaggle常連。
- パラメータ調整が難しい&学習時間はランダムフォレストより長め。
8️⃣ ニューラルネットワーク(MLP, 多層パーセプトロン)
やり方:
- 入力を層ごとの「線形変換 + 活性化関数」で変換していく。
- 出力層でソフトマックス関数を使って確率化。
特徴:
- 複雑な非線形も表現可能。
- データと計算資源が必要。
🎯 まとめイメージ
- シンプル&解釈重視:ロジスティック回帰
- 直感で近いもの勝ち:kNN
- マージン重視でカッコいい境界:SVM
- 確率ベース&速い:ナイーブベイズ
- ルール型:決定木
- 安定万能:ランダムフォレスト
- 精度モンスター:XGBoost/LightGBM/CatBoost
- 表現力モンスター:ニューラルネットワーク