커널 SVM으로 비선형적 데이터 분류

2022. 11. 20. 23:15·머신러닝
반응형

SVM을 사용해서 비선형적 데이터를 분류하는 또 다른 방법은 커널 SVM을 사용하는 것이다.

그림과 같은 샘플은 선형적으로 구분할 수 없다. 이러한 샘플을 분류할 때 커널 SVM을 사용한다.

 

 

선형적으로 구분하기 힘든 데이터는 매핑 함수를 이용해서 원본 데이터에 새로운 차원을 부여한다.

 

위 그림처럼 x1^2 + x2^2 라는 새로운 차원을 부여하면 구분되지 않았던 샘플들이 새로운 차원 덕분에 구분되는 것을 볼 수 있다. 그리고 이러한 고차원 공간에서 두 클래스를 구분하는 초평면을 원본 샘플의 차원으로 투영하면 비선형 결정 경계를 얻을 수 있다.

 

커널 SVM에서는 위와 동일한 방법을 사용하지는 않지만 기본 아이디어가 저렇다고 한다.

이러한 식으로 분류가 가능하다.

 

 

 

### 커널 SVM으로 붓꽃데이터 분류 ###

1
2
3
4
5
6
7
8
9
10
11
from sklearn.svm import SVC
 
svm = SVC(kernel='rbf', random_state=1, gamma=0.2, C=0.1)
# kernel 매개변수에 rbf를 추가해서 선형적인 데이터 분류
# C=1.0 : 슬랙변수 앞에 곱하는 값으로 C를 통해 마진 폭을 조정한다.
# gamma=0.2 : gamma값이 커질수록 결정경계가 샘플에 가까워진다. 
 
svm.fit(X_train_std, y_train)
plot_decision_regions(X_combined_std, y_combined, classifier = svm, 
                      test_idx=range(105, 150))
plt.show()
Colored by Color Scripter
cs
gamma = 0.2 로 했을 경우의 결과
gamma = 100 으로 했을 경우의 결과

결과 그림에서처럼 gamma의 값이 클수록 결정경계가 샘플과 가까워지는 것을 볼 수 있다. 

반응형

'머신러닝' 카테고리의 다른 글

최대가능도 방법 - Maximum likelihood estimation  (0) 2023.01.17
선형회귀 - Linear Regression  (3) 2023.01.13
로지스틱 회귀 Logistic Regression  (0) 2022.11.17
사이킷런으로 퍼셉트론 학습  (0) 2022.11.17
적응형 선형 뉴런 Adaline, 경사하강법  (0) 2022.11.17
'머신러닝' 카테고리의 다른 글
  • 최대가능도 방법 - Maximum likelihood estimation
  • 선형회귀 - Linear Regression
  • 로지스틱 회귀 Logistic Regression
  • 사이킷런으로 퍼셉트론 학습
김천종
김천종
  • 김천종
    김천종
    김천종
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 파이썬 (6)
      • Pandas (24)
      • 자료구조 (14)
      • 알고리즘 (4)
      • 아무거나 (16)
      • 머신러닝 (20)
      • ML 실습 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
김천종
커널 SVM으로 비선형적 데이터 분류
상단으로

티스토리툴바