2021.04.09 TIL
- 머신러닝 복습.
머신러닝 모형
기본
분류모형
분류 모형 : 확률적 모형(확률사용 O) : 1. 생성모형 (베이즈 정리 O)
2. 판별모형 (베이즈 정리 X - 직접 함수 모양 추정)
판별적 모형 (확률사용 X - 이진분류)
확률적 모형
조건부확률을 사용하는 분류 모형의 경우 ‘predict_proba’ 또는 ‘predict_log_proba’ 메서드를 지원한다.
독립변수 x가 주어지면 종속변수 y의 모든 카테고리 값에 대하여 조건부확률(또는 로그값)을 계산한다.
로그 값은 비교하기 어려울 만큼 작은 값 역시 확대하여 비교가능하도록 가시화 해줄 수 있다.
확률적 생성 모형
베이즈 정리 사용하여 추정. < QDA-LDA, 나이브베이즈에 사용됨. >
과도한 계산량을 요구할 수 있다. 3개이상의 클래스에 대해서도 쉽게 적용할 수 있다.
P(y = k Ι x) = P(x Ι y = k)*P(y = k) / P(x)
이처럼 베이즈 정리를 사용하게 되는데 우리가 ‘가능도함수’를 안다는 것은 거꾸로 x에관한 데이터를 생성할 수도 있다는 말이 된다. y = k일 경우 x data가 어떠할지 안다는 의미.
확률적 판별 모형
조건부확률 p(y = k Ι x) 가 x에대한 함수인 f(x)로 표시될 수 있다고 가정하고 그 함수를 직접 찾는 방법이다.
해당 f(x)는 0<= f(x) <= 1의 범위를 가진다. (확률이기 때문에)
< 로지스틱 회귀모형 (f(x)가 로지스틱 함수 형태이다.) - 의사결정나무에 사용됨. >
판별적 모형
동일한 클래스가 모여 있는 영역, 그 영역을 나누는 경계를 정의하는 것이다.
경계는 경계로부터 거리를 계산하는 f(x) 형태의 함수인 판별함수 로 정의된다.
< 퍼셉트론, 커널 SVM에 사용됨. >
판별적 모형을 통해 클래스가 3개 이상의 문제를 해결해야 할 경우 (다중 클래스 분류)
OvO 방법
one-vs-one 방법으로, K개의 클래스가 존재할 경우 k*(k-1)/2 의 조합으로 모든 이진분류 실행하여 가장 많이 나온 클래스를 선택하는 방법이다.
횟수가 같을 경우, 각 클래스가 얻은 조건부확률 값(판별함수 값)을 모두 더해 비교하여 선택한다.
클래스가 많아질 경우 덩달아 많이 시행해야 한다.
OvR방법
one-vs-(the)rest 방법으로, 0 1 2 와 같이 3개의 클래스가 존재할 경우, 0이냐 나머지냐 1이냐 나머지냐 2이냐 나머지냐와 같은 방법을 사용하여 클래스를 선택하는 방법이다.
ovo와 다르게 클래스 수만큼 시행하면 되고 ovo와 마찬가지로 동점이 나왔을 경우 조건부확률 값을 통해 선택한다.
분류문제에 있어서 성능평가
이진 분류 평가 (가장 많이 사용됨.)
어떤 data를 조사하고 예측하느냐에 따라 이진 분류의 요소마다 중요성이 달라지므로 여러 평가기준이 존재한다.
- 정확도 (전체 중 맞게 예측한 것) : TP+TN / TP+TN+FP+FN
- 정밀도 (양성 예측 중 실제 양성) : TP / TP + FP ((기소)유죄율)
- 재현율 (실제 양성 중 예측한 양성) : TP / TP + FN (정의구현율)
- 위양성율 (실제 음성 중 예측한 양성) : FP / FP + TN (억울한 비율)
재현율과 위양성율은 서로 양의 상관관계이다.
- F 점수 : 정밀도와 재현율을 가중조화평균 한 것. 정밀도에 주어지는 가중치를 베타라고 한다.