예측함수의 성능평가
-
예측함수가 뽑아내는 출력 값이 실제 값에 가까운 경우가 자주 있을수록, 좋은 모델이라 할 수 있음.
-
예측함수 모델을 개선시키기 위해선 6가지를 해볼 수 있음
1) 더 많은 데이터를 수집
2) 더 적은 특징 값을 수집(overfitting 방지)
3) 더 많은 특징 값을 사용
4) 새로운 수학적 특징 값 추가
5) 정규화 파라미터 줄이기 (underfitting 방지)
6) 정규화 파라미터 늘리기 (overfitting 방지)
-
성능 향상을 위해 어떤 방법을 사용할 지 정하기 위해 Diagnostic Algorithm을 사용함.
-
예측함수 그래프 그려보기, 샘플 데이터 셋의 70%는 학습에 사용, 30%는 검증에 사용
-
Misclassification Rate (잘못 분류된 데이터의 개수 / 전체 데이터 개수)
최적 모델의 선택
- 일반화 오류 : 학습할 때 사용된 데이터에 관한 오차는 적지만, 새로운 데이터에 대해선 적절한 결과를 도출하지 못하는 문제
- 그래서 예측함수의 모델을 적절하게 정하는 것이 중요
- 따라서 주어진 학습 데이터를 training, Cross Validation, Test로 나눔
- Training set을 이용해 w를 구하고, Cross validation을 이용해 비용함수가 제일 적게 나오는 모델을 선택.
- Test set을 이용해서 일반화 성능을 확인.
Bias와 Variance
- Bias : 모델이 나타내는 예측 값과 실제 값과의 차이
- Variance : 주어진 데이터에 대해서 모델의 예측 값이 얼마나 변동성이 있는지 나타낸 값
- High Bias (Underfitting), High Variance (Overfitting)
- Variance와 Bias를 동시에 줄여야만 전체 오차 값이 감소함
- 이를 위해선 적절한 정규화 파라미터(람다) 의 선정이 필요함
학습곡선
- 학습 곡선은 학습 알고리즘이 잘 동작하고 있는지 체크하는데 직관적인 도움을 줌
- 가로축은 데이터의 개수, 세로축은 에러
- 데이터가 많아질수록, Cross Validation 비용함수의 에러는 줄어들고, Training 비용함수의 에러는 늘어남.
- High Bias(underfitting) 이 발생하면 데이터 개수를 늘려도 training 에러가 줄어들지 않음
- High Variance(overfitting) 이 발생하면 데이터 개수를 늘리는 것이 도움이 됨.
머신러닝 시스템 설계시 고려사항
- 정확도로는 머신러닝이 얼마나 잘 구현되었는지 판단 불가
- 스팸 메일인지 아닌지를 판단하는 classification 수행 모델을 예로 듦
- Honeypot Project : 가짜 이메일 주소, 스팸 메일 모델 학습
오차 분석 방법
- Classification 모델이 잘 못 분류를 했을 때, 어떤 형태가 어떻게 잘 못 분류되었는지 분석해 볼 필요가 있음
- 수치로 된 평가 척도 -> 알고리즘이 얼마나 잘 작동하고 있는지 알 수 있게 함
불균형 데이터의 경우 오차 척도
- 불균형 데이터 : 데이터의 부류 별로 데이터의 개수가 크게 차이 나는 경우
- 숫자적인 척도가 아닌, 다른 척도를 사용해서 학습 모델의 성능을 평가해야 할 필요가 있다.
- Precision : 참이라고 판단한 케이스 중, 진짜 참인 케이스의 비율
- Recall : 실제 참인 케이스 중, 참이라고 판단한 케이스의 비율
- Error Rate : 모든 케이스 중, 잘못 판단한 케이스의 비율
- Accuracy : 1 - Error Rate
- Specificity : 실제 거짓인 케이스 중, 거짓이라고 판단한 케이스의 비율
- False Positive Rate : 실제 거짓인 케이스 중, 거짓을 참이라고 판단한 케이스의 비율
- Threshold : 1과 0을 구분하는 기준
Threshhold가 커지면 Precision이 1에 가까워짐. 작아지면 recall 이 1에 가까워짐
조화평균을 사용해서 threshold..
학습 데이터가 많을수록 학습 모델의 정확도가 상승.