본문으로 건너뛰기
실습하기

가장 분리하기 좋은 선을 찾는 서포트 벡터 머신

서포트 벡터 머신(Support Vector Machine, SVM)은 데이터를 가장 잘 구분할 수 있는 결정 경계(Decision Boundary)를 찾아주는 머신러닝 알고리즘입니다.

예를 들어 이메일이 스팸인지 아닌지를 분류해야 한다고 가정해 봅시다.

이메일 데이터를 분석했을 때 스팸과 일반 메일이 서로 다른 그룹으로 분포해 있다면, SVM은 두 그룹 사이를 분리하기 가장 좋은 선(초평면, Hyperplane)을 찾습니다.


📌 두 개의 그룹을 나누는 가장 좋은 선이란?

SVM은 단순히 데이터를 분류하는 것이 아니라, 두 그룹 사이의 마진(Margin, 여유 공간)을 최대화하는 선을 찾습니다.

데이터메일 유형단어 개수발신 도메인 신뢰도
A스팸100낮음
B스팸90낮음
C일반30높음
D일반40높음

위 데이터를 좌표로 표현하면, X축은 단어 개수, Y축은 발신 도메인 신뢰도로 설정할 수 있습니다.


thumbnail-public

위 그래프에서 각 요소는 다음과 같은 의미를 가집니다.

  • 빨간색 ✖ → 스팸 메일

  • 파란색 ✖ → 일반 메일

  • X축: 단어 개수(Word Count)

  • Y축: 발신 도메인의 신뢰도(Domain Trust)

  • 굵은 검은 선 → 결정 경계(스팸과 일반 메일을 구분하는 최적의 선)

  • 점선 두 개 → 마진(결정 경계와 서포트 벡터 사이의 거리)

그러면 SVM은 스팸과 일반 메일을 가장 넓게 분리할 수 있는 선을 찾습니다.

이 선과 가장 가까운 데이터 포인트들을 서포트 벡터(Support Vector)라고 합니다.

서포트 벡터는 결정 경계를 만드는 데 가장 중요한 데이터 포인트이며, 이 데이터가 변경되면 결정 경계도 달라집니다.


서포트 벡터 머신의 동작 방식

SVM이 데이터를 분류하는 과정은 다음과 같습니다.


1. 초평면(Hyperplane) 찾기

SVM은 데이터를 가장 잘 나누는 초평면을 찾습니다.

이때, 데이터가 2차원일 경우 초평면은 직선(Line)이고, 3차원에서는 평면(Plane)이 됩니다.


2. 마진(Margin) 최대화

초평면과 가장 가까운 데이터(서포트 벡터) 사이의 거리를 최대화합니다.

이렇게 하면 새로운 데이터가 들어왔을 때 더 정확한 분류가 가능합니다.


이후 SVM은 새로운 입력 데이터에 대해 결정 경계를 기준으로 스팸/일반 메일과 같이 데이터를 분류합니다.


서포트 벡터 머신은 명확한 경계를 찾는 데 강점이 있는 알고리즘으로 이미지 분류, 텍스트 분류 등 다양한 분야에서 활용됩니다.

다음 수업에서는 k-평균 군집화 알고리즘에 대해 알아보겠습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!