SVM理論:マージンとサポートベクター
最大マージン分類器、ハードマージンとソフトマージン(Cパラメータ)、サポートベクターについて学習します。
「SVM理論:マージンとサポートベクター」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
SVMとは
サポートベクターマシンは、2つのクラスを最も適切に分離する境界を見つける分類器です。単に分離できる直線を選ぶのではなく、クラス間の間隔が最大になる境界を探します。
分離超平面
2次元では境界は直線になり、より高次元では超平面になります。SVMは境界をw . x + b = 0と定義し、点がどちら側にあるかによって分類します。
マージン
マージンは、超平面と各クラスで最も近い点との距離です。SVMはこのマージンを最大化します。間隔が広いほど、新しいデータに対しても高い汎化性能を示すことが多いためです。
最大マージン超平面
有効な境界の中から、SVMは最大マージン超平面を選びます。これは、両側にある最も近い点から最も遠い位置にある超平面です。これがSVMを堅牢にする中心的な考え方です。
サポートベクター
サポートベクターは、境界に最も近いデータ点、つまりマージンの端に接している点です。超平面を決めるのはサポートベクターだけなので、それ以外の点を取り除いても超平面は変わりません。
from sklearn.svm import SVC
model = SVC(kernel="linear")
model.fit(X, y)
print("Support vectors:\n", model.support_vectors_)
print("Indices:", model.support_)サポートベクターが重要な理由
モデルを定義するのがサポートベクターだけであるため、SVMは予測時に必要なメモリを少なく抑えられます。また、境界から遠く離れた簡単な例ではなく、境界付近の難しく情報量の多い例に集中します。
ハードマージン
ハードマージンSVMは、完全な分離を要求します。どの点もマージンを越えることはできません。これはデータが完全に線形分離可能な場合にしか機能せず、外れ値の影響も非常に受けやすくなります。
ハードマージンの問題点
実際のデータにはノイズがあり、完全に分離できることはほとんどありません。外れ値が1つあるだけで、ハードマージンが不可能になったり、マージンが極端に狭くなったりすることがあります。そのため、ある程度の誤りを許容する必要があります。
ソフトマージン
ソフトマージンでは、マージンを侵したり誤分類されたりする点を一部許容します。少数の誤りと引き換えに、より広く堅牢な境界を得る方法です。この調整はパラメーターCで制御します。
Cパラメーター
Cは、制約違反に対するペナルティを設定します。Cが大きいと誤りが厳しく罰せられるため、訓練データに密に適合する小さなマージンになります(過学習のリスクがあります)。Cが小さいと、より多くの余裕が許され、マージンが広くなります(正則化が強くなります)。
from sklearn.svm import SVC
strict = SVC(C=100, kernel="linear") # narrow margin, fits closely
relaxed = SVC(C=0.1, kernel="linear") # wide margin, more tolerant実践でのCの調整
Cはクロスバリデーションで選択してください。大きすぎると過学習し、小さすぎると未学習になります。データに応じて、マージンの広さと訓練データに対する正解率のバランスが最もよくなる値を選びます。
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
gs = GridSearchCV(SVC(kernel="linear"), {"C": [0.01, 0.1, 1, 10, 100]}, cv=5)
gs.fit(X, y)
print("Best C:", gs.best_params_)理解度チェック
SVMの理論に関する知識を確認しましょう。
まとめ
まとめ: SVMは、クラスを分離する最大マージン超平面を見つけます。サポートベクターは最も近い点であり、それらだけが境界を決定します。ハードマージンには完全な分離が必要ですが、ソフトマージンではCで制御される制約違反を許容します(Cが大きいほどマージンは小さくなり、正則化は弱くなります)。
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 53
- レッスン
- 225
よくある質問
「SVM理論:マージンとサポートベクター」レッスンは無料ですか?
はい。「SVM理論:マージンとサポートベクター」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「SVM理論:マージンとサポートベクター」で何を学びますか?
最大マージン分類器、ハードマージンとソフトマージン(Cパラメータ)、サポートベクターについて学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「SVM理論:マージンとサポートベクター」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- SVM理論:マージンとサポートベクター
- カーネルトリック:RBF、Polynomial、Sigmoid
- sklearnによるSVM分類
- SVMによる回帰(SVR)