728x90
반응형
SMALL
Precision recall and f1 score(sklearn.matirxs.classification_report())
모델의 성능을 측정하는 데 있어 정밀도(Precision), 재현율(Recall), 그리고 **F1 점수(F1 Score)**는 중요한 지표입니다. 이 지표들은 특히 이진 분류 문제에서 모델의 성능을 평가하는 데 유용합니다.
정밀도 (Precision)
정밀도는 모델이 양성으로 예측한 샘플 중 실제로 양성인 샘플의 비율을 나타냅니다. 즉, 정밀도 = TP / (TP + FP), 여기서 TP는 True Positive, FP는 False Positive입니다.
재현율 (Recall)
재현율은 실제 양성 샘플 중 모델이 양성으로 올바르게 예측한 샘플의 비율을 나타냅니다. 즉, 재현율 = TP / (TP + FN), 여기서 FN은 False Negative입니다.
F1 점수 (F1 Score)
F1 점수는 정밀도와 재현율의 조화 평균으로, 두 지표의 균형을 평가합니다F1 점수 = 2 * (Precision * Recall) / (Precision + Recall)
예제 코드
다음은 scikit-learn을 사용하여 유방암 데이터셋에서 정밀도, 재현율, F1 점수를 계산하는 예제 코드입니다:
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import precision_score, recall_score, f1_score
# 데이터 로드
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)
# 모델 학습
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
# 성능 지표 계산
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
print(f"Precision: {precision:.2f}")
print(f"Recall: {recall:.2f}")
print(f"F1 Score: {f1:.2f}")
이 코드는 유방암 데이터셋을 사용하여 랜덤 포레스트 모델을 학습시키고,
테스트 데이터에 대한 정밀도, 재현율, F1 점수를 계산합니다
ML Handbook - F1 Score
bsc-iitm.github.io
대학수업때 배운 예제도 유방암 데이터 셋이라 첨부했습니다.
728x90
반응형
LIST
'KG_KAIROS > DeepLearning' 카테고리의 다른 글
[DeepLearning] Transfer learning models, Kerras (0) | 2024.08.22 |
---|---|
[DeepLearning] 손실 함수(Loss Functions), Padding, Harr Cascade (얼굴 검출) (0) | 2024.08.20 |
[DeepLearning] ReLU와 Softmax 그리고 NN single node (0) | 2024.08.19 |