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
모형의 오차라고 하는 것은 모형의 편향성과 모형의 변동성에 의해 결정됨
모형이 복잡하면 변동성이 커지게 되고, 궁극적으로 오차가 증가함
모형이 덜 복잡하면 변동성은 낮아지나 편향이 커지게 되어 모형의 오차가 커지게 된다.
출처: KMOOC-실습으로배우는 머신러닝
→ 오른쪽으로 갈수록 모델의 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”는 결정할 수 있는 하이퍼파라미터이다.
굉장히 심플하고 오래전부터 활용되어 왔다
간단하지만 성능이 꽤 괜찮다고 볼 수 있다.
출처: KMOOC-실습으로배우는 머신러닝
예시를 들자면, 위의 그림에서 초록색 동그라미의 class를 예측하고자 한다면, KNN의 majority voting에 따라 K=3일 때 남자로 분류하게 된다.
출처: KMOOC-실습으로배우는 머신러닝
반면 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이 들어가게 된다.
그래서 클래스가 같으면 거리가 같다.
두 점 사이의 거리
출처: KMOOC-실습으로배우는 머신러닝
다양한 거리 측도
Eucllidean, Manhtten, Minkowski
일반적으로 Eucllidean Distance가 주로 많이 활용된다. 하지만 측정하는 대상에 대해 완벽하게 독립을 시켜서 거리를 계산하고자 할 때는 Manhatten Distance를 사용하게 된다.
2-3. K의 영향
K의 영향이 절대적이며 중요하다
K는 KNN의 Hyperparameter이며, 어떠한 거리 measure를 사용할지 결정짓는 역할을 수행하기도 한다.
즉 K가 모형의 복잡도를 결정해주는 하이퍼파라미터라면, 거리는 두 관측치들 사이의 거리를 어떤 가정을 갖고 측정할건지를 결정해주는 하이퍼파라미터이다.
K가 클수록 Underfitting, K가 작을수록 Overfitting이 된다
Validation dataset을 이요해 최적의 K를 결정해야한다.
출처: KMOOC-실습으로배우는 머신러닝
3️⃣ Logistic Regression
선형회귀모형의 Classification 버전이다.
즉, 입력변수와 출력변수간에 선형관계가 있음을 가정한다.
3-1. 배경
💡 다중선형회귀분석
수치형 설명변수 X와 종속변수 Y간의 관계를 선형으로 가정하고 이를 가장 잘 표현할 수 있는 회귀계수를 추정한다.
출처: KMOOC-실습으로배우는 머신러닝
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)를 회귀식의 종속변수로 사용한다
로짓함수는 설명변수의 선형결합으로 표현된다
로짓함수의 값은 종속변수에 대한 성공확률로 역산될 수 있으며, 따라서 이는 분류문제에 적용가능하다.
시그모이드함수를 기본 가정을 만족하는 함수형태로 사용함
출처: KMOOC-실습으로배우는 머신러닝
손실함수에서는 cross-entropy loss를 사용한다.
출처: KMOOC-실습으로배우는 머신러닝
i는 관측치의 인덱스, j는 클래스의 인덱스
즉 실제 클래스의 분류 확률값에다가 로그를 취해 더한 값이 loss이다.
결국 loss를 minimize하게 되면 실제클래스로 분류될 확률을 높여주는 베타를 구할 수 있게 된다