SVMによる回帰(SVR)
SVRのepsilonチューブ、nu-SVR、非線形データにおけるSVRと線形回帰の比較について学習します。
「SVMによる回帰(SVR)」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
SVM は回帰もできます
マージンの考え方は回帰にも拡張できます。サポートベクター回帰(SVR)は、許容帯の中に予測を収めながら関数を適合させ、小さな誤差を無視します。
Epsilon 非感応チューブ
SVR は予測関数の周囲に epsilon チューブを描きます。チューブの内側にある点は損失がゼロで、外側の点だけがペナルティの対象になります。これにより、モデルは意味のある誤差に集中します。
チューブが役立つ理由
SVR は小さなずれを無視することで、ノイズへの過学習を抑え、より滑らかで頑健な適合を実現します。許容範囲内の小さな揺らぎは、モデルにまったく影響しません。
SVR の基本的な使い方
SVR は SVC とよく似ており、同じカーネルをサポートします。RBF は非線形回帰で一般的なデフォルトです。
from sklearn.svm import SVR
model = SVR(kernel="rbf", C=100, epsilon=0.1, gamma="scale")
model.fit(Xtr, ytr)
print(model.score(Xte, yte))epsilon パラメータ
epsilon はチューブの幅を設定します。epsilon が大きいほど帯域が広くなり、サポートベクターが減って、より単純なモデルになります。epsilon が小さいほどデータにより厳密に適合します。
from sklearn.svm import SVR
wide = SVR(epsilon=1.0) # tolerant, simpler
tight = SVR(epsilon=0.01) # fits closelySVR における C パラメータ
分類と同様に、C はチューブ外の点に対するペナルティを制御します。C が大きいほど、それらの誤差を強く罰するため、データにより強く適合します。C が小さいほど正則化が強くなり、より滑らかな曲線になります。
from sklearn.svm import SVR
flexible = SVR(C=1000) # fits training closely
smooth = SVR(C=0.1) # more regularizedepsilon と C:異なる2つの調整つまみ
違いを覚えておきましょう。epsilon はチューブの幅(どの程度の誤差を無視するか)を制御し、C はチューブの外側にある誤差に対するペナルティを制御します。両方を調整してください。
SVR でもスケーリングが重要
すべての SVM と同様に、SVR は距離に依存するため、スケールの影響を受けます。常に特徴量を標準化し、安定した学習のために目的変数もスケーリングすることを検討してください。
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR
pipe = make_pipeline(StandardScaler(), SVR(kernel="rbf"))
pipe.fit(Xtr, ytr)SVR の調整
C、gamma、epsilon をグリッドサーチして、最適な適合を見つけます。スコアリングには、負の平均二乗誤差などの回帰指標を使います。
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVR
param = {
"C": [1, 10, 100],
"gamma": [0.01, 0.1, 1],
"epsilon": [0.01, 0.1, 0.5],
}
gs = GridSearchCV(SVR(), param, cv=5, scoring="neg_mean_squared_error")
gs.fit(Xtr, ytr)nu-SVR というバリエーション
NuSVR は epsilon を nu(0から1の間)に置き換えます。nu はサポートベクターと学習誤差の割合を直接制御するため、人によっては扱いやすい別のパラメータ化です。
from sklearn.svm import NuSVR
model = NuSVR(nu=0.5, C=100, kernel="rbf")
model.fit(Xtr, ytr)SVR を使う場面
SVR は、非線形パターンを持つ小〜中規模のデータセットや、ノイズへの頑健性が重要な場合に適しています。非常に大規模なデータでは、よりスケールしやすい線形モデルや勾配ブースティングを選んでください。
理解度チェック
SVR に関する知識を確認しましょう。
まとめ
まとめ: SVR は、内側の点のコストがゼロになるepsilon 非感応チューブの中に関数を適合させます。epsilon はチューブの幅(大きいほど単純)を設定し、C はその外側にある点にペナルティを与えます。常に特徴量をスケーリングし、C/gamma/epsilon を調整し、別のパラメータ化として NuSVR も検討してください。
よくある質問
「SVMによる回帰(SVR)」レッスンは無料ですか?
はい。「SVMによる回帰(SVR)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「SVMによる回帰(SVR)」で何を学びますか?
SVRのepsilonチューブ、nu-SVR、非線形データにおけるSVRと線形回帰の比較について学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「SVMによる回帰(SVR)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。