부스팅(Boosting) `부스팅(Boosting)`이란 여러 개의 learning 모델을 순차적으로 구축하여 최종적으로 합치는 방법이다. 여기서 사용하는 learning 모델은 매우 단순한 모델이다. 여기서 단순한 모델이란 Model that slightly better than chance, 즉 이진 분류에서 분류 성능이 0.5를 조금 넘는 정도의 수준의 모델을 말한다. 부스팅은 모델 구축에 순서를 고려하기 때문에 각 단계에서 새로운 base learner를 학습하여 이전 단계의 base learner의 단점을 보완하며, 각 단계를 거치면서 모델이 점차 강해진다. 부스팅 모델의 종류로는 `AdaBoost`, `GBM`, `XGBoost`, `Light GBM`, `CatBoost` 등이 있다. Ada..
불균형 데이터란? 불균형 데이터란, 정상 범주의 관측치 수와 이상 범주의 관측치 수의 차이가 크게 나타나는 데이터를 말한다. 즉, 클래스 별 관측치의 수가 현저하게 차이가 나는 데이터를 불균형 데이터라고 말한다. 불균형 데이터가 문제가 되는 이유는 다수의 데이터를 정확히 분류하는 것보다 일반적으로 소수의 데이터를 정확히 분류하는 것이 중요하지만 다수의 데이터에 편향된 분류 경계선이 형성되어 소수의 데이터를 정확히 찾아내지 못하기 때문이다. 또한 다음과 같은 `정오행렬(Confusion Matrix)`가 있을 때, 이상(소수) 데이터를 제대로 예측하지 못했음에도 예측 정확도가 높게 나오는 모델 성능에 대한 왜곡이 있을 수 있다. 불균형 데이터의 해결 방안 크게 두 가지로, 데이터를 조정해서 이를 해결하는 ..
군집화(Clustering) `군집화(Clustering)`이란 예측 모델과 같이 예측을 목적으로 하는 것이 아닌, 데이터가 주어졌을 때 데이터 간에 유사한 속성들을 갖는 관측치들을 묶어 전체 데이터를 몇 개의 군집(그룹)으로 나누는 것을 말한다. 군집화의 기준은 동일한 군집에 소속된 관측치들은 서로 유사할수록 좋으며, 상이한 군집에 소속된 관측치들은 서로 다를수록 좋다. `분류(Classification)`와 `군집화(Clustering)`의 차이는 다음과 같다. 분류 : 사전 정의된 범주가 있는(labeled) 데이터로부터 예측 모델을 학습하는 문제 → `지도학습(Supervised Learning)` 군집화 : 사전 정의된 범주가 없는(unlabeled) 데이터에서 최적의 그룹을 찾는 문제 → `비..
부분최소제곱법(Partial Least Squares, PLS) `부분최소제곱법(Partial Least Squares, PLS)`은 X의 선형결합의 분산을 최대화하는 것과 더불어 X의 선형결합 Z와 Y간의 공분산을 최대화하는 변수를 추출하는 방법이다. PLS는 Y와의 공분산이 높은 k개의 선형조합 변수를 추출(Supervised feature extraction)하는 방식이다. PLS(부분최소제곱)의 용어는 선형조합으로 추출된 변수가 설명하지 못하는 부분에(데이터 일부분) 지속적으로 최소제곱법을 사용하는 것에서 유래했다. PLS의 주요 목적은 PCA와 동일하게 회귀 및 분류 모델을 구축하고, 데이터의 차원을 축소시키는 것이다. 그러나 PCA와의 차이점은 추출된 변수가 PCA에서는 반영하지 못했던 Y와의..
고차원 데이터 고차원 데이터란 X 변수의 수가 많은 데이터를 말한다. 이는 변수의 수가 많기 때문에 불필요한 변수가 존재하며 시각적으로 표현하기 어렵다. 또한 계산 복잡도가 증가하기 때문에 모델링이 비효율적일 가능성이 크다. 따라서 이 경우 중요한 변수만을 선택해서 모델링을 하는 것이 필요하며, 이를 `차원 축소(dimension reduction)`라고 한다. 변수 선택/추출을 통한 차원 축소 차원 축소의 방법은 `변수 선택(feature selection)`과 `변수 추출(feature extraction)` 두 가지가 있다. 변수 선택이란 분석 목적에 부합하는 소수의 예측 변수만을 선택하는 방법으로 본 데이터에서 변수를 선택하기 때문에 선택한 변수의 해석이 용이하지만 변수간 상관관계를 고려하기 어렵..
서포트 벡터 머신(Support Vector Machine, SVM) `서포트 벡터 머신(Support Vector Machine, SVM)`은 고차원 데이터의 분류 문제에 굉장한 성능을 보이는 모델이다. 또한 SVM은 2차 방정식으로 formulation을 한다. 즉, `2차 계획법(quadratic programming)`으로 문제를 해결한다. 대부분 문제를 풀때 training data에 대하여 분류 성능을 최대화하기 위해 노력한다. 그러나 training data에 너무 맞춰진 모델은 과적합의 위험이 있으며, 알려지지 않은 데이터에 대한 성능(generalization ability)도 좋아야 한다. 여기서 generalization ability와 fitting to the training da..
랜덤 포레스트 모델 배경 - 앙상블 `랜덤 포레스트(Random Forest)`는 앙상블 기법의 하나의 예이다. `앙상블(ensemble)`이란, 여러 Base 모델들의 예측을 다수결 법칙 또는 평균을 이용해 통합하여 예측 정확성을 향상시키는 방법을 말한다. 앙상블 모델은 Base 모델들이 서로 독립적이며, Base 모델들이 무작위 예측을 수행하는 모델보다 성능이 좋은 경우 Base 모델모다 우수한 성능을 보여준다. 앙상블 모델의 오류율은 다음과 같은 식으로 나타낸다. 랜덤 포레스트 모델은 `의사결정나무(decision tree)모델`을 Base 모델로 사용한다. 의사결정나무모델은 다음과 같은 이유로 Base 모델로써 활용도가 높다. Low computational complexity : 데이터의 크기가..
의사결정나무 모델 데이터에 내재되어 있는 패턴을 변수의 조합으로 나타내는 예측/분류 모델을 나무의 형태로 만드는 것 질문을 던져서 맞고 틀리는 것에 따라 우리가 생각하고 있는 대상을 좁혀나감 스무고개 놀이와 비슷한 개념 데이터를 2개 혹은 그 이상의 부분집합으로 데이터가 균일해지도록 분할 분류 : 비슷한 범주를 갖고 있는 관측치끼리 모음 예측 : 비슷한 수치를 갖고 있는 관측치끼리 모음 `뿌리 마디(Root node)`, `중간마디(Intermediate node)`, `끝마디(Terminal node)`로 구성 예측나무 모델(Regression Tree) 예측나무 모델에 대하여 다음 3가지 방법은 같은 문제를 다르게 표현한 것이다. 예측나무 모델링 프로세스는 다음과 같다. 이제 분할변수(j)와 분할점(..
분류 및 예측을 위한 모델 분류 및 예측을 위한 모델은 크게 2가지가 있다. 첫 번째는 `Model-based Learning`이다. 이는 데이터로부터 모델을 생성하여 분류 및 예측을 진행하는 것으로 선형/비선형모델(linear regression, logistic regression 등), Neural Network, 의사 결정 나무, Support Vector Machine 등을 예로 들 수 있다. 두 번째는 `Instance-based Learning`이다. 이는 별도의 모델 생성 없이 인접 데이터를 분류 및 예측에 사용하는 것을 말한다. 대표적인 예로는 K-nearest neighbor, Locally weighted regression 등이 있다. Nearest neighbors KNN 알고리즘..
Good Model 좋은 모델이란 두 가지로 나눌 수 있다. 첫 번째는 현재 데이터(training data)를 잘 설명하는 모델(Explanatory modeling)이며, 두 번째는 미래 데이터(testing data)에 대한 예측 성능이 좋은 모델(Predictive modeling)이다. 좋은 Explanatory model이란 training error를 minimize하는 모델이다. 타깃 값이 연속형일 경우 MSE 값을 minimize 하는 경우이다. 또한 좋은 Predictive Model이란 미래 데이터에 대한 expected error가 낮은 모델이다. 이 경우에는 Expected MSE값을 감소시켜야 한다. 여기서 Irreducible Error는 어떻게 할 방법이 없는 오류를 말하며,..