< Support Vector Machine (SVM) >
▷ 데이터를 선형으로 분리하는 최적의 선형 Decision Boundary를 찾는 알고리즘
▷ Support Vector : 데이터의 경계를 나타내는 데이터
▷ Decision Boundary : 분류를 나누는 선으로 두 support vector의 평균(그림의 Hyperplane)
▷ Margin : support vector 간의 거리
▷ Margin을 최대화 하는 것이 optimal한 Decision Boundary
※ SVM에서의 이상치 처리
▷ 이상치 존재 → support vector 변경 → Margin 감소 → 모든 데이터를 다 포함하는 Decision Boundary 생성 → Overfitting 발생 → Hard margin
▷ 반대현상은 Soft margin
▷ sklearn 에서는 이를 해결하기 위해 'C' 라는 hyperparameter를 이용
- C가 크면 hard marign - overfitting
- C가 작으면 soft margin - underfitting
▷ C 값을 적절하게 조절해서 적당한 값을 찾아야 한다.
< Kernel >
▷ 주어진 데이터를 고차원의 공간으로 projection(투영)하는 기법
▷ 위의 그림에서는 2차원으로는 Decision Boundary를 구하기 어려운데, 3차원으로 차원을 늘려 분류하면 쉽다.
※ sklearn에서 kernel 종류
- linear : 직선
- poly : 2차원에서 3차원으로 늘일 때
- RBF : Radial Basis Function(방사형 기저 함수)
- gamma 라는 hyperparameter가 존재하고, 데이터가 영향력을 행사하는 거리를 나타낸다.
- gamma값이 클수록 영향력을 행사하는 거리가 줄어듬 -> 구불구불해짐 -> Overfitting
- gamma값이 작을수록 영향력을 행사하는 거리가 커짐 -> 직선형 -> Underfitting
※ C와 gamma값을 어떻게 하면 잘 설정할 수 있을까?
1. 수동으로 적합한 값을 찾기 -> 적합하지 않음
2. sklearn이 자동으로 최적의 parameter를 찾을 수 있는 방법을 제공해준다.
- GridSearchCV : 사용할 parameter를 여러개 지정하고, CV를 실행해서 최적의 accuracy를 도출하는 값을 찾아준다.
< SVM 실습 >
1. mglearn의 데이터 활용
2. BMI 예제
3. MNIST 예제
'Python > Data Analysis' 카테고리의 다른 글
Data Analysis / DL / CNN (0) | 2020.11.02 |
---|---|
Data Analysis / DL / Basic(2) (0) | 2020.10.16 |
Data Analysis / DL / Basic (0) | 2020.10.16 |
Data Analysis / ML / Tensorflow 2.x(2) (0) | 2020.10.15 |
Data Analysis / ML / Tensorflow 2.x(1) (0) | 2020.10.15 |