教師あり学習って、どんな学習方法なんですか?
正解ラベル(目的変数)付きのデータを使い、入力から出力を予測するモデルを学習する手法だよ。「この入力にはこの正解」というペアをたくさん見せて、パターンを覚えさせるイメージだね。
教師あり学習には種類があるんですか?
大きく分類(Classification)と回帰(Regression)の2つに分かれるよ。予測する対象がカテゴリなら分類、数値なら回帰だね。
| 種類 | 予測対象 | 例 |
|---|---|---|
| 分類(Classification) | カテゴリ(離散値) | スパム判定、画像認識、病気の診断 |
| 回帰(Regression) | 数値(連続値) | 価格予測、気温予測、売上予測 |
| アルゴリズム | 特徴 | 用途 |
|---|---|---|
| 線形回帰 | シンプル、解釈しやすい | 回帰 |
| ロジスティック回帰 | 確率を出力、2クラス分類に強い | 分類 |
| 決定木 | 条件分岐で判断、可視化しやすい | 分類・回帰 |
| ランダムフォレスト | 複数の決定木を組み合わせる | 分類・回帰 |
| SVM | マージン最大化で分類 | 分類・回帰 |
| k-NN(k近傍法) | 近くのデータ点を参照 | 分類・回帰 |
| ナイーブベイズ | ベイズの定理+独立仮定で高速分類 | 分類(テキスト分類に強い) |
| ニューラルネットワーク | 脳の神経細胞を模倣、層構造で学習 | 分類・回帰(複雑なパターンに強い) |
こんなにたくさんアルゴリズムがあるんですね。結局どれが一番優れているんですか?
実は「すべての問題に対して最強のアルゴリズムは存在しない」ことが数学的に証明されているんだ。これがノーフリーランチ定理(NFL定理)だよ。1997年にウォルパートとマクレディが提唱したんだ。
「あらゆる問題に対して平均的に見れば、どのアルゴリズムも同じ性能になる」
つまり、ある問題で優れたアルゴリズムは、別の問題では劣る可能性がある。万能な手法は存在しないということ。
「フリーランチ(タダ飯)はない」ってどういう意味ですか?
「何の工夫もなしに良い結果が得られる(=タダ飯が食える)ことはない」ということだよ。問題の特性をよく理解して、それに適したアルゴリズムを選ぶ努力が必要なんだ。
・SVMが画像分類で最強でも、テキスト分類ではナイーブベイズに負けることがある
・ディープラーニングが万能に見えても、少量データでは決定木に劣ることがある
・だから問題に応じて手法を選択・比較することが大切
回帰分析にも種類があるんですか?
説明変数が1つなら単回帰分析、2つ以上なら重回帰分析だよ。単回帰は直線を引くイメージ、重回帰は多次元の平面を当てはめるイメージだね。
| 単回帰分析 | 重回帰分析 | |
|---|---|---|
| 説明変数の数 | 1つ | 2つ以上 |
| 式 | y = ax + b | y = a₁x₁ + a₂x₂ + ... + b |
| イメージ | 直線を引く | 多次元の平面を当てはめる |
| 例 | 勉強時間→点数 | 勉強時間+睡眠+出席率→点数 |
重回帰の各変数の重み(a₁, a₂...)。他の変数の影響を取り除いた上でのその変数単独の影響度。
予測と実際の値の差の2乗合計を最小化してパラメータ(a, b)を求める方法。
相関係数って何を表す数値ですか?
2変数の関係の強さと方向を-1〜+1で表す指標だよ。値が1に近ければ正の相関、-1に近ければ負の相関、0に近ければ相関が弱いことを示すんだ。
| 値 | 意味 |
|---|---|
| +1に近い | 正の相関が強い(一方が上がると他方も上がる) |
| -1に近い | 負の相関が強い(一方が上がると他方は下がる) |
| 0に近い | 相関が弱い |
相関の強さは絶対値で見る。-0.9も+0.9も同じくらい強い相関。
多重共線性って何ですか?
説明変数同士の相関が高すぎると、重回帰の偏回帰係数が不安定になる問題のことだよ。例えば「身長」と「足のサイズ」は強く相関しているから、両方入れると重みが不安定になるんだ。
説明変数同士の相関が高すぎると、重回帰の偏回帰係数が不安定になる問題。例:「身長」と「足のサイズ」は強く相関 → 両方入れると重みが不安定になる。
「ロジスティック回帰」って名前に回帰とありますが、回帰なんですか?
これは要注意ポイントだね。名前に「回帰」とあるけど、実は分類手法なんだ。入力から確率(0〜1)を出力して分類に使うよ。
1. 線形回帰と同じく a₁x₁ + a₂x₂ + ... + b を計算
2. シグモイド関数で0〜1の確率に変換
3. 確率0.5以上→「Yes」、0.5未満→「No」と分類
| 線形回帰 | ロジスティック回帰 | |
|---|---|---|
| タスク | 回帰(数値予測) | 分類(カテゴリ予測) |
| 出力 | 数値(-∞〜+∞) | 確率(0〜1) |
| 変換関数 | なし | シグモイド関数 |
| 損失関数 | 平均二乗誤差(MSE) | 交差エントロピー |
ロジスティック回帰を多クラスに拡張したものをソフトマックス回帰(多項ロジスティック回帰)と呼ぶ。
SVMってどんなアルゴリズムですか?
データを分ける決定境界(分離超平面)を、マージンを最大化して引く教師あり学習手法だよ。マージンを最大にすることで、未知データにも対応しやすくなるんだ。
ハードマージンとソフトマージンの違いは何ですか?
ハードマージンは誤分類を一切許さないSVM、ソフトマージンはある程度の誤分類を許容するSVMだよ。現実のデータはきれいに分かれないことが多いので、通常はソフトマージンを使うんだ。
| ハードマージン | ソフトマージン | |
|---|---|---|
| 誤分類 | 一切許さない | ある程度許容する |
| 対応できるデータ | きれいに分かれるデータのみ | ノイズのある現実のデータ |
| スラック変数 | なし | あり(ξ:クサイ) |
ソフトマージンSVMで、各データ点がマージンの内側にどれだけ入り込んでいるか(=どれだけ誤分類を許しているか)を表す変数。
| ξの値 | 意味 |
|---|---|
| ξ = 0 | マージンの外側で正しく分類されている |
| 0 < ξ < 1 | マージンの内側だが、正しいクラス側にいる |
| ξ ≥ 1 | 誤分類されている |
最小化 = マージンの逆数 + C x Σξ
C(正則化パラメータ): 誤分類をどれだけ許すかの調整
・Cが大きい → 誤分類を厳しく罰する(ハードマージンに近づく)
・Cが小さい → 誤分類を多めに許す(マージンを広く取る)
直線で分けられないデータはどうするんですか?
カーネルトリックを使うんだ。データを高次元空間に写像して線形分離可能にする手法で、実際に高次元に変換する計算をせず、カーネル関数で効率的に計算できるから「トリック」と呼ばれるんだよ。
| カーネル | 用途 |
|---|---|
| 線形カーネル | そのまま直線で分離できる場合 |
| 多項式カーネル | 曲線的な境界が必要な場合 |
| RBF(ガウス)カーネル | 最もよく使われる。複雑な境界に対応 |
| SVMの長所 | SVMの短所 |
|---|---|
| 汎化性能が高い(マージン最大化) | 大規模データでは計算コストが大きい |
| 過学習しにくい | パラメータ(C、カーネル)の調整が必要 |
| カーネルで非線形にも対応 | 基本的に2クラス分類(多クラスは工夫が必要) |
| 少量データでも有効 | 結果の解釈が難しい |
SVMを回帰に使ったものがSVR(Support Vector Regression)。マージン内にデータを収めるように回帰する。
決定木ってどんなアルゴリズムですか?
条件分岐(if-then)を繰り返してデータを分類・予測する手法だよ。フローチャートのような木構造を作るんだ。解釈しやすいホワイトボックスモデルの代表例だね。
| 用語 | 意味 |
|---|---|
| ルートノード(根) | 最初の分岐点(一番上) |
| 内部ノード(節) | 途中の分岐点 |
| リーフノード(葉) | 最終的な予測結果(末端) |
| 深さ(depth) | ルートからの分岐回数 |
分岐条件はどうやって決めるんですか?
「最もうまくデータを分けられる条件」を選ぶんだ。基準として情報利得とジニ不純度の2つがあるよ。不純度が低い=ほぼ1つのクラスだけ(良い分岐)ということだね。
| 指標 | 説明 | 使うアルゴリズム |
|---|---|---|
| 情報利得(Information Gain) | 分岐で「不純度」がどれだけ下がったか | ID3, C4.5 |
| ジニ不純度(Gini Impurity) | クラスの混ざり具合(0に近いほど純粋) | CART |
| アルゴリズム | 分岐基準 | 特徴 |
|---|---|---|
| ID3 | 情報利得 | 初期の決定木。カテゴリ変数のみ |
| C4.5 | 情報利得比 | ID3の改良。数値変数も扱える |
| CART | ジニ不純度 | 分類にも回帰にも使える。2分岐のみ |
| 決定木の長所 | 決定木の短所 |
|---|---|
| 解釈しやすい(木を見れば判断理由がわかる) | 過学習しやすい(深くしすぎると) |
| 前処理が少ない(正規化不要) | 境界が軸に平行な直線のみ(斜めには切れない) |
| カテゴリ・数値どちらも扱える | データの小さな変化で木が大きく変わる(不安定) |
木を深くしすぎると過学習するので、不要な枝を切り落とす。
| 手法 | 説明 |
|---|---|
| 事前剪定(Pre-pruning) | 木を育てる途中で深さや条件を制限して止める |
| 事後剪定(Post-pruning) | 木を育てきってから、不要な枝を後から刈り込む |
決定木の弱点(不安定・過学習しやすい)を補うために、複数の決定木を組み合わせる手法が生まれた。→ バギング(ランダムフォレスト)やブースティング(XGBoost)など。
k-NNってどういう考え方のアルゴリズムですか?
新しいデータが来たら、一番近い既存データk個を見て多数決で分類する手法だよ。「似たものは近くにある」という考え方がベースになっているんだ。
| kの値 | 特徴 |
|---|---|
| kが小さい(例: k=1) | ノイズに敏感。過学習しやすい |
| kが大きい(例: k=100) | 滑らかだが大雑把。未学習になりやすい |
距離の計算方法にも種類があるんですか?
そうだよ。代表的なのはユークリッド距離(直線距離)で、最もよく使われるんだ。kの決め方には交差検証(Cross Validation)を使うのが一般的だね。
| 距離 | 説明 |
|---|---|
| ユークリッド距離 | 直線距離(最もよく使われる) |
| マンハッタン距離 | 縦横の合計距離(格子状に移動する距離) |
| ミンコフスキー距離 | ユークリッドとマンハッタンを一般化したもの |
| k-NNの長所 | k-NNの短所 |
|---|---|
| アルゴリズムが非常にシンプル | 予測が遅い(毎回全データとの距離を計算) |
| 学習が不要(データを保存するだけ) | 大規模データでは計算コスト大 |
| 非線形の境界にも対応できる | 特徴量のスケールに影響を受ける(要正規化/標準化) |
| 分類にも回帰にも使える | 高次元データでは精度が下がりやすい(次元の呪い) |
怠惰学習(Lazy Learning)と呼ばれる。学習フェーズがなく、予測時にはじめて計算する。
距離ベースなので正規化・標準化が必須(スケールが違うと距離がおかしくなる)。
次元の呪い: 特徴量が多すぎると高次元空間では距離の差が小さくなり、うまく機能しなくなる。
ナイーブベイズってどんなアルゴリズムですか?
ベイズの定理を使い、各クラスの確率を計算して最も確率が高いクラスに分類する手法だよ。特にテキスト分類(スパム判定など)で広く使われるんだ。
「結果から原因を推測する」確率の公式。
P(クラス|データ) = P(データ|クラス) x P(クラス) / P(データ)
| 用語 | 意味 | 例(スパム判定) |
|---|---|---|
| 事前確率 P(クラス) | データを見る前のクラスの割合 | 全メールのうちスパムが30% → P(スパム)=0.3 |
| 尤度 P(データ|クラス) | そのクラスでこのデータが出る確率 | スパムに「当選」が含まれる確率 → 0.8 |
| 事後確率 P(クラス|データ) | データを見た後のクラスの確率(求めたいもの) | このメールがスパムである確率 |
「ナイーブ」って何が素朴なんですか?
特徴量がすべて互いに独立と仮定しているところが「ナイーブ(素朴・単純)」なんだ。例えば「当選」という単語と「無料」という単語が出る確率は独立と仮定する。現実には単語同士は関連しがちだけど、この仮定のおかげで計算が非常に高速になるんだよ。
| 種類 | 特徴量の分布 | 用途 |
|---|---|---|
| 多項分布ナイーブベイズ | 単語の出現回数(カウント) | 文書分類(最もよく使われる) |
| ベルヌーイナイーブベイズ | 単語の有無(0/1) | 短い文書の分類 |
| ガウシアンナイーブベイズ | 連続値(正規分布を仮定) | 数値データの分類 |
| ナイーブベイズの長所 | ナイーブベイズの短所 |
|---|---|
| 高速(学習も予測も速い) | 特徴量の独立仮定が現実に合わないこともある |
| 少量データでも動作する | 独立でない特徴量が多いと精度が下がりやすい |
| テキスト分類に非常に強い | 確率値そのものは不正確になりがち |
| 多クラス分類に自然に対応 | 学習データにないカテゴリは確率0になる(要対策) |
1. データ収集:入力と正解ラベルのペアを用意
2. 学習:モデルがパターンを学習
3. 評価:テストデータで精度を確認
4. 予測:新しいデータに対して予測