잘 분류한다는 것
파란 선의 경우 각 클래스의 데이터 샘플로부터 가장 멀리 위치해있다 -> 일반화 성능이 빨간 선보다 좋다
샘플로부터 분류 선까지의 거리를 마진(Margin)이라고 하며, 마진을 구성하는 데이터 샘플을 서포트 벡터(Support Vector)라고 한다.
선형 SVM의 목적
SVM은 마진을 최대화하며, 두 데이터를 분류하는 직선/초평면을 찾는 것이 목적이다. (= 최대 마진 초평면을 찾는 것)
최대 마진 초평면(maximal margin hyperplane)의 방정식은 아래와 같다
하드 마진 SVM (선형)
소프트 마진 SVM (선형)
완벽한 선형 분리가 불가능한 경우 어느 정도의 오분류를 허용하며 일반화 성능을 올리는 방식
슬랙 변수 (Slack variable) : 소프트 마진 SVM에서 사용하는 개념으로, 하나의 데이터 포인트에 대해 해당 데이터 포인트가 마진을 얼마나 위반하는지를 수치적으로 나타내는 지표
1) 마진 경계를 위반하지 않은 데이터 : ξ = 0
2) 마진 경계를 위반, 결정 경계를 위반하지 않은 데이터 : 0 < ξ <= 1
3) 결정 경계를 위반한 데이터 : 1 < ξ
하드 마진 SVM의 최적화 과정에 오차에 대한 패널티를 추가한 일반화 식을 사용한다
비선형 SVM
데이터의 특성이나 복잡도에 따라 데이터를 선형으로 분류할 수 없는 경우가 있다
위와 같은 경우, Mapping function을 사용하여 데이터의 차원을 늘려 초평면으로 분류해 볼 수 있다
하지만, 데이터의 차원을 늘리면 계산량, 복잡성이 크게 늘어난다. 이를 해결하기 위해 커널 트릭(Kernel Trick)을 사용함
커널 트릭(Kernel Trick) : 커널 함수를 사용하여 고차원의 내적 연산과 같은 결과를 보여주는 방법
최적화함수는 소프트 마진 SVM과 비슷한 구조를 가지고 있다
SVR (Support Vector Regression)
SVM을 회귀 문제로 확장.
주어진 데이터에서 가능한 많은 데이터 포인트를 포함하는 마진 구역을 설정하고, 해당 마진 구역 안에서 회귀 직선/초평면을 찾는것이 목표이다.
주어진 데이터에서 가능한 많은 데이터를 포함하는 마진 구역을 설정한다. 마진 구역의 안쪽에 해당하는 데이터(초록색으로 표시)만 사용하여 회귀 직선/초평면을 구성하고, 나머지 데이터들(회색으로 표시)는 outlier로 취급하여 drop한다.
최적화 함수는 아래와 같다
Decision Tree
Decision Tree 분류 결정 기준
결정 기준 : 데이터를 분할하는 기준을 결정하는데 사용하는 방법론이다
엔트로피 : 어떤 상황이나 현상이 품고 있는 불확실성
각 노드에 포함되는 데이터의 순도(분포)에 따라 엔트로피를 계산할 수 있다.
ex) 위 그림에서 각 노드의 엔트로피의 크기는 C < A < B이다.
정보 이득 (information gain) : 부모 노드와 자식 노드들의 엔트로피를 계산하여 엔트로피가 낮아지는 방향으로 결정 경계를 선정하는 것을 의미한다
엔트로피 VS 지니 불순도, 어떤 결정 기준을 사용해야 할까?
일반적으로 지니 불순도의 계산이 더 빠르다
일반적으로 엔트로피가 조금 더 균형 잡힌 트리를 만드는 경향이 있다
당연히 가장 좋은 것은 두 방식 모두 사용해보고 선택하는 것이다
Decision Tree 회귀