Classification Model
분류 모델
- 데이터가 어느 종류에 속하는지를 판별하는 AI 모델이다.
- Yes/No로 답할 수 있는 Decision Problem(결정 문제)를 해결하는 AI 모델이다.
- 분류 또한, 회귀와 같이 데이터의 포함 관계를 밝히기 위해 산점도를 이용한다.
- 회귀와 달리, 분류 모델에서 결과값은 이산적이다.
- 분류를 통한 문제해결의 예시는 아래와 같다:
- 컨텐츠 추천
- 스팸메일 분류
- 이미지·얼굴·글자·음성 인식
- 질병 진단
- 유전자 데이터 인식
- 재정 위험 파악과 관리
- 주가 예측
Classification Algorithms (분류 알고리즘)
- Naive Bayes Classifier
- Logistic Regression
- Support Vector Machine (SVM)
- Random Forest
- Decision Tree
- K-Nearest Neighbor (K-NN)
- Gradient Boosting Tree (GBT)
- SGD Classifier
- AdaBoost
Logistic Regression (Logit Regression; 로지스틱 회귀)
- 이산변수들간 상관관계를 나타내는 모델이다.
- 0 또는 1의 Binary Outcome(이분형결과)를 가진다.
(이분형결과 개념을 확장하여 여러 결과값을 가지게 할 수도 있다.)
- Linear Regression(선형 회귀)에서 아이디어를 착안하여 만든 개념으로,
이름은 로지스틱 '회귀'이지만, 엄연히 분류 알고리즘이다.
- 입력변수 값에 따른 출력변수의 Conditional Distribution(조건부 분포)을 만들어
출력변수 값을 정확도에 대한 확률로 여긴다.
ex) 주가방향 예측에 대한 로지스틱 회귀값이 0.65이면, 주가가 상승할 확률이 65%임을 의미한다.
- 이 때, 출력변수 함수로 로지스틱 함수를 사용함으로써 Range(치역)를 [0, 1]로 만들 수 있다.
Logistic Function (로지스틱 함수)
\(f(x) = (1 + e^{-(\beta_0 + \beta_1x)})^{-1}\)
\(\beta_0, \beta_1\) : 로지스틱 함수의 기울기를 결정하는 상수 (Parameters)
\(x \in R\)
\(f(x) \in [0, 1]\)
- 로지스틱 함수를 로지스틱 회귀 모델의 출력변수 함수로 사용하여 0부터 1사이의 값을 리턴시킬 수 있다.
* Model Fitting (모델 피팅)
- 로지스틱 함수에서 \(\beta_0, \beta_1\) 값을 찾아내는 작업을 의미한다.
- 대표적인 모델 피팅 방법 중 하나인
MLE(Maximum Likelihood Estimation)을 통해 확률을 최대로 만들어주는 Parameter값을 찾을 수 있다.
- Python \(\texttt{Scikit-learn}\) Library에서는 모델 피팅과 관련된 작업들을 수행하는 모듈을 제공하고 있다.
Support Vector Machine (SVM)
- 선형 데이터, 비선형 데이터 모두에 적용할 수 있는 모델이다.
- 데이터들을 분류하기 위한 Decision Boundary(최적 경계선; 위 그림에서 파선)을 찾고,
분류할 데이터가 입력되었을 때, 해당 데이터가 경계선의 어느 쪽에 위치하는지를 판별해낸다.
- 최적 경계선의 근처에 있는, 최적 경계선을 결정짓는 데이터들을
Supprt Vector(위 그림에서 파선에 접한 접점들)라 부른다.
- 최적 경계선을 선형으로 분리할 수 없는 경우, Kernel Trick(커널 트릭) 기법을 통해 데이터를 분류하게 된다.
- Python \(\texttt{Scikit-learn}\) Library에서는 SVM과 관련된 작업들을 수행하는 모듈을 제공하고 있다.
Kernel Trick (커널 트릭)
- 왼쪽의 Input Space에서처럼, 다른 색깔의 데이터들을 선형 최적 경계선으로 분류할 수 없는 경우,
Input Space를 다른 차원의 공간인 Feature Space로 변환하여 선형 최적 경계선을 찾아 분류해내는 방법이다.
Random Forest (랜덤 포레스트)
- 여러 개의 의사결정 트리를 사용하는 Ensemble Learning Method(앙상블 학습기법)이다.
- 입력변수를 서로 다른 각각의 의사결정 트리에 입력시켜 나온 출력값들을 토대로 최종 확률을 계산하는 모델이다.
- ex) 3명의 주식전문가에게 내일 주가가 상승할 것인지에 대해 물어봤을 때,
2명이 오른다고 답했다하면 내일 주가가 상승할 확률을 66.6%로 계산한다.
- 회귀와 분류 모두에 적용할 수 있다.
* Ensemble Learning Method (앙상블 학습기법)
- 머신러닝에서 더 좋은 결과를 얻기 위해 다수의 알고리즘이나 다수의 모델을 사용해 예측력을 높이는 방법이다.
Decision Tree (CART, Classification and Regression Tree; 의사결정 트리, 분류·회귀 트리)
- 입력변수 값에 따른 확률을 기준으로 입력변수들을 트리 구조에 매핑하여 분류하는 모델이다.
- 회귀와 분류 모두에 적용할 수 있다.
- 구조가 직관적이어서 이해하기 쉽다.
- 입력변수들의 중요도를 파악할 수 있어 Feature Selection(특징 선택)에 활용될 수 있다.
- 대규모 데이터 처리에 유리하다.
- 최종 확률은 의사결정 트리의 Leaf(리프 노드)에 위치해있다.
Reference: 머신러닝을 이용한 알고리즘 트레이딩 시스템 개발
(안명호, 류미현 저, 한빛미디어, 2016)