[KMOOC-실습으로배우는머신러닝]3. Classification
1️⃣ 머신러닝 분류 모델링
1-1. 기계학습
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, imporves with experiance E
1-2. 기계학습 유형
- 문제 상황(Task)에 따라 크게 3가지로 분류 가능
- 지도학습 - 분류, 회귀
- 비지도학습 - 군집화, 이상치 탐지
- 강화학습
1-3. Supervised Learning
- Training만 잘 학습되었다고 해서 모델 성능이 좋다고 할 수 없다. 꼭 Testing dataset의 성능을 봐야 한다.
- 함수의 특성을 결정지어주는 하이퍼파라미터들을 잘 튜닝해줘야 한다.
- 이는 어떤 기준으로 하냐? training dataset을 validation set으로 나누서 하이퍼파라미터 candidate에 대해 검증해본다.
1-4. Bias-Variance Tradeoff
- 모형의 오차라고 하는 것은 모형의 편향성과 모형의 변동성에 의해 결정됨
- 모형이 복잡하면 변동성이 커지게 되고, 궁극적으로 오차가 증가함
- 모형이 덜 복잡하면 변동성은 낮아지나 편향이 커지게 되어 모형의 오차가 커지게 된다.
→ 오른쪽으로 갈수록 모델의 complexity가 높아짐
- 모든 모델은 복잡도를 통제할 수 있는 하이퍼파라미터를 갖고 있음
- 가장 좋은 성능을 낼 수 있는 모델을 학습하기 위해 최적의 하이퍼파라미터를 결정해야함.
- Bias-Variance Tradeoff에 따라 과적합 및 과소적합 모두 성능이 안좋게 나타날 수 있음
1-5. Classification
- 범주형(categorical) 종속변수: class, label
- 예시
- 제품이 불량인지 양품인지 분류
- 고객이 이탈고객인지 잔류고객인지 분류
- 카드거래가 정상인지 사지인지 분류
- 특정 모델이 모든 경우에 대해 항상 좋은 성능을 낸다고 보장할 수 없음
- 문제 상황에 따라 적합한 모델을 선택해야함
2️⃣ KNN: K-Nearest Neighbors
2-1. 정의
- “두 관측치의 거리가 가까우면 Y도 비슷하다”
- K개의 주변 관측치의 Class에 대한 majority voting
- 다수결에 의한 분류
- Distance-based model, Instance-based learning
- “K”는 결정할 수 있는 하이퍼파라미터이다.
- 굉장히 심플하고 오래전부터 활용되어 왔다
- 간단하지만 성능이 꽤 괜찮다고 볼 수 있다.
예시를 들자면, 위의 그림에서 초록색 동그라미의 class를 예측하고자 한다면, KNN의 majority voting에 따라 K=3일 때 남자로 분류하게 된다.
반면 K에 따라서 분류의 결과가 달라지게 된다. 위의 그림의 경우 K=3이라면 ⭐는 CLASS B로 분류되겠지만, K=6이라면 CLASS A : CLASS B = 4 : 2이므로 CLASS A로 예측하게 된다.
👉 K에 따라 결과가 달라지고, 분류 경계선의 형태가 달라지면서 결국에는 모형의 복잡도로 이어지게 된다. K가 클수록 더 많은 사례를 학습하기 때문에 좀 더 단순한 경계선을 보여줄 것이고, K가 작으면 작을수록 미세한 패턴을 알아보기 때문에 모델의 복잡도가 커지게 된다.
2-2. 거리
- 두 관측치 사이의 거리를 측정할 수 있는 방법
- 범주형 변수는 Dummy Variable(더미변수)로 변환하여 거리를 계산한다.
- 예를 들어 변수 X에 Female, Male Class가 들어있더면 이들을 더미변수로 변환한 결과는 X_Female, X_Male 2개가 생길것이며 0 또는 1이 들어가게 된다.
- 그래서 클래스가 같으면 거리가 같다.
- 두 점 사이의 거리
- 다양한 거리 측도
- Eucllidean, Manhtten, Minkowski
- 일반적으로 Eucllidean Distance가 주로 많이 활용된다. 하지만 측정하는 대상에 대해 완벽하게 독립을 시켜서 거리를 계산하고자 할 때는 Manhatten Distance를 사용하게 된다.
2-3. K의 영향
- K의 영향이 절대적이며 중요하다
- K는 KNN의 Hyperparameter이며, 어떠한 거리 measure를 사용할지 결정짓는 역할을 수행하기도 한다.
- 즉 K가 모형의 복잡도를 결정해주는 하이퍼파라미터라면, 거리는 두 관측치들 사이의 거리를 어떤 가정을 갖고 측정할건지를 결정해주는 하이퍼파라미터이다.
- K가 클수록 Underfitting, K가 작을수록 Overfitting이 된다
- Validation dataset을 이요해 최적의 K를 결정해야한다.
3️⃣ Logistic Regression
선형회귀모형의 Classification 버전이다.
즉, 입력변수와 출력변수간에 선형관계가 있음을 가정한다.
3-1. 배경
💡 다중선형회귀분석
- 수치형 설명변수 X와 종속변수 Y간의 관계를 선형으로 가정하고 이를 가장 잘 표현할 수 있는 회귀계수를 추정한다.
3-2. 로지스틱회귀의 필요성
y가 범주형 변수일 때 선형모형을 해결하는 모델은 Logistic Regreesion이다. 그 이유는 linear regression의 output을 어떤 함수를 이용해서 범주형 변수로 변형을 하는데 그 변형에 사용되는 함수 이름이 로지스틱이기 때문에 Logistic Regreesion이 되었다.
다시말해 Logistic Regreesion은 Logistic 함수를 사용하는 Linear regreesion모델이다. 따라서 일반 회귀분석과는 다른 방식으로 접근해야 될 필요성이 있다.
CASE 종속변수의 속성이 이진변수일 때(0, 1)
- (분류될)확률값(0~1사이의 값)을 선형회귀의 종속변수로 사용하는 것은 타당하지 않다.
- 선형회귀분석의 우변은 범위에 대한 제한이 없기때문에 우변과 좌변의 범위가 다른 문제점이 발생한다.
- 또한 하나의 값으로 종속변수가 몰아져가야하는데, 선형회귀분석은 일반적으로 y값은 계속 증가하며, 이렇게 될 경우 오차도 커지게 된다.
📍 로지스틱 회귀분석의 목적
- 이진형(0/1)의 형태를 갖는 종속변수(분류문제)에 대해 회귀식의 형태로 모형을 추정하는 것
📍 왜 회귀식으로 표현해야하는가?
- 회귀식으로 표현될 경우 변수의 통계적 유의성 분석 및 종속변수에 미치는 영향력 등을 알아볼 수 있음
📍 로지스틱 회귀분석의 특징
- 이진형 종속변수 Y를 그대로 사용하는 것이 아니라 Y에 대한 로짓함수(logit funstion)를 회귀식의 종속변수로 사용한다
- 로짓함수는 설명변수의 선형결합으로 표현된다
- 로짓함수의 값은 종속변수에 대한 성공확률로 역산될 수 있으며, 따라서 이는 분류문제에 적용가능하다.
- 시그모이드함수를 기본 가정을 만족하는 함수형태로 사용함
- 손실함수에서는 cross-entropy loss를 사용한다.
- i는 관측치의 인덱스, j는 클래스의 인덱스
- 즉 실제 클래스의 분류 확률값에다가 로그를 취해 더한 값이 loss이다.
- 결국 loss를 minimize하게 되면 실제클래스로 분류될 확률을 높여주는 베타를 구할 수 있게 된다