본문 바로가기

머신러닝

6장 Model Evaluation

1. 모델 성능 평가

 테스트 데이터에 대한 성능을 일반화 하는것이 목적

 하지만 우리는 학습에 사용하지 않은 unseen데이터는 가지고 있지 않음

 

 즉, 목적은 어떤 데이터든지간에 결과를 일반화하는 거지만 학습과 테스트 모두 가지고 있는 데이터로만 할 수 밖에 없는 상황임

 unssen 데이터와 train데이터가 iid라고 가정! => 독립, 같은분포

 

데이터 분할 방식

교차검증

학습데이터 여러개로 나눠서 fold가 1번씩은 검증데이터가 되도록 => 과적합방지

 

평가 전략

 일정 시간을 두고 학습과 테스트 진행

규제

 L1

L2

 mse만 최소화하면 오버피팅이 발생하므로 값을 추가하여 규제함, 단 람다가 너무 크면 언더피팅 확률이 올라감

 

분류에서 accuracy를 측정해서 정확도를 판별하는데 문제점 존재

 데이터의 가중치가 다르거나 개수가 다른경우 accuracy 값 의미x

 

 roc curve

  x축을 false alarm, y축을 sensitivity로 두고 그린 함수

 스레쉬홀드(경계값)에 따라 달라짐

Test methods

 realdata가 학습한 데이터 분포인지 어떻게 테스트 할까?

 

 베이스라인 : 랜덤, 제로, 심플 휴리스틱보단 성능이 좋아야한다.

 사람과 비교해서 어느 성능?, 기존 문제 해결능력?

 

(1) perturbation tests

 문제 : 유저의 인풋은 노이즈가 있다!

 예시 : 음성, 이미지 등...

 아이디어 : 노이즈들 첨가해서 아웃풋 바뀌는거 관찰 ㄱㄱ

 만약 노이즈를 조금 추가했는데 아웃풋이 심하게 바뀐다? 그러면 우린 모델 강화해야함

 해결책 : 노이즈를 테스트할 때 추가, 더 많은 학습 데이터로 학습, 다른 모델 고려

 

(2) invariance tests

 문제 : 아웃풋에 영향을 주면 안되는 인풋이 영향을 줘 

 예시 : 성별이 점수로 환산 된다거나... 

 아이디어 : 민감값을 무작위로 조금씩 바꾸면서 변화 살피기

 만약 민감값의 변화가 모델의 아웃풋을 바꾸면 편향된 모델임

 

(3) directional expectation tests

 문제 : 인풋이 예측한 아웃풋을 내야하는데 안돼!

 예시 : 땅크기랑 가격 비례하지 않아

 아이디어 : 값을 바꿔야 하는 특징 몇개만 바꿔서 아웃풋 보기

 만약 땅크기에 가격이 비례하지 않으면 조사해야됨 왜 그런지

 

(4) slice - based evaluation

 문제 : 그룹마다 다른 성능

 예시 : 서브그룹은 성능이 나빠

 

 문제 : 다른 가중치인 두 그룹이 같은 성능

 예시 : 우수고객 지불가격

 => 오직 전체만 보고 성능향상하면 서브그룹에 성능이 저하될 수 있어

 

simpson's 역설

 전체적인 성능은 높지만 그룹별 성능이 안좋다.

 

그룹을 많이 나누면 좋다.

 

어떻게 나눠? 

 전문가한테 맡겨, 에러 분석, 그룹을 찾아

 

 

'머신러닝' 카테고리의 다른 글

9. Neural Networks  (0) 2023.12.18
7. Decision Tree  (0) 2023.12.17
5장 Nearest Neighbor Method  (0) 2023.10.25
4장 Logistic Legression  (0) 2023.10.25
3장 Regression  (1) 2023.10.24