data-science-summary/summary

SVM (Support Vector Machine) in python

고수트 2020. 9. 20. 16:41
반응형

<엔지니어는 구현을 못하면 모르는것이다>

SVM (Support Vector Machine)

두 데이터를 구분하는 가장 안정적인 판별(결정) 경계선을 찾은뒤 이를 기준으로 데이터 구분

판별경계선에서 가장 가까운 값을 지지벡터(support vector) 라고 하며 경계선을 분류 경계면이라고함

두 분류 경계면 사이를 마진(margin)이라고 하며 이를 최대화 하는것이 목적 == 최대한 구분 잘하는것

=> 분류시 오류를 최소하하는데 이떄 라그랑즈 승수법이라는것을 이용해 최적의 결정경계(초평면)를 찾음

초평면(hyperplane)이란? 간단하게 차원이 p-1 차원인 부분 공간 => 즉, 2차원 그림에서는 선, 3차원에서는 평면

선형 / 비선형 모두 분류 가능

선형일때 => kernel: linear

비선형일때 => kernel: rbf, poly

# 간단...
from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
# kernel 
clf = svm.SVC(kernel='linear')
clf.fit(X, y)
clf.predict([[2., 2.]])
반응형