PYTHON

20221128 = 분류 측정지표

K.Y.PARK 2022. 11. 28. 17:07

오전 개념정리

정확도 (Auucracy)

- 금융권 (은행대출사기, 신용카드사기 등)
- 반도체 불량품 검출
- 제조업 양불여부
- 헬스케어 (희귀질병판단여부, 암 판정)
- IT관련 (게임 어뷰저)

위험한 일은 자주 일어나지는 않지만, 한 번 놓치면 치명적으로 다가온다.
위와 같은 경우 정확도가 높다고 해서 신용하기는 어렵다.
혼동행렬 (Confusion Matrix)

- TP (True Positive)
- FP (False Positive)
- FN (False Negative)
- TN (True Negative)

Precision = TP / (TP + FP)

1종 오류의 사례

- 스팸메일 예측
- 무고한 피고인에게 유죄선고

Recall = TP / (TP + FN)

2종 오류의 사례

- 암을 암이 아닌 것으로 예측
- 지진이 났는데도 대피방송을 하지 않는 경우

정밀도(Precision) = 양성 가운데 맞춘 양성의 수 = TP / (TP+FP)
특이도(Specificity) = 음성 가운데 맞춘 음성의수 = TN / (TN+FN)
민감도(Sensitivity)=재현율(Recall) = 실제 양성을 양성으로 음성을 음성으로 판단한 비율 = TP / (TP+FN)
정확도(Accuracy) = 전체 데이터에서 모델이 옳게 판단할 비율 = (TP+TN) / (TP+FN+FP+TN)
성능점수(F1 Score) = 정밀도와 민감도의 조화평균 = (정밀도*민감도)/(정밀도+민감도) * 2
성능점수(F1 Score)

정밀도와 재현율은 둘 중 하나만 채용해서는 예측 성능 평가 지표로 불완전하기 때문에
조화평균을 사용하여 이진 분류 모델을 평가할 때 유용한 지표로 사용된다.
Precision-Recall Tradeoff

- 정밀도와 재현율은 상호보완적인 지표이다
- 이 지표의 밸런스를 맞춰주는 것이 중요하다.
- Threshold를 내리면 recall은 올라가고 precision은 내려간다
- Precision이 더 중요한 경우에는 threshold를 올리고 recall이 중요한 경우에는 내릴 수 있다.

오후 실습 및 정리

# confusion_matrix 실습하기
# Confusion Matrix는 이진 분류에서 예측 오류가 얼마인지와 더불어 어떠한 유형의 예측 오류가 발생하고 있는지를 
  함께 나타내는 지표

from sklearn.metrics import confusion_matrix

cf = confusion_matrix(y_test, y_pred)
# classification_report 실습하기

from sklearn.metrics import classification_report

cr = classification_report(y_test, y_pred)
Over sampling 

데이터 셋 수가 많은 곳에 맞춰서 소수의 데이터를 반복추출 하는 것
그러므로 같은 데이터가 training set로 작용되기 때문에 OVERFITTING 문제가 있을 수 있음. 

Under sampling

데이터 셋 수가 적은 곳에 맞춰서 랜덤하게 다수 범주의 데이터 세트를 제거 하는 것
중요한 정보가 누락될 가능성이 있다. 

[출처] [데이터 예측 모델] 과접합 / OVER&UNDER sampling|작성자 loveLee
# SMOTE는 Synthetic Minority Over-sampling Technique의 약자로 오버샘플링 기법이다.

from imblearn.over_sampling import SMOTE

sm= SMOTE(random_state=42)
X_resample, y_resample = sm.fit_resample(X,y)
# y_test와 y_pred값 평균으로 비교해보기

y_pred = model.predict(X_test)
(y_test == y_pred).mean()
딥러닝

인공지능 스스로 일정 범주의 데이터를 바탕으로 공통된 특징을 도출하고, 그 특징으로 예측값 출력
1950년대부터 신경망에 대한 연구가 있었지만 컴퓨터의 성능한계와 데이터 부족으로 
사용할만한 모델 구현이 불가능하였다.
순전파와 역전파

순전파 (Forward Propagation)

- 인공 신경망에서 입력층에서 출력층 방향으로 예측값의 연산이 진행되는 과정

역전파 (BackPropagation)

- 순전파와 반대로 출력층에서 입력층 방향으로 계산하면서 가중치를 업데이트
- 역전파, 오차 역전파법, 오류 역전파 알고리즘은 다층 퍼셉트론 학습에 사용되는 통계적 기법
활성화 함수 (Activation function)

신호는 실제 뇌를 구성하는 신경 세포 뉴런이 전위가 일정치 이상이 되면 시냅스가 서로 화학적으로 연결
입력값들의 수학적 선형 결합을 다양한 형태의 비선형 결합을 변환하는 역할

시그모이드 (Sigmoid)

시그모이드는 S자형 곡선 또는 시그모이드 곡선을 갖는 수학 함수
장점 = 모델 제작에 필요한 시간을 줄임
단점 = 미분 범위가 짧아 정보가 손실 (Gradient Vanishing 현상)
활용 = 로지스틱 회귀, 이진 분류

Tanh - 하이퍼볼릭탄젠트 함수

tanh은 하이퍼볼릭탄젠트란 쌍곡선 함수 중 하나
삼각함수와 유사한 성질을 가지고, 표준 쌍곡선을 매개변수로 표시할 때 나오는 함수

Gradient vanishing = 기울기 소실

깊은 인공 신경망을 학습할 때 역전파 과정에서 입력층으로 갈수록 기울기가 점차 작아지는 현상

렐루 (ReLU)

ReLU함수는 정류 선형 유닛에 대한 함수로 선형 함수를 개선한 버전
기울기 소실을 완화하는 가장 간단한 방법은 은닉층의 활성화 함수로 ReLU나 Leaky ReLU를 사용

리키렐루 (Leaky ReLU)

렐루의 Dying ReLU 현상을 해결하기 위해 나온 변형 함수
딥러닝의 학습과정

출력값과 실제값을 비교하여 그 차이를 최소화하는 가중치와 편향의 조합 찾기
가중치는 오차를 최소화하는 방향으로 모델이 스스로 탐색
오차계산은 실제 데이터를 비교하며, 손실함수를 최소화하는 값 탐색

손실함수 (Loss function)

실제값과 예측값의 차이를 수치화해주는 함수

출처 : 멋쟁이사자처럼 AI 스쿨 학습자료