[python] SciPy를 사용하여 AUC 계산하기

AUC(Area Under the Curve)는 ROC(Receiver Operating Characteristic) 곡선 아래의 면적을 나타내는 값으로, 머신러닝 모델의 성능을 평가하는 데 사용됩니다. Python의 SciPy 라이브러리를 사용하면 간단하게 AUC를 계산할 수 있습니다.

필요한 라이브러리 설치하기

먼저, SciPy를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install scipy

AUC 계산하기

SciPy의 scipy.stats 모듈에는 roc_auc_score 함수가 있습니다. 이 함수를 사용하여 AUC를 계산할 수 있습니다. 아래는 사용 예시입니다.

from scipy import stats

# 실제 값과 예측 값 초기화
actual = [1, 0, 1, 1, 0]
predicted = [0.7, 0.3, 0.8, 0.9, 0.2]

# AUC 계산
auc = stats.roc_auc_score(actual, predicted)
print(f"AUC: {auc}")

위의 예시에서는 actual 변수에는 실제 값(0 또는 1)을, predicted 변수에는 모델의 예측 값(0.0에서 1.0 사이의 실수)을 입력합니다. roc_auc_score 함수는 입력된 값에 대한 AUC를 계산합니다.

결과 확인하기

위의 코드를 실행하면 다음과 같은 결과가 출력됩니다.

AUC: 0.75

이 경우, AUC 값은 0.75로 나타납니다. AUC 값은 일반적으로 0.5에서 1.0 사이의 값을 가지며, 1.0에 가까울수록 모델의 성능이 좋다고 판단할 수 있습니다.

결론

SciPy를 사용하여 AUC를 계산하는 방법에 대해 알아보았습니다. AUC는 모델의 성능을 평가하는 중요한 지표이며, SciPy의 roc_auc_score 함수를 사용하면 간편하게 계산할 수 있습니다. 다양한 예측 모델에 대해 AUC를 계산하여 모델의 성능을 비교해보세요.