분류기법의 종류
- 로지스틱 회귀분석 (Logistic Regression) - 선형을 이용해 분류, 로지스틱 함수 적용
- 의사결정나무 (Decision Tree) - 트리구조로 분류 또는 회귀, 해석이 쉬움
- 앙상블(Ensemble) - 여러 모델을 결합하여 강력한 모델 생성
- K-NN (K-Nearest Neighbors) - 데이터 포인트의 가장 가까운 k개 이웃 데이터 포인트들 기반
- SVM (Support Vector Machine) - 데이터를 고차원 공간으로 매핑하여 선형/빈선형 분류 수행
- 인공신경망 모형 (ANN) - 여러 계층의 뉴런으로 구성되며, 숨겨진 계층을 통해 비선형 함수를 모델링, 딥러닝에서 적용
- 베이지안분류 (Naive Bayesian) - 베이즈 이론 기반으로, 예측변수와 클래스간의 관계를 모델링
로지스틱 회귀분석 (Logistic Regression)
- 종속변수가 범주형인 경우 사용
- 이항변수(0,1)로 되어 있는 이항분류 (e.g. 사망/생존, 실패/성공)
- 확률 (0~1) → odds (0~∞) → log odds (-∞~+∞) → sigmoid (연속형 0~1)
- 일반 선형회귀 -> x값의 변화에 따른 y 값의 변화
- 로지스틱 회귀 -> y가 성공일 확률에 대한 것을 선형 모델로 알아내는 것
구분 | 일반 선형회귀 (Linear Regression) | 로지스틱 회귀 |
종속변수 (DV) | 연속형 | 0,1 (범주형) |
모형탐색방법 | 최소제곱법 (LSM) | 최대우도법(MLE), 가중최소제곱법 |
모형검정 | F-test, T-test | 카이제곱 검정 (chi-squared test) |
공식 |
- 승산 (odds): 성공률이 실패율의 몇배인지 나타내는 확률 (=성공률/실패율)
- 승산비 (odds ratio) = odds A / odds B
- 승산비가 1인 경우 효과 x, 음수인 경우 확률 감소, 양수인 경우 확률 증가
R코드로 알아보는 로지스틱 회귀
*사용함수: glm(종속변수 ~ 독리변수1+...+독립변수k, family=binomial, data=데이터셋명)
data(iris)
a<-iris[iris$Species=="setosa"|iris$Species=="versicolor",]
b<-glm(Species ~ Sepal.Length, data=a, family=binomial) #종속변수 species, 독립변수 sepal.length
summary(b)
coef(b)
exp(coef(b))['Sepal.Length']
프로그램 결과 분석_
Sepal.Length가 1 증가하면, Species(Y)가 1에서 2로 바뀔 때 Odds가 exp(5.14)=170배 증가한다.
의사결정나무 (Decision Tree)
- 의사결정 규칙을 트리 구조로 나타내 전체 자료를 몇개의 소집단으로 분류하거나 예측을 수행하는 방법
- 종류:
- 분류나무 (classification tree) - 종속변수가 (범주형)이산형
- 회귀나무 (regression tree) - 종속변수가 (수치형)연속형
- 현재 분할은 이전 분할에 영향을 받음 (노드분리를 위한 질문 생성은 이전 노드 분리 질문의 영향을 받음)
- 자식마디의 순수도가 증가하도록 분류나무를 형성해 나감 (불순도 감소)
장점:
- 분석과정이 직관적이고 이해하기 쉬움 (수학적 가정 불필요)
- 가지치기 (Pruning)를 사용하여 비정상적인 잠음 데이터에 대해서도 민감하지 않게 할 수 있음
- 범주형 & 수치형 변수 모두 사용 가능
단점:
- 분류모델은 분류 기준값의 경계선 부든의 자료값은 비연속성을 가지므로 오차가 큼
- 새로운 자료에 대해 과대적합(overfitting) 경향이 있음
- 각 예측변수의 효과를 파악하기 어려움 (로지스틱 회귀와는 달리)
의사결정나무의 결정규칙
- 분리 규칙 (splitting rule)- 데이터 나누기
- 분리기준 (Splitting Criterion) - 새로운 가지를 만들 때 기준을 어떻게 정할까?
- 정보 이득 (Information Gain)은 분할 후 불확실성의 감소를 나타냄
- 지니지수, 엔트로피 지수는 분할 후 클래스의 불순도를 측정
- 불확실성 down, 불순도 down, 순수도 up 하는 방향으로 분리
- 정지 규칙 (Stopping rule) - 트리 생성 중지하기 (분할 끝)
- 과대적합을 방지함
- e.g. tree의 최대 깊이가 일정 수준 이상되면 stop
- e.g. 정보이득, 지니지수 임계값 사용으로 분할 후의 평가지표가 일정값 미만이 되면 stop
- 가지치기 규칙(Pruning Rule) - 트리를 단순화하기 (일반화 능력 향상)
- 불필요한 가지를 더 이상 분할하지 않는 것
- 과대적합을 방지
- 의사결정나무는 가지치기의 비용함수(Cost function)를 최소로 하는 분기를 찾아내도록 학습함
불순도 측정 지표
1) 지니지수 (Gini index) - 값이 작을수록 순수도가 높음 (=분류 잘 됨)
- 지니지수 = 1 - ((각 범주별 데이터 수 / 전체 데이터 수)의 제곱의 합)
- e.g. 원본데이터 ●■■■인 경우, 지니지수 = 1-((1/4)^2 + (3/4)^2) = 0.375
*그림을 보고 지니 지수 구하는 방법 알아야함
2) 엔트로피지수 (Entropy measure) - 가장 작은 값을 갖는 방법 선택 (= 순수도 높음)
- 확률이 1/2인 경우, entropy = 1이며 불순도가 가장 높은 상태
- 엔트로피지수 = - (각범주별 확률값 x log2(확률값)의 합)
3) 카이제곱 통계량 유의 확률 (p-value) - p-val이 가장 작은 값을 갖는 방법 선택
- 동질성 검정을 사용하기 때문에 2개의 집단 간 분포가 동일한지 판단하는 것
- 귀무가설(null hypothesis) - 집단 간 분포가 동일하다
- p-val이 작을수록 집단 간 분포가 동일하지 않은 것 (= 이질성(diversity)이 높음 = 집단간 분리가 잘 됨)
의사결정나무의 알고리즘
*하향식 접근 방법을 이용
알고리즘 | 종속변수 (분류나무) | 종속변수 (회귀나무) |
CART (Classification and Regression Tree) | 지니지수 | 분산 감소량 |
C5.0 | 엔트로피 지수 | |
CHAID (Chi-squared Automatic Interaction Detection) | 카이제곱 통계량 (또는 p-val) | ANOVA F-통계량 (또는 p-val) |
- 작을수록 순수도 up: 지니지수, 엔트로피지수, 카이제곱통계량의 p-val, ANOVA F-통계량의 p-val
- 클수록 순수도 up: 분산 감소량, 카이제곱 통계량, ANOVA F-통계량
R코드로 알아보는 의사결정나무
*시험에서 이 R코드실습은 중요하지 않음
library(party)
idx <- sample(2, nrow(iris), replace = TRUE, prob = c(0.7, 0.3))
train.data <- iris[idx==1,] #70%는 학습용 데이터
test.data <- iris[idx==2,] #30%는 테스트데이터
iris.tree <- ctree(Species~., data=train.data)
plot(iris.tree, type = "simple") #모형생성
'데이터분석자격증 ADsP > Part 3 데이터 분석 R' 카테고리의 다른 글
[ADsP] 데이터마이닝 - 분류분석 (인공신경망 모형 ANN) (24) | 2024.02.21 |
---|---|
[ADsP] 통계분석 - 상관분석 (Correlation Analysis)을 통한 다변량 분석 (20) | 2024.02.20 |
[ADsP] 데이터마이닝 - 분류분석 (앙상블 모형, K-NN, SVM) (14) | 2024.02.19 |
[ADsP] 데이터마이닝 - 연관분석 (Association Analysis) 장바구니 분석 (13) | 2024.02.19 |
[ADsP] 데이터마이닝 (Data Mining) 정의, 기법, 모형평가, 불균형데이터 (3) | 2024.02.18 |