7. 판별 분석 (Discriminant Analysis)
판별 분석이란 분류에 사용되는 머신러닝 방법 중 하나로, 두 개 이상의 모집단에서 추출된 표본들의 정보를 활용하여, 이 표본들이 어떤 집단에서 추출된 것인지를 결정할 수 있는 기준을 찾는 분석법이다.
구글에 LDA를 치면 나오는 Latent Dirichlet Allocation과는 다른 것이니 주의하자.
판별분석은 투영을 이용한 차원 축소 방법이다. 예를들어, 아래는 2개의 변수를 갖는 데이터에 대한 LDA이다.
오른쪽 그림에서 찾아낸 축에서, 두 집단의 투영된 분포가 확연히 분리되어 있는 것을 확인할 수 있다.
LDA를 위한 표본은 통상적으로, 전체가 독립변수의 갯수보다 3배 이상 커야하고, 종속 변수의 집단 각각의 표본 크기 중 최소 크기가 독립변수의 갯수보다 커야 한다. (데이터의 전체 갯수보다, 가장 적은 집단의 표본 수에 정확도 영향을 많이 받는다.)
판별 변수Discriminant Variable
판별 변수는 표본이 어떤 집합에 속하는지 판별하기 위한 변수로, 데이터에 포함된 독립 변수 중 판별력이 높은 변수를 뜻한다. 판별 변수의 선택은 다양한 것을 고려해야 하지만, 일반적으로 상관관계가 높은 두 개의 변수를 택하는 것보다는, 서로 상관관계를 갖는 두 변수 중 하나와, 해당 변수와 상관관계가 적은 변수 하나를 택하는 것이 효과적이다.
예를들어, 어떤 환자의 보험 가입 승인 여부를 판별할 때 두 개의 변수를 사용한다면, 나이와 연령대를 사용하는 것보다, 나이와 가족력 여부를 사용하는 것이 좋다.
이렇게, 데이터의 독립 변수 중 목적에 부합하는 변수를 찾아내고 다루는 과정을 특성 공학Feature Engineering이라고 한다.
판별 함수Discriminant Function
선택한 판별 변수들을 이용하여, 분류의 기준이 되는 판별 점수Discriminant Score를 도출하는 새로운 함수이다. 판별 함수에 새로운 데이터를 대입하여, 해당 데이터가 어떤 집단에 속하는지 판별한다.
선형 판별 분석(LDA)에서 판별 함수는 판별 변수에 대한 선형식이다.
$$ \text{Discriminant Score} = \beta _0+ \beta _1 x_1 + \beta _2 x_2 +\cdots + \beta _p x_p$$
우리는, 판별 점수가 집단 내에서는 작게 변동하고, 집단 외에서는 크게 변동하는, 즉, 집단간 변동과 집단내 변동의 배율을 최대화 하는 함수를 찾아야 한다.
선형 판별 분석의 가정
선형 판별 분석은, 데이터의 각 클래스 집단이 정규분포의 형태를 가지고, 비슷한 형태의 공분산 구조를 가진다고 가정한다.
차원 축소
LDA는 여러 개의 판별 변수를 이용하여 만들어진, 판별 점수 축에 의해 판별을 진행한다. 즉, 차원 축소의 역할을 하기도 한다. 판별 점수를 이용하여 바로 분류를 진행할 수도 있지만, LDA로 차원 축소된 데이터를 SVM 등의 모델에 다시 넣어서 분류를 진행하기도 한다.
LDA의 결정 경계선
그래서 LDA로 판별은 어떻게 하냐. 판별 경계선을 정한다.
판별 점수 축에 직교하는 경계선을 설정해서, 해당 선을 기준으로 분류를 진행하는데, 쉽게 말해, 판별 점수가 $n$보다 크면 $a$클래스, 작으면 $b$ 클래스... 와 같은 방법이다.
판별 경계선을 정하는 기준은, 각 클래스 집단의 평균 판별 점수와 차이가 클수록 좋고, 각 클래스 집단의 분산이 작은 지점, 즉 가장 적게 겹쳐있는 지점으로 택하면 된다.
이차 판별 분석Quadratic Disriminant Analysis
선형 판별 분석은 공분산 구조가 많이 상이한 데이터를 잘 다루지 못한다. 그럴 때는 이차 판별 분석(QDA)을 이용한다.
(어느 때든 QDA를 쓰는게 아니라, 공분산 구조가 다를 때, QDA를 쓴다!)
LDA는 결정 경계선을 판별 점수와 직교하는 직선으로 본다. 반면, QDA는 결정 경계선이 비선형이기 때문에 서로 다른 공분산 구조를 갖는 데이터들을 분류하기 용이하다.
(LDA도, 판별 변수의 제곱을 취함으로서 비선형 결정 경계선을 가질 수는 있다.)
다만, 그만큼 더 많은 데이터를 필요로 하는 단점이 있다.
'학부 수업 > 머신러닝' 카테고리의 다른 글
9. 서포트 벡터 머신 (Support Vector Machine: SVM) (0) | 2020.11.25 |
---|---|
8. 의사 결정 트리 (Decision Tree) (0) | 2020.10.23 |
6. 규제, 정규화 (Regularization) (0) | 2020.10.21 |
5. 선형 회귀 (Linear Regression) (0) | 2020.10.21 |
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall) (0) | 2020.09.23 |
댓글
이 글 공유하기
다른 글
-
9. 서포트 벡터 머신 (Support Vector Machine: SVM)
9. 서포트 벡터 머신 (Support Vector Machine: SVM)
2020.11.25 -
8. 의사 결정 트리 (Decision Tree)
8. 의사 결정 트리 (Decision Tree)
2020.10.23 -
6. 규제, 정규화 (Regularization)
6. 규제, 정규화 (Regularization)
2020.10.21 -
5. 선형 회귀 (Linear Regression)
5. 선형 회귀 (Linear Regression)
2020.10.21