F1 점수가 정밀도와 재현율을 균형 있게 조정하여 머신러닝 모델을 평가하는 방법을 알아보세요. 더 나은 정확도를 위해 Ultralytics 성능을 최적화하는 방법을 확인하세요.
F1 점수는 정밀도와 재현율을 단일 조화 평균으로 결합한 기계 학습의 핵심 성능 지표입니다. 데이터셋이 불균형하거나 오탐과 누락이 서로 다른 비용을 초래하는 분류 모델 평가에 특히 유용합니다. 단순 정확도는 데이터셋에서 한 클래스가 압도적으로 많을 경우 오해의 소지가 있지만, F1 점수는 오류를 최소화하면서 관련 인스턴스를 정확히 식별하는 모델의 능력을 보다 균형 있게 보여줍니다. 극단값을 가중치로 감안함으로써, 높은 점수는 정밀도와 재현율 모두 상당히 높을 때만 달성되도록 보장합니다. 이로 인해 의료 진단부터 정보 검색에 이르기까지 다양한 분야에서 핵심 지표로 자리매김했습니다.
실제 상황에서는 단순히 예측 정확도(정확도)만으로는 부족합니다. 예를 들어, 이상 탐지에서는 정상 사례가 이상 사례보다 훨씬 많습니다. 모든 입력에 대해 "정상"이라고 예측하는 모델은 99%의 정확도를 달성할 수 있지만 실제 문제 탐지에는 무용지물입니다. F1 점수는 두 가지 상충되는 지표를 균형 있게 조정함으로써 이 문제를 해결합니다:
정밀도를 높이면 재현율이 낮아지고 그 반대의 경우도 마찬가지인 경우가 많기 때문에, F1 점수는 최적의 균형점을 찾기 위한 통합 지표 역할을 합니다. 이는 하이퍼파라미터 최적화를 통해 모델을 튜닝할 때 다양한 조건에서 견고한 성능을 보장하는 데 매우 중요합니다.
F1 점수의 유용성은 오류 비용이 상당한 다양한 산업 분야에 걸쳐 확장됩니다.
현대 컴퓨터 비전 프레임워크는 이러한 지표 계산 과정을 단순화합니다. 객체 탐지 모델을 훈련할 때 검증 단계에서 F1 점수가 자동으로 계산됩니다. Ultralytics 실시간 차트로 이러한 지표를 시각화하여 사용자가 다양한 신뢰도 임계값에 따른 F1 점수 곡선을 확인할 수 있도록 합니다.
Python 사용하여 F1 점수의 구성 요소를 포함한 검증 지표를 확인하는 방법은 다음과 같습니다:
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on a dataset (metrics are computed automatically)
# This returns a validator object containing precision, recall, and mAP
metrics = model.val(data="coco8.yaml")
# Print the Mean Average Precision (mAP50-95), which correlates with F1 performance
print(f"mAP50-95: {metrics.box.map}")
# Access precision and recall arrays to manually inspect the balance
print(f"Precision: {metrics.box.p}")
print(f"Recall: {metrics.box.r}")
F1 점수가 다른 평가 기준과 어떻게 다른지 이해하는 것은 프로젝트에 적합한 도구를 선택하는 데 필수적입니다.
모델의 F1 점수가 낮은 경우, 다음과 같은 전략을 활용할 수 있습니다. 데이터 증강을 통해 긍정 예제의 다양성을 높여 모델의 일반화 능력을 향상시킬 수 있습니다. 견고한 기초 모델로부터 전이 학습을 적용하면 네트워크가 사전 학습된 특징을 활용할 수 있습니다. 추론 시 신뢰도 임계값을 조정하면 정밀도와 재현율 간의 균형을 수동으로 조절하여 특정 사용 사례에 최적화된 F1 점수를 극대화할 수 있습니다.