< Overfitting & Underfitting >
▷ Overfitting : Training Data에 대해 너무 학습이 잘되어 실제 데이터에 적용이 잘 안되는 경우
▷ Underfitting : 너무 대충 학습해서 학습이 잘 이루어지지 않은 경우
※ Overfitting 현상을 해결하기 위한 방법은?
1. 많은 양의 Training Data 필요
- 가장 기반이되는 조건인데 program 적으로 해결이 불가능
2. Feature의 개수를 줄이자
- 종속변수와 연관이 없는 독립변수들 제거 (상관관계 분석)
3. Weight의 값을 인위적으로 조절 (Regulation)
- W 값이 클수록 Curve를 그리게 되고, Overfitting의 여지가 많아짐
4. Dropout (Deep Learning)
5. 학습의 수(Epoch)를 적절하게 줄이자
< 데이터의 분류 >
▷ Training Data Set으로 학습한 후, Training Data Set으로 평가를 진행하면 안된다.
▷ 성능이 아주 좋게 나올 수 밖에 없음!!!
▷ 반드시 Training Data와 Test Data를 구분해서 사용해야 한다.
▷ 데이터의 종류
- Training Data : 학습에 사용할 데이터
- Validation Data : Model 개선 작업을 수행할 때 쓰이는 데이터
- Testing Data : 최종 모델의 Accuracy를 확립하기 위한 데이터(Model 수정에 쓰이면 안됨)
< 성능평가지표 - Confusion Matrix >
- Precision(정밀도) : TRUE로 분류한 것 중 정말 TRUE인 것의 대한 비율
- Sensitivity(민감도) : 실제 TRUE인 것 중 TRUE로 분류한 것의 비율
- Accuracy(정확도) : 전체 중 맞게 분류한 것의 비율
※ Precision과 Sensitivity를 구분한 이유는??
ex) A 회사에서는 사진을 입력 받으면 그 안에 고양이가 있는지 검출하는 기술이 있다고 하자.
- 고객은 이 기술로 99% 고양이를 검출할 수 있다고 하면 만족할 것임
- 고객은 이 기술로 60% 고양이를 검출할 수 있다고 하면 불만족할 것임
→ 여기서, 우리는 고양이 검출 기술은 절대로 오검출은 하지 않는다고 가정하고 기술을 바라본다.
- A 회사는 99%로 검출하지만, 오검출이 1장당 5건 발생
- B 회사는 60%로 검출하지만, 오검출이 거의 없음
→ 어디에 응용하느냐에 따라서 A, B 중 어느 기술이 더 적합할지가 달라진다.
< Cross Validation(CV) >
▷ 만약 데이터의 양이 작다면? → Underfitting 발생
▷ 해결을 위해서 epoch 수를 늘리면? → Overfitting 발생
▷ 이런 경우를 해결하기 위해서 Cross Validation 기법이 등장
▷ k-fold 기법을 통해 동작 과정을 알아보자
- Training Data Set을 K개로 나눈다.
- K번의 과정(fold)을 동작하며 각 과정마다 하나의 데이터 묶음이 Test Data Set이 된다.
- 각 fold 별로 accuracy를 구하고, 평균으로 전체 accuracy를 측정한다.
※ Data의 Bias가 있을 수 있으므로, 데이터를 적절히 Shuffle 한 후에 데이터를 나누어야 한다.
< Multinomial Classification >
▷ Binary Classification의 집합으로 생각할 수 있다.
▷ Linear Regression을 적용하면 각 정답에 대한 확률이 나오는데, Sigmoid 대신 각 값을 다 합했을 때 1이 되도록 변환해주는 Softmax 함수를 이용한다.
▷ Binary 에서는 0, 1로 결과가 나왔지만, multinomial 에서는 A, B, C 처럼 나오기 때문에 이를 프로그램적으로 변환해주어야 한다.
▷ One-hot encoding 으로 변환
'Python > Data Analysis' 카테고리의 다른 글
Data Analysis / ML / Tensorflow 2.x(1) (0) | 2020.10.15 |
---|---|
Data Analysis / ML / Multinomial Classification (0) | 2020.10.09 |
Data Analysis / ML / Logistic Regression(2) (0) | 2020.10.08 |
Data Analysis / ML / Logistic Regression(1) (0) | 2020.10.07 |
Data Analysis / ML / TensorFlow - Linear Regression (0) | 2020.10.05 |