01. 머신러닝 특강 - 분류 분석
- 분류 문제에 사용하는 성능 지표 확인
- 분류 문제 해결에 적합한 머신 러닝 모델 확인
- 실제 코드를 통해 머신 러닝으로 분류 문제를 해결
1. 분류모델
- 문제와 정답을 함께 주고 학습하는 지도 학습의 경우 크게 분류와 예측 두 가지로 나눌 수 있음
- 정답에 해당하는 타겟 변수가 범주형 변수인 경우 분류 모델
- 문제 정의 및 퍼포먼스에 따라 타겟 변수가 연속형 변수더라도 범주형으로 변환하여 수행 가능
1) 성능 지표
2. 로지스틱 회귀 분석 (Logistic Regreesion)
-
독립 변수의 선형 결합을 이용해서 사건의 발생 가능성(확률)을 예측하는데 사용되는 모델
-
타켓 변수가 주로 두 개의 범주(Yes/No)인 경우레 주로 사용
-
이름에서 나타내는 것 처럼 Log를 활용한 계산
-
모델 설명
-
오즈(Odds)
- 도박사들이 주로 쓰는 표기이며 성공 확률이 실패 확률에 비해 몇 배 더 높은지를 나타냄
- 실패확률 대비 성공확률
-
로짓(Logit)
- 오즈에 자연로그를 취한 값
- 확률 p에 대해 (-∞, +∞) 범위로 출력값을 조절
-
로지스틱 함수
- 선형 회귀식의 결과를 0과 1 사이의 확률값으로 변환하는 함수
- 선형 회귀식의 결과는 연속성으로 0과 1 사이 범위를 초과할 수 있는데 이를 로짓 변화를 통해 변환
- 로지스틱 회귀식 변형에 대해서는 내용 다시 참고하기! ★
-
다중 클래스 분류
-
로지스틱 회귀 분석은 이진 분류에 주로 사용되지만, 클래스가 3개 이상인 다중 클래스 분류에서 활용 가능
-
방법
1) One-Hot encoding 을 통해 N개의 클래스를 N차원의 벡터로 변환
2) 각 차원에 대해서 로지스틱 회귀 분석을 수행
3) 이때 각 차원의 예측값은 해당 클래스에 분류될 확률에 해당
4) 확률이 가장 높게 나온 클래스로 해당 데이터를 분류 ( 이를 Hard Clustering 이라고 함 )
3. 랜덤 포레스트
- 여러 개의 의사결정나무(Decision Tree)를 학습시켜 성능을 높이는 앙상블 학습 방법
1) 의사결정나무(Decision Tree)
- 한 번에 하나의 기준으로 데이터를 두 그룹으로 분류
- 데이터를 분류할 때는 불순도가 낮아지는 방향으로 분류
- 불순도 :
- 한 집단에 각기 다른 클래스의 비중이 비슷하게 있다면 불순도가 높은 상태
- 불순도가 낮은 방향 → 두 그룹으로 나눴을 때 각각의 그룹은 비슷한 클래스끼리 그룹화
2) 앙상블 (Ensemble)
- 하나의 모델을 사용하는 것이 아닌, 여러 개의 모델을 결합하여 모델의 성능을 높이는 방식
- 예 ) 배깅(Bagging), 부스팅(Boosting)
3) 랜덤 포레스트(Random Forest)
-
여러 개의 의사결정나무를 결합하여 분류 및 예측 모델에 활용하는 모델로 대표적인 앙상블 모델 중 하나
-
각각의 트리를 학습할 때마다 Feature의 일부만을 랜덤하게 선택하여 사용
-
분류 모델의 경우, 여러 의사결정나무에서 분류한 결과에서 투표를 통해 최종 결과를 선택
-
Feature Importance
- 각각의 의사결정나무를 학습할 때 어떤 Feature가 많이 사용되었는지에 따라서 모델 생성에 중요하게 동작한 Feature를 선정 가능