6.4. 그리드 서치를 사용한 머신 러닝 모델 세부 튜닝
하이퍼 파라미터: 모델의 성능을 향상시키기 위해 튜닝하는 파라미터이다.
6.4.1. 그리드 서치
GridSearchCV:
하이퍼 파라미터 값에 대한 최적의 조건을 찾아 모델 성능을 향상시키는데 큰 도움이 된다.
GridSearchCV의 파라미터는 다음과 같다.
* estimator : 모델
* param_grid: key: list 구조를 갖는 딕셔너리. estimator 튜닝에 사용하는 파라미터 값을 지정한다.
* scoring : 평가 방법
* cv : 학습/ 테스트 세트 개수
* refit : 디폴트가 True. True 로 하면 가장 최적의 하이퍼 파라미터를 찾은 뒤 이걸로 재학습시킴.
-최상의 모델 점수는 best_score_
-이 모델의 매개변수는 best_params_ 에서 얻을 수 있다.
-best_estimatior_ : 최고로 좋은 모델을 받을 수 있고 이것을 통해 predict
https://datascienceschool.net/view-notebook/ff4b5d491cc34f94aea04baca86fbef8/
6.4.2. 중첩 교차 검증을 사용한 알고리즘 선택
cross_val_score
여러 종류의 머신 러닝 알고리즘을 비교할 때 사용한다.
중첩 교차 검증은 바깥쪽 k-겹 교차 검증 루프가 데이터를 훈련 폴드와 테스트 폴드로 나누고 안쪽 루프가 훈련 폴드에서 k-겹 교차 검증을 수행하여 모델을 선택한다.
6.5. 여러가지 성능 평가 지표
오차행렬 confusion_matrix
진짜 음성 TN (정답) |
거짓 양성 FP (오답) |
거짓 음성 FN (오답) |
진짜 양성 TP (정답) |
정밀도Precision: 모델이 TRUE 라고 분류한 것 중에서 실제 True 인 것의 비율이다. 모델의 입장에서 (Positive 정답률, PPV)
재현율Recall: 실제 True 인 것 중에서 모델이 True라고 예측한 것의 비율이다. 실제 정답의 입장에서 (sensitivity, hit rate)
정확도 accuracy : 전체 중 정답을 예측한 경우의 비율이다.
f1 점수: Precision과 Recall의 조화평균.
정확도의 편중을 막기 위해 사용한다. 만약 우리가 예측하고자 하는 한달 동안이 특정 기후에 부합하여 비오는 날이 흔치 않다고 생각해보면, 해당 data의 domain이 불균형하게 되므로 맑은 것을 예측하는 성능은 높지만, 비가 오는 것을 예측하는 성능은 매우 낮을 수밖에 없다. 그래서 이를 보완하는 지표가 바로 f1점수이다.
https://sumniya.tistory.com/26
ROC 곡선 그리기
roc 곡선: 왼쪽 위에 붙어있을 수록 성능이 좋다.
auc 함수. 곡선을 수치화한게 auc 함수이다. 그래프 아래의 면적이 1에 가까울 수록 성능이 좋다.
https://bcho.tistory.com/tag/ROC%20curve
다중 분류의 성능 지표
A반 | B반 | C반 | |
학생수 | 9 | 2 | 3 |
평균 | 40 | 70 | 90 |
macro-average 40+70+90 / 3 = 66
micro-average 40*9 + 70*2+90*3 / 14 = 55
마이크로 평균은 각 개인을 구별하여 평가하기 위해 사용된다. 레이블마다 샘플 개수가 다른 불균형한 클래스를 다룰 때 유용하다!
https://unlimitedpower.tistory.com/entry/IR-마이크로-평균Micro-average-매크로-평균Macro-average-이란-무엇인가
6.6. 불균형한 클래스 다루기
class_weight = 'balanced'
소수 클래스에서 발생한 예측 오류에 큰 벌칙을 부여한다.
resample함수
소수 클래스의 샘플을 늘리거나 다수 클래스의 샘플을 줄여 인공적으로 훈련 샘플을 생성한다.