-
sklearn-07 classification 2 svm머신러닝/sklearn 2023. 5. 10. 18:04
1. svm
support vector machine은 분류를 위하여 기준 선을 정의하는 모델이다.
기준 선과 데이터와의 간격은 마진이다. support vector는 기준선과 가까이 있는 데이터들을 의미한다.
이렇게 2차원에서 선을 그려도 나눌 수 없는 비선형 데이터들을 나누기 위해 차원을 확장한다.
3차원으로 표현하면 선은 평면이 되며 초평면이라고 말한다.
2차원으로 표현한 모습이다.
svm은 데이터들과 거리가 가장 먼 초평면을 선택하여 분리하는 방법이다. svm은 오류 데이터에 영향이 적고 과적합되는 경우가 적지만 최적의 모델을 찾기 위해서 다양한 테스트가 필요하기 때문에 학습속도가 느리다는 단점이 있다.
2. python
from sklearn.svm import SVC
soft vector machine classification 모듈을 불러온다.
for i in [0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19]: svc = SVC(C=i) svc.fit(X_train,y_train) y_pred = svc.predict(X_test) print('서포트 백터머신, c={} 정확도:{:}'.format(i, accuracy_score(y_test, y_pred) * 100)) 서포트 백터머신, c=0.1 정확도:90.0 서포트 백터머신, c=0.11 정확도:90.0 서포트 백터머신, c=0.12 정확도:90.0 서포트 백터머신, c=0.13 정확도:90.0 서포트 백터머신, c=0.14 정확도:90.0 서포트 백터머신, c=0.15 정확도:90.0 서포트 백터머신, c=0.16 정확도:90.0 서포트 백터머신, c=0.17 정확도:93.33333333333333 서포트 백터머신, c=0.18 정확도:100.0 서포트 백터머신, c=0.19 정확도:100.0
데이터를 fit 시키고 라벨값을 예측한다. for문으로 c의 값을 바꿔가며 정확도를 체크한다. c는 노이즈 무시 갯수이며 마진값에 들어온 데이터들을 몇개를 무시할 것인지를 정한다.
'머신러닝 > sklearn' 카테고리의 다른 글
sklearn-09 classification 4 ramdom forest (0) 2023.05.10 sklearn-08 classification 3 decision tree (0) 2023.05.10 sklearn-06 classification 1 logistic regression (0) 2023.05.10 sklearn-04 preprocessing 4 categorical variable to numeric variable (0) 2023.05.07