「機械学習を勉強したいけど、種類が多すぎてどこから手をつければ…」 「SVM、CNN、LSTM…アルファベットの羅列で頭が痛い」 「結局、どれを使えばいいの?」
機械学習には100種類以上のアルゴリズムがあり、さらに日々新しい手法が生まれています。
でも安心してください。実は、基本的な分類を理解すれば、すべてが整理できます。レストランのメニューのように、「前菜」「メイン」「デザート」と分類されていれば選びやすいのと同じです。
今回は、機械学習の種類を4つの観点から体系的に整理し、それぞれの特徴、使いどころ、実例まで完全網羅します!
機械学習の4つの分類軸:まず全体像を把握しよう

機械学習を分類する4つの観点
異なる角度から見た分類:
分類軸 | 分類内容 | 例 |
---|---|---|
①学習方法 | データの与え方 | 教師あり・教師なし・強化学習 |
②タスク | 何を解決するか | 分類・回帰・クラスタリング |
③アルゴリズム | 計算手法 | 決定木・SVM・ニューラルネット |
④データ形式 | 扱うデータ | 構造化・画像・テキスト・時系列 |
これらを組み合わせて、最適な手法を選びます。
分類①:学習方法による分類(3+2種類)
1. 教師あり学習(Supervised Learning)
正解付きデータで学習:
特徴 | 詳細 |
---|---|
必要なデータ | 入力データ + 正解ラベル |
目的 | 予測・分類 |
精度 | 評価しやすい |
データ準備 | ラベル付けが大変 |
主なアルゴリズム:
アルゴリズム | 用途 | 特徴 | 実用例 |
---|---|---|---|
線形回帰 | 数値予測 | シンプル、解釈容易 | 売上予測、株価予測 |
ロジスティック回帰 | 2値分類 | 確率出力 | 合否判定、与信審査 |
決定木 | 分類・回帰 | 可視化可能 | 顧客分析、診断支援 |
ランダムフォレスト | 分類・回帰 | 高精度、過学習に強い | 不正検知、価格予測 |
SVM | 分類・回帰 | 高次元に強い | 文字認識、顔認識 |
k-NN | 分類・回帰 | 実装簡単 | 推薦システム |
ナイーブベイズ | 分類 | 高速、テキストに強い | スパムフィルタ |
勾配ブースティング | 分類・回帰 | 最高精度 | コンペティション |
2. 教師なし学習(Unsupervised Learning)
正解なしでパターンを発見:
特徴 | 詳細 |
---|---|
必要なデータ | 入力データのみ |
目的 | 構造発見、グループ化 |
精度 | 評価が難しい |
データ準備 | ラベル不要で楽 |
主なアルゴリズム:
アルゴリズム | タスク | 特徴 | 実用例 |
---|---|---|---|
k-means | クラスタリング | シンプル、高速 | 顧客セグメント |
階層クラスタリング | クラスタリング | 樹形図で可視化 | 生物分類 |
DBSCAN | クラスタリング | 任意の形状対応 | 異常検知 |
PCA(主成分分析) | 次元削減 | データ圧縮 | 特徴抽出 |
t-SNE | 次元削減 | 可視化に特化 | データ可視化 |
オートエンコーダ | 次元削減 | 深層学習版 | 画像圧縮 |
GMM(混合ガウス) | クラスタリング | 確率的分類 | 音声認識 |
孤立森 | 異常検知 | 外れ値検出 | 不正検知 |
3. 強化学習(Reinforcement Learning)
試行錯誤で最適行動を学習:
特徴 | 詳細 |
---|---|
必要なデータ | 環境からの報酬 |
目的 | 累積報酬最大化 |
学習方法 | 試行錯誤 |
応用分野 | ゲーム、ロボット |
主なアルゴリズム:
アルゴリズム | 特徴 | 実用例 |
---|---|---|
Q学習 | 価値ベース | 迷路解決 |
SARSA | オンライン学習 | ロボット制御 |
DQN | 深層強化学習 | Atariゲーム |
A3C | 並列学習 | 複雑なゲーム |
PPO | 安定学習 | OpenAI Five |
AlphaGo/Zero | 自己対戦 | 囲碁、将棋 |
4. 半教師あり学習(Semi-supervised Learning)
少量の正解データ + 大量の未ラベルデータ:
手法 | 説明 | 使用場面 |
---|---|---|
自己学習 | 予測結果を正解として追加 | 画像分類 |
共学習 | 複数モデルで相互学習 | テキスト分類 |
グラフベース | データ間の関係を利用 | SNS分析 |
5. 自己教師あり学習(Self-supervised Learning)
データから自動的にラベルを生成:
手法 | 説明 | 実例 |
---|---|---|
マスク言語モデル | 単語を隠して予測 | BERT |
次単語予測 | 次の単語を予測 | GPT |
コントラスト学習 | 類似性を学習 | SimCLR |
分類②:タスクによる分類
主要タスク一覧
解決したい問題による分類:
タスク | 説明 | 出力 | 例 |
---|---|---|---|
分類(Classification) | カテゴリ分け | 離散値 | スパム判定 |
回帰(Regression) | 数値予測 | 連続値 | 売上予測 |
クラスタリング | グループ化 | クラスタID | 顧客分類 |
次元削減 | 特徴圧縮 | 低次元データ | データ可視化 |
異常検知 | 外れ値発見 | 正常/異常 | 不正検知 |
密度推定 | 分布推定 | 確率密度 | 市場分析 |
推薦 | アイテム提案 | ランキング | Netflix推薦 |
生成 | 新規作成 | 新データ | 画像生成 |
タスク別の適切なアルゴリズム
どのタスクにどのアルゴリズムを使うか:
タスク | 最適なアルゴリズム | 理由 |
---|---|---|
2値分類 | ロジスティック回帰、SVM | シンプルで高速 |
多クラス分類 | ランダムフォレスト、XGBoost | 高精度 |
線形回帰 | 線形回帰、Ridge、Lasso | 解釈性高い |
非線形回帰 | ランダムフォレスト、ニューラルネット | 複雑な関係 |
時系列予測 | ARIMA、LSTM、Prophet | 時間依存性 |
画像分類 | CNN(畳み込みNN) | 空間特徴 |
テキスト分類 | BERT、Transformer | 文脈理解 |
分類③:アルゴリズムファミリーによる分類

1. 線形モデル
直線や平面で分離・予測:
アルゴリズム | 用途 | 長所 | 短所 |
---|---|---|---|
線形回帰 | 回帰 | 高速、解釈容易 | 非線形に弱い |
Ridge回帰 | 回帰 | 過学習防止 | パラメータ調整 |
Lasso回帰 | 回帰+特徴選択 | 自動特徴選択 | 計算コスト |
ElasticNet | 回帰 | RidgeとLassoの良いとこ取り | 複雑 |
ロジスティック回帰 | 分類 | 確率出力 | 線形分離のみ |
2. 木ベースモデル
if-thenルールで分岐:
アルゴリズム | 特徴 | 精度 | 速度 |
---|---|---|---|
決定木 | 可視化可能 | ★★☆ | ★★★ |
ランダムフォレスト | アンサンブル | ★★★★ | ★★☆ |
XGBoost | 勾配ブースティング | ★★★★★ | ★★☆ |
LightGBM | 高速版XGBoost | ★★★★★ | ★★★ |
CatBoost | カテゴリ特徴に強い | ★★★★★ | ★★☆ |
3. 距離ベースモデル
データ間の距離を利用:
アルゴリズム | 原理 | 適用場面 |
---|---|---|
k-NN | 近傍の多数決 | 少量データ |
k-means | 重心からの距離 | クラスタリング |
SVM | マージン最大化 | 高次元データ |
4. 確率モデル
確率論に基づく:
アルゴリズム | 基礎理論 | 得意分野 |
---|---|---|
ナイーブベイズ | ベイズの定理 | テキスト分類 |
ガウス混合モデル | 正規分布 | 密度推定 |
隠れマルコフモデル | マルコフ連鎖 | 系列データ |
5. ニューラルネットワーク
脳を模した多層構造:
種類 | 構造 | 用途 | 代表例 |
---|---|---|---|
全結合NN | 全ノード接続 | 汎用 | MLP |
CNN | 畳み込み層 | 画像 | ResNet、VGG |
RNN | 再帰構造 | 時系列 | LSTM、GRU |
Transformer | 注意機構 | NLP | BERT、GPT |
GAN | 生成/識別 | 生成 | StyleGAN |
VAE | 変分推論 | 生成 | β-VAE |
GNN | グラフ構造 | グラフ | GCN |
分類④:データ形式による分類
データタイプ別の最適手法
扱うデータによって選ぶ:
データ形式 | 特徴 | 推奨アルゴリズム | 実例 |
---|---|---|---|
構造化データ | 表形式 | XGBoost、ランダムフォレスト | 売上データ |
画像 | ピクセル | CNN、Vision Transformer | 顔認識 |
テキスト | 文字列 | BERT、GPT、TF-IDF+SVM | 感情分析 |
音声 | 波形 | RNN、WaveNet | 音声認識 |
時系列 | 時間順序 | LSTM、ARIMA、Prophet | 株価予測 |
グラフ | ネットワーク | GNN、PageRank | SNS分析 |
動画 | 連続画像 | 3D CNN、Video Transformer | 行動認識 |
実践的な選択フローチャート
アルゴリズム選択の決定木
スタート
│
├─ データにラベルがある?
│ │
│ ├─ Yes → 教師あり学習
│ │ │
│ │ ├─ 出力は数値?
│ │ │ ├─ Yes → 回帰
│ │ │ │ ├─ データ量1万件以上?
│ │ │ │ │ ├─ Yes → XGBoost/ニューラルネット
│ │ │ │ │ └─ No → 線形回帰/ランダムフォレスト
│ │ │ │
│ │ │ └─ No → 分類
│ │ │ ├─ 画像データ?
│ │ │ │ ├─ Yes → CNN
│ │ │ │ └─ No → ランダムフォレスト/XGBoost
│ │
│ └─ No → 教師なし学習
│ │
│ ├─ グループ分けしたい?
│ │ ├─ Yes → クラスタリング(k-means)
│ │ └─ No → 次元削減(PCA)
│
└─ 環境との相互作用?
└─ Yes → 強化学習
性能比較表:どれが最強?
総合評価マトリックス
各観点からの評価(5段階):
アルゴリズム | 精度 | 速度 | 解釈性 | データ量 | 実装容易性 |
---|---|---|---|---|---|
線形回帰 | ★★☆☆☆ | ★★★★★ | ★★★★★ | ★★★★★ | ★★★★★ |
決定木 | ★★★☆☆ | ★★★★☆ | ★★★★★ | ★★★★☆ | ★★★★★ |
ランダムフォレスト | ★★★★☆ | ★★★☆☆ | ★★★☆☆ | ★★★☆☆ | ★★★★☆ |
XGBoost | ★★★★★ | ★★★☆☆ | ★★☆☆☆ | ★★★☆☆ | ★★★☆☆ |
SVM | ★★★★☆ | ★★☆☆☆ | ★★☆☆☆ | ★★☆☆☆ | ★★★☆☆ |
ニューラルネット | ★★★★★ | ★★☆☆☆ | ★☆☆☆☆ | ★☆☆☆☆ | ★★☆☆☆ |
k-means | ★★★☆☆ | ★★★★★ | ★★★★☆ | ★★★★☆ | ★★★★★ |
2024年最新トレンド
注目の手法
今熱い機械学習技術:
トレンド | 説明 | 代表例 |
---|---|---|
大規模言語モデル | 巨大Transformer | GPT-4、Claude |
マルチモーダル | 複数種類のデータ統合 | CLIP、Flamingo |
Few-shot学習 | 少数サンプルで学習 | MAML、Prototypical Networks |
連合学習 | 分散プライバシー保護 | FedAvg |
説明可能AI | ブラックボックス解消 | LIME、SHAP |
AutoML | 自動機械学習 | AutoGluon、H2O |
量子機械学習 | 量子コンピュータ活用 | Qiskit |
実装例:主要アルゴリズムのコード

Pythonでの基本実装
scikit-learnを使った実装例:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# データ準備
X, y = load_data() # データ読み込み
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 1. 線形回帰
from sklearn.linear_model import LinearRegression
model = LinearRegression()
# 2. ロジスティック回帰
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
# 3. 決定木
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
# 4. ランダムフォレスト
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100)
# 5. SVM
from sklearn.svm import SVC
model = SVC(kernel='rbf')
# 6. k-means
from sklearn.cluster import KMeans
model = KMeans(n_clusters=3)
# 学習と予測(教師あり学習の場合)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"精度: {accuracy:.2%}")
学習ロードマップ
初心者から上級者への道
段階的な学習計画:
レベル | 期間 | 学習内容 | ゴール |
---|---|---|---|
入門 | 1-2ヶ月 | 線形回帰、ロジスティック回帰、決定木 | 基礎理解 |
初級 | 3-4ヶ月 | ランダムフォレスト、SVM、k-means | scikit-learn習得 |
中級 | 5-6ヶ月 | XGBoost、ニューラルネット基礎 | Kaggle参加 |
上級 | 7-12ヶ月 | 深層学習、最新論文 | 実務応用 |
専門 | 1年以上 | 専門分野特化(NLP/CV/RL) | 研究開発 |
よくある質問(FAQ)
Q1:最初に学ぶべきアルゴリズムは?
A:線形回帰と決定木から始めましょう
- 概念が理解しやすい
- 可視化できる
- 多くの手法の基礎
Q2:深層学習だけ学べばいい?
A:いいえ、従来手法も重要です
- データが少ない場合は従来手法が優位
- 解釈性が求められる場合も多い
- 計算リソースの制約
Q3:XGBoostが最強って本当?
A:構造化データでは最強クラスですが…
- 画像→CNN
- テキスト→BERT
- 時系列→LSTM
- 適材適所が大切
Q4:数学はどの程度必要?
A:レベルによります
- 使うだけ→高校数学
- 理解する→大学初級(線形代数、統計)
- 開発する→大学院レベル
Q5:どのライブラリを使うべき?
A:目的による
- 入門→scikit-learn
- 深層学習→PyTorch/TensorFlow
- 表形式→XGBoost/LightGBM
- AutoML→AutoGluon
まとめ:機械学習の種類を体系的に理解しよう
機械学習の種類は多様ですが、4つの分類軸で整理すれば見通しが良くなります。
重要ポイント:
- 📊 学習方法:教師あり・なし・強化学習
- 🎯 タスク:分類・回帰・クラスタリング
- 🧮 アルゴリズム:線形・木・NN・確率
- 📁 データ形式:構造化・画像・テキスト
実践的アドバイス:
- まず問題を明確に定義
- データの性質を理解
- シンプルな手法から試す
- 段階的に複雑な手法へ
最後に: 「最新=最良」ではありません。問題に適した手法を選ぶことが、機械学習プロジェクト成功の鍵です。
この一覧を参考に、あなたの課題に最適な機械学習手法を見つけてください!
コメント