임계값을 직접 정해서 True, False를 결정하게 되는데 보통 0.5 로 하기도 하고 0.3, 0.7 등으로 정하기도 합니다.
임계값 == Threshold
TRUE : 모델이 맞췄을 때
FALSE : 모델이 틀림
Positive : 모델이 예측 값이 TRUE
Negative : 모델이 예측 값이 FALSE
=> 사이킷런과 기준이 같기 때문에
# predict_proba 는 확률 값을 예측합니다.
# 각 클래스마다의 확률을 예측합니다.
# 0, 1 일 때 각각의 확률을 의미합니다.
# [0.5, 0.5], [0.3, 0.7], [0.7, 0.3]이렇게 나오기도
# 클래스가 여러 개 일 때 이런 확률을 사용해서 예측하기도 합니다.
y_pred_proba = model.predict_proba(X_test)
print(y_pred_proba.shape)
y_pred_proba[:5]
under-sampling은 더 값이 많은 쪽에서 일부만 샘플링하여 비율을 맞춰주는 방법
# 1 인데이터가 492개 이기 때문에 0인 데이터를 랜덤하게 492개 추출하면 언더샘플링입니다.
y.value_counts()
df_0 = df[df["Class"]==0].sample(492)
df_1 = df[df["Class"]==1]
df_0.shape, df_1.shape
df_under = pd.concat([df_0,df_1])
df_under["Class"].value_counts()
더 값이 적은 쪽에서 값을 늘려 비율을 맞춰준 방법
인공 신경망에서 입력층에서 출력층 방향으로 예측값의 연산이 진행되는 과정
순전파와 반대로 출력층에서 입력층 방향으로 계산하면서 가중치를 업데이트
차원 확인하기