0Pricing
Learn AI with Python · 강의

회귀용 SVM(SVR)

SVR의 엡실론 튜브, nu-SVR, 비선형 데이터에서 SVR과 선형 회귀를 비교하는 방법을 알아봅니다.

회귀용 SVM(SVR)은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

SVM은 회귀도 할 수 있습니다

마진이라는 개념은 회귀로도 확장됩니다. 서포트 벡터 회귀(SVR)는 작은 오류를 무시하면서 예측값을 허용 오차 구간 안에 유지하는 함수를 학습합니다.

엡실론 무감응 튜브

SVR은 예측 함수 주위에 엡실론 튜브를 그립니다. 튜브 안에 있는 점은 손실이 0이고, 바깥에 있는 점만 패널티를 받습니다. 따라서 모델은 의미 있는 오류에 집중합니다.

튜브가 도움이 되는 이유

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 closely

SVR의 C 매개변수

분류와 마찬가지로 C는 튜브 바깥에 있는 점에 대한 패널티를 조절합니다. C가 크면 해당 오류를 더 강하게 벌주어 더 엄격하게 적합하고, C가 작으면 정규화가 강해져 곡선이 더 매끄러워집니다.

from sklearn.svm import SVR

flexible = SVR(C=1000)  # fits training closely
smooth = SVR(C=0.1)     # more regularized

epsilon과 C: 서로 다른 두 조절값

차이를 기억하세요. 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을 그리드 탐색하세요. 평가에는 음의 mean 제곱 오차와 같은 회귀 지표를 사용하세요.

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를 사용합니다. nu는 0과 1 사이의 값으로, 서포트 벡터와 학습 오류의 비율을 직접 조절합니다. 일부 사용자에게는 이를 사용한 매개변수화가 더 이해하기 쉽습니다.

from sklearn.svm import NuSVR

model = NuSVR(nu=0.5, C=100, kernel="rbf")
model.fit(Xtr, ytr)

SVR을 사용할 때

SVR은 비선형 패턴이 있는 소규모에서 중간 규모의 데이터 세트와 잡음에 대한 견고성이 중요한 경우에 잘 작동합니다. 매우 큰 데이터에는 더 잘 확장되는 선형 모델이나 그래디언트 부스팅을 사용하세요.

빠른 확인

SVR 지식을 점검해 보세요.

복습

복습: SVR은 내부의 점에 비용을 부과하지 않는 엡실론 무감응 튜브 안에 함수를 적합합니다. epsilon은 튜브의 폭을 설정하며, 클수록 모델이 단순해집니다. C는 튜브 바깥의 점에 패널티를 부과합니다. 항상 특성을 스케일링하고 C/gamma/epsilon을 조정하며, 대안적인 매개변수화로 NuSVR을 고려하세요.

자주 묻는 질문

“회귀용 SVM(SVR)” 강의는 무료인가요?

네 — “회귀용 SVM(SVR)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“회귀용 SVM(SVR)”에서 뭘 배우나요?

SVR의 엡실론 튜브, nu-SVR, 비선형 데이터에서 SVR과 선형 회귀를 비교하는 방법을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. SVM 이론: 마진과 서포트 벡터
  2. 커널 트릭: RBF, 다항식, 시그모이드
  3. sklearn을 활용한 분류용 SVM
  4. 회귀용 SVM(SVR)
← Learn AI with Python(으)로 돌아가기