티스토리 뷰

안녕하세요! 오늘은 로지스틱 회귀를 사용한 이진 분류 모델 학습과 평가에 대해 알아보겠습니다. 로지스틱 회귀는 분류 문제에 사용되는 간단하면서도 효과적인 기법입니다. 이 포스트에서는 scikit-learn 라이브러리를 사용하여 로지스틱 회귀 모델을 학습하고, 혼동 행렬(confusion matrix)을 시각화하여 모델의 성능을 평가하는 방법을 소개합니다.

먼저 필요한 라이브러리를 가져옵니다.

from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import plot_confusion_matrix
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

이진 분류 문제를 위한 데이터셋을 생성합니다. 이 예제에서는 scikit-learn의 make_classification 함수를 사용하여 1000개의 샘플과 4개의 특성을 가진 데이터셋을 생성합니다.

X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=123)

데이터를 훈련 세트와 테스트 세트로 분할합니다. 이 예제에서는 80%의 데이터를 훈련에 사용하고, 나머지 20%를 모델 평가에 사용합니다.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)

로지스틱 회귀 모델을 생성하고 훈련 세트로 학습시킵니다.

clf = LogisticRegression()
clf.fit(X_train, y_train)

모델이 학습되었으므로, 혼동 행렬을 사용하여 모델의 성능을 평가합니다. 혼동 행렬은 분류 모델의 성능을 평가하는 데 사용되는 행렬로, 실제 레이블과 예측 레이블 간의 관계를 나타냅니다. 이를 통해 모델이 정확하게 예측한 샘플 수와 잘못 예측한 샘플 수를 쉽게 파악할 수 있습니다.

confmat = plot_confusion_matrix(clf, X_test, y_test, cmap="Blues")
plt.show()

이제 혼동 행렬이 시각화되어 모델의 성능을 확인할 수 있습니다. 혼동 행렬의 대각선 요소는 정확한 예측을 나타내며, 비대각선 요소는 잘못된 예측을 나타냅니다. 이를 통해 True Positive (TP), True Negative (TN), False Positive (FP), False Negative (FN) 값을 확인할 수 있으며, 이 값들을 사용하여 다양한 평가 지표를 계산할 수 있습니다.

예를 들어, 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 스코어 등의 평가 지표를 사용하여 모델의 성능을 좀 더 상세하게 평가할 수 있습니다.

이러한 지표들은 다음과 같은 공식으로 계산됩니다:

  1. 정확도 (Accuracy) = (TP + TN) / (TP + TN + FP + FN)
  2. 정밀도 (Precision) = TP / (TP + FP)
  3. 재현율 (Recall) = TP / (TP + FN)
  4. F1 스코어 (F1 Score) = 2 * (Precision * Recall) / (Precision + Recall)

이번 예제에서는 혼동 행렬만 사용하여 모델을 평가했지만, 실제 프로젝트에서는 위에서 언급한 다양한 평가 지표를 사용하여 모델의 성능을 측정하고 개선하는 것이 좋습니다.

이상으로 로지스틱 회귀를 사용한 이진 분류 모델 학습 및 평가에 대한 설명을 마칩니다. 이 예제를 통해 로지스틱 회귀의 개념과 혼동 행렬을 사용한 모델 평가 방법에 대해 이해하셨기를 바랍니다. 이를 통해 다양한 분류 문제에 적용하여 더 나은 모델을 개발할 수 있습니다. 감사합니다!

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함
공지사항