KG_KAIROS/DeepLearning

[DeepLearing] Cancer 양성/음성 분류 모델

projectlim 2024. 8. 22. 09:09
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