본문으로 바로가기

서포트 벡터 회귀(SVR): 동작 원리와 활용 시점

서포트 벡터 회귀는 작은 오차를 의도적으로 무시하는 마진 기반 회귀 방법으로, 커널을 통해 비선형 관계를 처리하고 표준 회귀가 부족한 노이즈 많은 실제 데이터에서도 견고하게 동작합니다.
업데이트됨 2026년 6월 4일  · 11분 읽다

표준 회귀 방법은 모든 데이터 포인트에 걸친 총 오차를 최소화합니다. 즉, 얼마나 작은 잔차든 모델을 어떤 방향으로든 끌어당깁니다. 그 결과 노이즈와 이상치에 민감한 모델이 만들어집니다.

반면 서포트 벡터 회귀(SVR) 모델은 허용 오차 마진 내에 함수를 적합하고, 그 안에 포함되는 오차는 무시합니다. 이 마진은 최적화의 개념을 바꿔 놓습니다. 모든 데이터 포인트를 최적화하려 애쓰는 대신, SVR은 데이터의 전체 구조에 집중합니다. 그래서, 실제 데이터를 다룰 때 견고하다는 점을 곧 보여드리겠습니다.

시작 전에 기초가 필요하다면, 예측 모델링 입문을 위해 저희 파이썬으로 하는 선형 회귀 글을 읽어보세요.

서포트 벡터 회귀란?

서포트 벡터 회귀는 서포트 벡터 머신(SVM)과 같은 기반 위에 구축된 회귀 방법입니다. SVM은 원래 스팸 탐지나 이미지 인식 같은 분류 작업을 위해 설계된 모델 계열입니다.

핵심 아이디어는 간단합니다. 모든 예측 오차를 최소화하려는 대신, SVR은 함수를 적합하면서 그 주변에 허용 오차 마진을 둡니다. 그 마진 안의 오차는 계산하지 않습니다. 모델은 작은 편차 하나하나를 바로잡기보다 전체적인 적합에 집중합니다.

이 점이 SVR을 대부분의 다른 회귀 모델과 구분 짓습니다.

표준 회귀 방법은 모든 잔차를 신호로 취급합니다. SVR은 대부분을 노이즈로 취급합니다. 그 결과, 모든 포인트에서 정확히 맞추는 데 연연하기보다 데이터의 근본 구조를 올바르게 파악하는 모델이 됩니다.

SVR의 핵심 아이디어

SVR의 중심에는 엡실론 튜브라고 불리는 것이 있습니다. 이는 적합된 함수의 양쪽을 감싸는 허용 오차 마진입니다.

튜브 안에 들어오는 데이터 포인트는 충분히 가까운 것으로 간주합니다. SVR은 모델을 학습할 때 이 포인트들을 무시합니다. 마진 밖의 포인트만 중요합니다. 이들이 실제로 결정 경계를 형성하기 때문입니다.

The Epsilon tube example

엡실론 튜브 예시

다음과 같이 해석할 수 있습니다:

  • 튜브 안의 포인트는 함수에서 얼마나 떨어졌든 오차 기여도가 0입니다
  • 튜브 밖의 포인트는 마진을 얼마나 넘어섰는지에 비례해 오차를 기여합니다
  • 모델은 다수 데이터가 아닌, 마진 밖 포인트들에 의해 정의됩니다

이 점이 SVR을 표준 회귀와 구분합니다. 선형 회귀에서는 노이즈가 많은 포인트까지 포함해 모든 데이터 포인트가 모델을 끌어당깁니다. SVR에서는 대부분의 포인트가 무관합니다. 결과적으로 전체 구조가 잘 반영된 적합이 이뤄집니다.

SVR의 최적화 방식

SVR은 동시에 만족시키려는 두 가지 상충하는 목표가 있습니다.

첫째는 모델을 최대한 평평하게 유지하는 것입니다. 더 평평한 함수는 단순하며, 단순한 모델일수록 새로운 데이터에 잘 일반화되는 경향이 있습니다. 둘째는 엡실론 튜브 밖 포인트에서의 오차를 최소화하는 것입니다. SVR이 무시할 수 없는 포인트들이죠.

이 두 목표는 서로 반대 방향으로 작용하며, 여기서 정규화 파라미터 C가 등장합니다. C는 모델 단순성과 튜브 밖 오차에 대한 가중치의 균형을 제어합니다:

  • C 값이 크면 튜브 밖 오차를 중요하게 다뤄 더 복잡하고 촘촘한 함수를 만들 수 있습니다
  • C 값이 작으면 모델이 단순함을 유지하고 마진 밖 위반을 더 많이 허용합니다

항상 모델의 단순성과 오차 허용 사이에서 절충합니다. 적절한 C 값은 데이터와 예상되는 노이즈 수준에 따라 달라집니다. 양쪽 어느 쪽으로든 잘못 설정하면 새로운 데이터에서 성능이 저하됩니다.

이는 반복적으로 풀 수 있는 최적화 문제이므로 걱정하실 필요는 없습니다.

SVR의 서포트 벡터

SVR에서는 엡실론 튜브 밖에 위치한 데이터 포인트만 실제로 중요합니다.

이들이 바로 서포트 벡터입니다. 마진을 넘어선 위치에 있어 적합된 함수를 형성합니다. 튜브 안의 모든 것은 학습 중 무시됩니다. 모델은 의미 있는 방식으로 그 포인트들을 "보지" 않습니다.

Support vectors

서포트 벡터

이로 인한 유용한 부수 효과는 희소성입니다. 실제로 학습 데이터의 작은 부분만 서포트 벡터가 됩니다. 나머지는 최종 모델에 기여하지 않으므로, 예측은 소수의 영향력 있는 포인트에만 의존합니다. 그 덕분에 SVR은 한 번 학습되면 메모리를 적게 쓰고 평가가 빠릅니다.

SVR로 비선형 데이터 다루기

SVR은 직선에만 제한되지 않습니다. 커널 트릭을 통해 비선형 관계도 다룰 수 있습니다.

원래 입력 공간에서 함수를 적합하는 대신, SVR은 데이터를 더 높은 차원의 공간으로 사상하여 그곳에서 선형 적합이 가능하게 합니다. 더 높은 차원에서의 선형 적합은 원래 데이터 공간에서는 비선형 곡선으로 나타납니다.

가장 흔히 사용하는 커널은 다음 두 가지입니다:

  • RBF(방사 기저 함수): 대부분 문제에서의 기본 선택입니다. 매끄럽고 굽은 관계를 잘 처리하며 다양한 데이터셋에서 잘 작동합니다
  • 다항식: 관계가 특정 차수의 다항 패턴을 따른다고 믿을 만한 근거가 있을 때 유용합니다

커널 선택은 데이터에 따라 달라집니다. 확신이 없다면 RBF로 시작하는 것이 좋습니다.

SVR vs 선형 회귀

차이는 각 모델이 무엇을 목표로 하느냐에 있습니다.

선형 회귀는 모든 데이터 포인트에 걸친 총 오차를 최소화합니다. 잔차가 얼마나 작든 모두 반영됩니다. 노이즈가 많은 포인트가 모델을 빗나가게 하면 전체 적합이 이를 보상하려 이동합니다.

SVR은 엡실론 튜브 내 오차를 무시합니다. 마진 밖으로 벗어난 포인트에만 반응하며, 그마저도 C가 반응 강도를 제어합니다. 모델은 개별 포인트 정확도가 아니라 구조를 최적화합니다.

이 차이로 SVR은 이상치에 더 견고합니다. 단 하나의 노이즈 포인트가 선형 회귀처럼 적합을 망치지 않습니다. SVR은 애초에 그것을 좇지 않기 때문입니다.

차이점은 다음과 같습니다:

Linear regression compared to SVR

선형 회귀와 SVR 비교

SVR의 핵심 하이퍼파라미터

SVR을 최적화하기 전에 이해해야 할 파라미터는 세 가지입니다.

엡실론(ε)

엡실론은 적합된 함수 주변의 허용 오차 마진 너비를 정의합니다. ε이 클수록 튜브가 넓어져 더 많은 포인트가 무시되고 모델이 단순해집니다. ε이 작을수록 튜브가 좁아져 데이터에 더 가깝게 적합하도록 강제합니다.

Small versus large Epsilon

작은 엡실론 vs 큰 엡실론

C(정규화)

C는 튜브 밖 포인트의 오차를 SVR이 얼마나 강하게 패널티 줄지를 제어합니다. C가 크면 모델이 오차를 중요하게 여겨 더 촘촘히 적합합니다. C가 작으면 더 단순하고 평평한 함수를 위해 더 많은 위반을 받아들입니다. Cε은 함께 작동하며, 하나를 바꾸면 다른 하나의 실제 동작에도 영향을 줍니다.

Small versus large C

작은 C vs 큰 C

커널

커널은 SVR이 비선형 패턴을 어떻게 처리할지를 결정합니다. RBF가 가장 일반적인 선택이며 기본값으로 잘 작동합니다. 다항 커널은 특정 곡선 형태에 유용합니다. 선형 커널은 SVR을 마진 기반 선형 회귀로 환원하며, 데이터가 이미 잘 behaved한 경우에 유용할 수 있습니다.

실무에서의 서포트 벡터 회귀

SVR을 잘 작동하게 하려면 몇 가지 단계와 전제 조건을 거쳐야 합니다. 무엇인지 살펴보겠습니다.

일반적인 워크플로는 다음과 같습니다:

  1. 데이터를 스케일링하세요: SVR은 특성 스케일에 민감합니다. 특성의 스케일이 다르면 모델이 예상대로 동작하지 않습니다. 적합 전에 Xy 모두에 StandardScaler를 적용하세요

  2. 커널을 선택하세요: 대부분 문제에서는 RBF가 적절한 기본값입니다. 관계가 특정 다항 형태를 따른다고 판단되는 명확한 이유가 있을 때 다항식으로 전환하세요

  3. 파라미터를 튜닝하세요: 적합 전에 C, epsilon, gamma를 설정하세요. 여기서는 그리드 서치나 교차 검증이 표준 접근입니다

  4. 모델을 적합하세요: 스케일링된 학습 데이터에 .fit()을 호출합니다. 학습이 끝나면 예측값을 역변환해 원래 스케일로 되돌리세요

다음은 scikit-learn을 사용한 완전한 예시입니다:

import numpy as np
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# Generate sample data
np.random.seed(42)
X = np.sort(np.random.uniform(0, 10, 30))
y = 2.5 * np.sin(X * 0.8) + np.random.normal(0, 0.4, 30)

# Split
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Scale features and target
scaler_X = StandardScaler()
scaler_y = StandardScaler()

X_train_scaled = scaler_X.fit_transform(X_train.reshape(-1, 1))
X_test_scaled = scaler_X.transform(X_test.reshape(-1, 1))
y_train_scaled = scaler_y.fit_transform(y_train.reshape(-1, 1)).ravel()

# Fit SVR
svr = SVR(kernel="rbf", C=2.0, epsilon=0.5, gamma=0.3)
svr.fit(X_train_scaled, y_train_scaled)

# Predict and inverse-transform
y_pred_scaled = svr.predict(X_test_scaled)
y_pred = scaler_y.inverse_transform(y_pred_scaled.reshape(-1, 1)).ravel()

rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"Test RMSE: {rmse:.3f}")

RMSE on the test set

테스트 세트의 RMSE

이 코드에서 주목할 점이 몇 가지 있습니다. 첫째, StandardScalerXy 각각에 적용됩니다. 특성만 스케일링하는 것은 SVR에서 성능 저하로 이어지는 흔한 실수입니다. 둘째, 평가 전에 예측값을 역변환하여 원래 스케일로 되돌립니다.

아래 두 개의 플롯은 적합된 모델의 모양을 보여줍니다. 첫 번째는 학습 및 테스트 데이터 위의 SVR 곡선과 엡실론 튜브를 보여줍니다:

Epsilon tube over the training and test data

학습 및 테스트 데이터 위의 엡실론 튜브

두 번째는 테스트 세트에서 예측값과 실제값을 비교합니다:

Predicted versus actual values

예측값과 실제값 비교

대각선에 가까운 점일수록 모델이 잘 예측하고 있음을 의미합니다.

SVR의 장점과 한계

SVR은 특정 상황에서 적합한 강점을 갖고 있습니다. 반대로, 다른 상황에서는 적합하지 않게 만드는 약점도 있습니다.

장점

  • 노이즈에 견고함: 엡실론 튜브 덕분에 작은 오차는 모델에 전혀 영향을 미치지 않습니다. 선형 회귀 같은 모델을 빗나가게 만들 노이즈 데이터는 무시됩니다
  • 비선형 관계 처리: 적절한 커널과 함께라면, 수작업 특성 공학 없이도 표준 회귀가 맞추기 어려운 곡선을 적합할 수 있습니다
  • 유연성: 마진 너비, 오차 패널티, 커널을 제어할 수 있어 다양한 데이터 형태와 노이즈 수준에 모델을 맞출 수 있습니다

한계

  • 대규모 데이터셋에서 느림: SVR은 확장성이 좋지 않습니다. 샘플 수가 늘어날수록 학습 시간이 길어지므로 수십만 행 이상의 데이터셋에는 실용적이지 않습니다.
  • 파라미터 튜닝에 민감함: C, 엡실론, 감마는 서로 상호작용합니다. 나쁜 조합은 성능을 떨어뜨리며, 좋은 조합을 찾는 데 시간과 연산이 필요합니다. 특히 SVR은 확장성이 좋지 않습니다
  • 해석 가능성이 낮음: 간단히 살펴볼 수 있는 계수가 없습니다. SVR이 특정 예측을 한 이유를 이해하기가 쉽지 않으므로, 설명 가능성이 필수인 비즈니스라면 적합하지 않을 수 있습니다

SVR을 사용할 때

SVR은 특정 조건에서 가장 잘 작동합니다. 다음과 같은 경우 SVR을 사용하세요:

  • 데이터셋의 크기가 보통 수준(수백~수천 샘플)이면 가장 적합합니다
  • 특성과 타깃 간 관계가 비선형이며, 수작업으로 특성을 만들고 싶지 않을 때
  • 데이터에 노이즈나 이상치가 있어 모델이 그 영향에서 자유롭기를 원할 때

다음과 같은 경우에는 SVR을 피하세요:

  • 데이터셋이 매우 큰 경우 — 학습이 느리고 합리적인 시간 안에 끝나지 않을 수 있습니다
  • 속도가 중요할 때 — 학습과 하이퍼파라미터 탐색 모두 그래디언트 부스팅이나 선형 회귀 같은 대안보다 비용이 큽니다

데이터셋이 크고 노이즈가 많다면 그래디언트 부스팅 방법을 먼저 살펴볼 가치가 있습니다. SVR은 깔끔하고 중간 크기의 데이터에서, 단순한 모델이 잘 맞추지 못하는 구조가 있을 때 특히 유용합니다.

SVR에서 흔한 실수

SVR 관련 문제의 대부분은 같은 유형의 실수에서 비롯됩니다. 다음을 하지 말아야 할 일의 치트시트로 삼으세요.

  • 특성을 스케일링하지 않음. SVR은 거리 기반 알고리즘이므로, 스케일링하지 않은 특성이 모델을 지배합니다. 적합 전에 Xy 모두에 StandardScaler를 항상 적용하세요.

  • 엡실론을 오해함. 엡실론은 가장 중요한 파라미터입니다. 너무 크면 너무 많은 것을 무시해 과소적합합니다. 너무 작으면 표준 회귀처럼 모든 포인트를 좇게 됩니다. 항상 그리드 서치를 통해 테스트 세트에서 가장 성능이 좋은 값을 찾으세요.

  • 파라미터 튜닝을 건너뜀. 기본 파라미터로 SVR을 실행해 좋은 결과를 기대하는 일은 드뭅니다. 대부분의 머신러닝 모델과 마찬가지로 C, 엡실론, 감마를 함께 튜닝해야 합니다. 교차 검증을 곁들인 그리드 서치를 사용하세요.

  • 매우 큰 데이터셋에 SVR 사용. 수천 개를 넘는 샘플이 있다면 SVR은 느려집니다. 다른 알고리즘처럼 확장되지 않습니다. 그래디언트 부스팅이나 신경망처럼 대규모 데이터셋에 더 적합한 모델로 전환하세요.

이 네 가지를 모두 제대로 했다고 해서 훌륭한 모델이 보장되지는 않지만, 그중 하나라도 틀리면 거의 확실히 나쁜 모델이 됩니다.

마무리

요약하자면, SVR은 표준 회귀와 다른 문제를 풉니다. 모든 오차를 최소화하는 대신, 마진 내에서 함수를 적합하고 그 안의 노이즈를 무시합니다. 이 점이 데이터가 깔끔하거나 완전히 선형이 아닐 때 유용하게 만드는 이유입니다.

SVR은 속도나 단순함으로 유명하지는 않습니다. 하지만 견고합니다. 데이터에 비선형 관계와 모델링하고 싶지 않은 이상치가 있다면, SVR은 모든 데이터 포인트를 좇기보다 구조에 집중할 수 있는 방법을 제공합니다.

특성 스케일링, 파라미터 튜닝, 올바른 커널 선택, 데이터 양에 대한 보수적 접근을 잊지 마세요. 이들을 제대로 하면, SVR은 운영 환경에서도 실패 가능성이 낮은 견고한 모델을 제공합니다.

SVR은 데이터 과학자라면 알아야 할 여러 도구 중 하나일 뿐입니다. 2026년에 취업 준비를 마치려면 Machine Learning Engineer 트랙에 등록해 다른 도구들도 함께 익혀 보세요.

SVR 자주 묻는 질문

서포트 벡터 회귀는 무엇이며, 표준 회귀와 어떻게 다른가요?

서포트 벡터 회귀는 엡실론 튜브라 불리는 허용 오차 마진 안에서 함수를 적합하고 그 안에 포함되는 모든 오차를 무시하는 회귀 방법입니다. 표준 회귀는 모든 데이터 포인트에 걸친 총오차를 최소화하므로 노이즈와 이상치에 민감합니다. SVR은 마진 밖의 포인트에만 반응하므로, 잔차 하나하나를 좇기보다 전체 구조에 집중합니다.

다른 회귀 방법보다 SVR을 사용해야 하는 때는 언제인가요?

데이터셋의 크기가 보통 수준이고, 특성과 타깃 간 관계가 비선형이며, 완전히 제거할 수 없는 노이즈가 있을 때 SVR이 가장 잘 작동합니다. 매우 큰 데이터셋이나, 속도와 해석 가능성이 중요한 상황에는 적합하지 않습니다. 그런 제약이 있다면 먼저 그래디언트 부스팅이나 선형 회귀를 고려해 보세요.

좋은 결과를 얻으려면 SVR 파라미터 튜닝이 꼭 필요한가요?

네. SVR은 대부분의 회귀 방법보다 파라미터 선택에 더 민감합니다. 가장 중요한 세 가지 파라미터는 C(튜브 밖 오차에 대한 패널티 강도), 엡실론(마진 너비), 그리고 커널과 그에 연관된 감마 같은 파라미터입니다. 기본값으로 SVR을 실행해 최적의 결과를 얻는 경우는 드물므로, 교차 검증을 곁들인 그리드 서치가 표준 접근입니다.

SVR에서 특성 스케일링이 왜 그렇게 중요한가요?

SVR은 데이터 포인트 간 거리를 기반으로 모델을 적합하므로, 스케일이 큰 특성이 결과를 지배하게 됩니다. 스케일링을 건너뛰면 단위 차이 때문에 어떤 특성은 더 중요해 보이게 됩니다. 적합 전에 Xy 모두에 StandardScaler를 적용하고, 예측 이후에는 역변환하세요.

SVR에서 엡실론은 무엇을 제어하며, 어떻게 선택하나요?

엡실론은 적합된 함수 주변 허용 오차 마진의 너비를 정의합니다. 엡실론보다 작은 예측 오차는 0으로 처리됩니다. 엡실론이 크면 더 많은 데이터를 무시하는 단순한 모델이 되고, 엡실론이 작으면 더 밀착해 적합하며 서포트 벡터 수가 늘어납니다. 보편적으로 옳은 값은 없으므로, 엡실론을 튜닝 파라미터로 취급하고 C, 감마와 함께 교차 검증으로 탐색하세요.

주제

DataCamp와 함께 배우세요

tracks

지도 머신 러닝 in Python

25
레이블이 지정된 데이터로 예측을 시작하기 위해 가장 널리 사용되는 지도 머신 러닝 기법을 익히세요.
자세히 보기Right Arrow
강좌 시작
더 보기Right Arrow