Hands-on ML : 5.3 SVM 회귀
앞서 포스팅에 이어 SVM 알고리즘은 다목적으로 사용할 수 있다.
SVM을 분류 뿐만 아니라 선형/비선형 회귀에도 사용할 수 있다.
SVM을 분류가 아니라 회귀에 적용하는 방법은 목표를 반대로 하는 것이다.
일정한 마진 오류 안에서 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 하는 대신 SVM 회귀는 제한된 마진 오류(즉, 도로 밖의 샘플) 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 학습한다.
도로의 폭은 하이퍼파라미터 E로 조절한다.
from sklearn.svm import LinearSVR
svm_reg=LinearSVR(epsilon=1.5)
svm_reg.fit(X,y)
비선형 회귀 작업을 처리하려면 커널 SVM 모델을 사용한다. 임의의 2차 방정식 형태의 훈련 세트에 2차 다항 커널을 사용한 SVM 회귀를 보여준다. 왼쪽은 규제가 거의 없고 ( 큰 C) , 오른쪽은 규제가 훨씬 많다. (작은 C)
from sklearn.svm import SVR
svm_poly_reg=SVR(kernel='poly',degree=2,C=100,epsilon=0.1)
svm_poly_reg.fit(X,y)
SVR은 SVC의 회귀 버전으로 LinearSVR은 필요한 시간이 훈련 세트의 크기에 비례해서 선형적으로 늘어난다. 하지만 SVR은 훈련 세트가 커지면 훨씬 느려진다.
자세한 코드는 저의 깃허브를 참고하시면 됩니다.
https://github.com/rootofdata/handson-ML
GitHub - rootofdata/handson-ML: handson ML
handson ML. Contribute to rootofdata/handson-ML development by creating an account on GitHub.
github.com
참고 문헌 :
https://book.naver.com/bookdb/book_detail.nhn?bid=16328592
핸즈온 머신러닝
머신러닝 전문가로 이끄는 최고의 실전 지침서 텐서플로 2.0을 반영한 풀컬러 개정판 『핸즈온 머신러닝』은 지능형 시스템을 구축하려면 반드시 알아야 할 머신러닝, 딥러닝 분야 핵심 개념과
book.naver.com