0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SVMとは?簡単に詳しく解説&実例付き

Posted at

1. SVM(サポートベクターマシン)とは?

SVM(Support Vector Machine:サポートベクターマシン)は、分類問題や回帰問題を解くための強力な機械学習アルゴリズム です。特に、高次元データや非線形なデータにも適用できる点が特徴です。

SVMの主な目的は、データを2つ以上のクラスに分類する最適な境界(超平面)を見つけること です。この境界を「決定境界」と呼び、データのクラスが最もよく分離されるようにマージンを最大化します。


2. SVMの仕組み

SVMは、次の2つの概念を基に動作します。

(1) マージン最大化

SVMは、データを分類するための「最適な超平面(決定境界)」を見つけます。このとき、各クラスのデータ点と超平面との距離(マージン)を最大化 することを目指します。

例えば、以下のようなデータセットを考えてみましょう。

X1 X2 クラス
1.2 3.4 A
2.3 1.5 B
3.1 4.2 A
4.5 2.3 B

SVMは、このデータを最もよく分離する直線(2Dの場合)や平面(3Dの場合)、または超平面(高次元の場合)を求めます。

(2) サポートベクター

データの中には、分類を決定するのに特に重要な点がいくつかあります。これらの点を「サポートベクター」と呼びます。

サポートベクターは、決定境界のすぐ近くにあり、その位置が分類の結果を大きく左右します。SVMは、このサポートベクターを使って決定境界を調整します。


3. SVMの実例:メールのスパムフィルタリング

SVMの実用例として、スパムメールの分類 を考えてみましょう。

(1) データ準備

メールの内容を数値データに変換し、特徴量を作成します。例えば:

メールの単語 迷惑メール(1)/ 普通のメール(0)
"無料" の出現回数 1
"今すぐ" の出現回数 2
"限定" の出現回数 0
"こんにちは" の出現回数 0

(2) SVMの適用

このデータをSVMに入力すると、SVMは「迷惑メール」と「普通のメール」を最もよく分離する決定境界を求めます。新しいメールが届いたとき、そのメールが決定境界のどちら側にあるかを見て、スパムかどうかを分類します。

(3) 結果

SVMは、新しいメールを正確に分類する決定境界を学習し、スパムメールを高精度でフィルタリングできるようになります


4. SVMのメリットとデメリット

✅ メリット

  • 高次元データに強い:多くの特徴量を持つデータ(例えば、画像やテキスト)でもうまく機能します。
  • 非線形データの分類が可能:カーネル関数を使うことで、複雑なデータのパターンを見つけられます。
  • 過学習しにくい:マージンを最大化することで、一般化性能が高まります。

❌ デメリット

  • 計算コストが高い:大規模データセット(数百万以上のデータ)では、計算時間がかかることがあります。
  • ハイパーパラメータの調整が難しい:カーネルの選択や正則化パラメータ(C)の調整が必要です。

5. まとめ

  • SVM(サポートベクターマシン)は、分類問題を解決する強力なアルゴリズム で、特に高次元データや非線形データに適しています。
  • 決定境界を最適化し、マージンを最大化することで分類精度を向上 させます。
  • スパムフィルタや画像認識など、実世界の様々な問題に適用可能 です。

SVMを適切に活用すれば、より高精度な機械学習モデルを構築できるでしょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?