Machine Learning/Evaluation matric 4

피마 인디언 당뇨병 예측

이번 글에서는 kaggle에서 제공하는 피마 인디언 당뇨병 데이터셋을 이용하여 당뇨병 여부를 판단하는 예측 모델 수립, 여러가지 성능 지표를 이용하여 모델의 성능을 평가한다. 피마 인디언 당뇨병 데이터 세트는 다음 피처로 구성된다.Pregnancies: 임신 횟수Glucose: 포도당 부하 검사 수치BloodPressure: 혈압SkinThickness: 팔 삼두근 뒤쪽 피하지방 측정값Insulin: 혈청 인슐린BMI: 체질량지수DiabetesPedigreeFunction: 당뇨 내력 가중치 값Age: 나이Outcome: 클래스 결정 값(0또는 1)먼저 모델 구현 및 성능 평가를 위한 라이브러리를 import하고, 데이터를 불러와 확인한다. 레이블이 불균등하게 분포하므로 Stratify를 이용하여 학습셋..

F1 score, ROC, AUC

이번 글에서는 F1 score, ROC, AUC를 소개하며 성능 평가 지표를 마무리한다. -F1 score F1 score는 정밀도와 재현율을 결합한 지표이다. 정밀도와 재현율이 어느 한쪽으로 치우치지 않는 수치를 가질 때 상대적으로 높은 값을 가진다.※무조건적으로 비슷할 때 가장 높은 값을 가지는 것은 아니다. 어느 한쪽으로 치우쳐 있더라도, 두 값이 각각 높은 수치를 가진다면 비슷할 때보다 F1 score가 높게 나타날 수 있다. 상대적으로 높은 값을 가진다는 뜻은 정밀도와 재현율의 합이 같다고 가정할 때, 두 값이 비슷한 경우가 한쪽으로 치우친 것보다 더 높은 값을 가진다는 뜻이다.사이킷런은 F1 score를 구하기 위한 f1_score()메서드를 제공한다. 여느 성능 평가지표 메서드들과 마찬가지로..

정밀도와 재현율

이전 장에서 정확도와 오차행렬에 대해 다루었다. 정확도는 가장 직관적인 성능 지표이지만 불균등한 label을 가진 데이터셋에서 성능을 왜곡할 수 있다. 정확도는 '정확히 예측한 건 수'에 초점을 맞춘다면, 정밀도와 재현율은 Positive 데이터셋(양성)에 초점을 맞춘 평가 지표이다. 정밀도, 재현율의 정의 정밀도 = TP / (FP + TP)재현율 = TP / (FN + TP)정밀도는 Positive로 예측한 대상 중 실제로 Positive로 일치한 데이터의 비율이고,재현율은 실제 값이 Positive인 데이터 중 예측 값이 Positive로 일치한 데이터의 비율이다. 정밀도, 재현율의 상호 보완 관계 정밀도와 재현율은 상호 보완적인 지표이기 때문에 한 쪽이 높아지면 한 쪽은 낮아지기 쉽다.이를 오차행..

정확도(accuracy), 오차 행렬(confusion matrix)

모델을 설계했다면 설계한 모델이 얼마나 정확한 모델인지 평가해야한다. 이번 글에서는 모델을 평가하는 성능평가 지표 중 하나인 정확도와, 여러 성능 평가 지표를 생성할 수 있는 오차 행렬에 대해 소개한다. 정확도(Accuracy) 정확도: 실제 데이터에서 예측 데이터가 얼마나 같은지 판단하는 지표정확도(Accuracy) = 예측 성공한 데이터 건수 / 전체 예측 데이터 건수정확도는 가장 직관적으로 모델 예측 성능을 나타내는 평가 지표이다. 하지만 특정 데이터셋에서는 성능을 왜곡할 수 있다. 이진 분류 문제에서 label이 0인 데이터가 전체 데이터셋의 90%, 1인 데이터가 전체 데이터셋의 10%라고 하자. 그리고 모델은 어떠한 input이 들어오든 0으로 예측한다고 하자. 정확도로 해당 모델을 평가하면 ..