AUC는 Receiver Operating Characteristic(ROC) 곡선 아래 면적을 의미합니다. ROC 곡선은 이진 분류 모델의 성능을 평가하기 위해 사용되는 그래프로서, 이 모델의 예측 성능을 나타내는 지표입니다. AUC 값이 클수록 모델의 예측 능력이 높다고 판단할 수 있습니다.
이번 예시에서는 Python의 scikit-learn 라이브러리를 사용하여 AUC를 계산하는 방법을 알아보겠습니다.
필요한 라이브러리 설치
먼저, AUC를 계산하기 위해 필요한 scikit-learn 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.
pip install -U scikit-learn
데이터 준비
AUC를 계산하기 위해서는 이진 분류 모델의 예측값과 실제값을 가진 데이터가 필요합니다. 아래와 같이 예시 데이터를 만들어 보겠습니다.
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# 예시 데이터 생성
X, y = make_classification(n_samples=1000, n_features=10, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
위 코드는 scikit-learn의 make_classification
함수를 사용하여 가상의 이진 분류 데이터를 생성한 후, 훈련용과 테스트용으로 데이터를 분할하는 과정입니다.
AUC 계산
이제 AUC를 계산해보겠습니다. scikit-learn에서는 roc_auc_score
함수를 통해 AUC를 쉽게 계산할 수 있습니다.
from sklearn.metrics import roc_auc_score
# 이진 분류 모델의 예측값 출력
y_pred = model.predict_proba(X_test)[:, 1]
# AUC 계산
auc = roc_auc_score(y_test, y_pred)
print("AUC: %.3f" % auc)
위 코드에서 model
은 이진 분류 모델을 의미하며, predict_proba
함수를 통해 테스트 데이터의 예측값을 얻어옵니다. 그리고 roc_auc_score
함수를 통해 실제값 y_test
와 예측값 y_pred
를 비교하여 AUC 값을 계산합니다.
결과 확인
AUC 값을 확인하기 위해 위 코드를 실행하면 아래와 같은 결과가 출력됩니다.
AUC: 0.927
이렇게 계산된 AUC 값은 이진 분류 모델의 예측 능력을 평가하는 중요한 지표입니다. AUC 값이 1에 가까울수록 모델의 분류 능력이 우수하다는 의미입니다.
참고 자료
- scikit-learn documentation: roc_auc_score
이상으로 Python을 사용하여 AUC(ROC 곡선 아래 면적)을 계산하는 방법에 대해 알아보았습니다. 다양한 분야에서 이진 분류 모델의 성능 평가에 활용되는 AUC는 유용한 지표이므로 잘 활용해보시기 바랍니다.