SVMの境界線は直線なのか?初心者にもわかりやすく解説!

こんにちは。ゆうせいです。
Support Vector Machine(SVM)は、機械学習でよく使われる分類アルゴリズムの一つです。とてもパワフルなのですが、よくある疑問の一つが「SVMの境界線って直線なの?」というもの。
結論から言いますと……
場合によります!
もっと正確に言うと、線形SVMなら境界線は直線(または平面)ですが、カーネルSVMなら曲線にもなります。
では、それぞれ詳しく見ていきましょう。
線形SVM:境界は直線または平面
SVMの基本形は「線形SVM」と呼ばれます。これは、データが直線で分けられると仮定して分類を行います。
例えばこんな感じです:
境界線を数式で表すと
線形SVMの境界線は、次のような式で表されます:
これはベクトルの内積で表現されています。日本語で言うと、
- $w$(ダブリュー)は「重みベクトル」
- $x$(エックス)は「入力ベクトル」
- $b$(ビー)は「バイアス(定数項)」
です。
これは高校で習う一次関数($y = ax + b$)と同じイメージで、「平面上の直線」または「高次元空間の超平面(hyperplane)」を表します。
カーネルSVM:非線形な境界も引ける!
ところが、現実のデータは必ずしも直線で分けられるとは限りません。
例えば、以下のようなデータがあったとします。

円形に分布しているので、直線ではうまく分類できません。
ここで登場するのが「カーネルSVM(Kernel SVM)」です!
カーネルって何?
カーネルとは、低次元のデータを高次元に写像(変換)する関数です。
例えるなら、2Dでは分けられなかったデータを3Dに持ち上げて、そこで平面で分けるようなイメージ。
これによって、非線形な分類問題もSVMで解けるようになります!
カーネルSVMの数式
代表的なカーネルの一つに「RBFカーネル(Radial Basis Function)」があります。RBFカーネルを使ったときのSVMは以下のような形になります:
これは「ガウス関数」に似ており、データの距離が近ければ値が大きく、遠ければ小さくなる関数です。
このようなカーネルを使うと、一見直線では引けなかった境界が、曲線としてうまく描けるようになります。
図で比較してみよう
タイプ | 境界線の形 | 特徴 | 向いているデータ |
---|---|---|---|
線形SVM | 直線(または平面) | 計算が速い、シンプル | 線形分離可能なデータ |
カーネルSVM | 曲線も可能 | 柔軟で複雑なデータに対応 | 非線形なパターンがあるデータ |
まとめ
SVMの境界線が直線かどうかは、使う**モデルの種類(線形かカーネルか)**によって変わります。
- 線形SVM:直線(または高次元空間では平面)
- カーネルSVM:曲線にもなる(データの分布に合わせて柔軟)
直線でうまくいくなら線形SVMがシンプルで速いですが、もっと複雑な境界が必要なときはカーネルSVMを使うとよいですね!
今後の学習の指針
次のステップとしては、以下を学んでいくとSVMの理解が深まります。
- ハードマージンSVMとソフトマージンSVMの違い
- 代表的なカーネルの種類(多項式カーネル、RBFカーネルなど)
- SVMのパラメータチューニング(Cやγの意味と調整方法)
- 実際のデータセットでSVMを動かしてみる(scikit-learnなど)
気になるテーマがあれば、気軽に教えてください!また一緒に掘り下げていきましょう!
生成AI研修のおすすめメニュー
投稿者プロフィール
