Support Vector Machines(支持向量机)
Support Vector Machines (SVM) は強力な機械学習アルゴリズムの1つで、分類や回帰に使用されます。以下にSVMの主要な特徴と概念をまとめます: SVMの基本概念 目的: SVMの主な目的は、異なるクラスのデータポイントを最大マージンで分離する超平面を見つけることです。 超平面: wTx+b=0wTx+b=0 ここで、wは重みベクトル、xは入力ベクトル、bはバイアス項です。 マージン: クラスを分離する超平面と、それに最も近いデータポイント(サポートベクトル)との距離。 サポートベクトル: 決定境界に最も近いデータポイントで、分類に最も重要な役割を果たします。 SVMの数学的表現 最適化問題として表現すると: $$ \min_{w,b} \frac{1}{2} ||w||^2 $$ 制約条件: $$ y_i(w^T x_i + b) \geq 1, \quad \forall i $$ ここで、$y_i$はクラスラベル(±1)、$x_i$は入力ベクトルです。 カーネルトリック 非線形の決定境界を扱うために、SVMはカーネル関数を使用して高次元空間にデータを射影します。一般的なカーネル関数には: 線形カーネル: $K(x_i, x_j) = x_i^T x_j$ 多項式カーネル: $K(x_i, x_j) = (x_i^T x_j + r)^d$ RBF (ガウシアン) カーネル: $K(x_i, x_j) = \exp(-\gamma ||x_i - x_j||^2)$ SVMの利点 高次元空間でも効果的に機能する メモリ効率が良い(サポートベクトルのみを使用) さまざまなカーネル関数を使用して柔軟性が高い SVMの欠点 大規模データセットに対しては計算コストが高い ノイズの多いデータセットでは性能が低下する可能性がある 確率推定を直接提供しない 実装例 (Python/scikit-learn) python...