두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, 두 카테고리의 가장 큰 폭의 경계를 찾는 알고리즘
클래스의 경계가 비선형인 상황에서는 커널(Kenel)을 활용하여 알고리즘 적용 가능(Kernel Trick)
커널 트릭(Kernel Trick)
저차원의 데이터를 고차원으로 확장한 후 마진을 최대화하는 초평면을 찾는 기법
고차원으로 확장된 벡터를 내적하여 스칼라를 만드는데, 벡터 변환과 내적을 건너뛰고
원 데이터를 바로 스칼라 공식에 대입하여 차원을 확장하는 기법이다. (Wow...)
장점
단점
파이썬 코드 예시
from sklearn.svm import SVC
model=SVC()
model.fit(x, y)
주요 하이퍼파라미터
C=1.0
정규화 파라미터, 작을수록 강한 규제
kernel='rbf'
커널 함수 종류 선택, {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, 'rbf'는 random forest를 의미
degree=3
커널 함수가 ‘poly’인 경우 차수
gamma='scale'
‘{'scale', 'auto'} or float, 커널 함수가 'poly', 'rbf', 'sigmoid'인 경우 커널의 계수
probability=False
클래스가 아닌 확률 추정 여부, 5-fold CV를 이용한다.
random_state=None
data 혼합 시 radom seed
Probalility=False
True인 경우 분류 라벨이 아닌 확률을 반환한다.
주어진 자료를 모집단으로 간주하여 주어진 자료에서 여러 개의 붓스트랩 자료를 생성하고 각각의 붓스트랩 자료에 예측모형을 만든 후 결합하여 최종 예측모형을 만드는 방식
배깅(Bagging, Bootstarp Aggregating)과 붓스트랩(Bootstrap)
붓스트랩이란 주어진 자료에서 단순랜덤 복원추출 방법을 활용하여 동일한 크기의 표본을 여러 개 생성하는 샘플링 방법을 의미하며, 배깅은 이러한 붓스트랩 샘플을 이용한 앙상블모델을 의미
Out-Of-Bag 샘플
붓스트랩 샘플링에서 추출되지 않은 나머지 데이터샘플
즉, 붓스트랩 샘플링은 전체 데이터를 'in-the-bag' 샘플과 'out-of-bag' 샘플로 나눠 복원추출한다.
장점
단점
파이썬 코드 예시
from sklearn.ensemble import BaggingClassifier
model = BaggingClassifier()
model.fit(X, y)
주요 하이퍼파라미터
estimator=None
붓스트랩한 샘플을 학습시킬 기본모델, 지정 안하면 의사결정나무(DecisionTreeClassifier)로 자동지정
n_estimators=10
앙상블에 들어갈 기본모델의 수
max_samples=1.0
각 기본 모델을 추정하기 위해 추출할 샘플의 수
max_features=1.0
각 기본 모델을 추정하기 위해 선택할 변수의 수
bootstrap=True
데이터를 복원 붓스트래핑을 할지 여부 설정, False 설정하는 경우 비복원 추출
bootstrap_features=False
변수를 복원 붓스트래핑을 할지 여부 설정, False 설정하는 경우 비복원 추출
oob_score=False
out-of-bag 샘플로 score를 계산할지 여부 설정, bootstrap = True인 경우에만 사용 가능
random_state
붓스트래핑 시 샘플링 랜덤시드