로지스틱 회귀 (Logistic Regression)
지난 포스팅에서는 머신러닝 모델 선택과 데이터 전처리에 대해 알아보았다. 이번에는 분류 문제를 해결하는 데 널리 사용되는 로지스틱 회귀(Logistic Regression)에 대해 자세히 알아보겠다. 로지스틱 회귀는 결과를 확률로 나타내는 특징이 있어 분류 문제에 적합하다.
1. 로지스틱 회귀란?
로지스틱 회귀는 독립 변수와 종속 변수 간의 관계를 모델링하는 데 사용되는 통계 및 머신러닝 기법이다. 특히, 이진 분류(binary classification) 문제에 널리 사용되며, log 함수를 이용해 특정 사건의 발생 확률을 예측하는 데 유용하다. 예를 들어, 스팸 메일 필터링, 질병 예측, 고객 이탈 예측 등 다양한 분야에서 활용될 수 있다.
1.1. 선형 회귀와의 차이점
로지스틱 회귀는 선형 회귀와 유사한 형태를 가지지만, 결과 값을 확률로 변환하기 위해 시그모이드 함수(sigmoid function)를 사용한다는 점이 다르다. 시그모이드 함수는 입력 값을 0과 1 사이의 값으로 변환하여 확률로 해석할 수 있도록 한다.
2. 시그모이드 함수 (Sigmoid Function)
시그모이드 함수는 다음과 같은 수식으로 표현된다.
σ(z) = 1 / (1 + exp(-z))
이 함수는 입력 값 z
를 0과 1 사이의 값으로 변환하며, z
가 커질수록 1에 가까워지고, 작아질수록 0에 가까워진다. 로지스틱 회귀에서는 선형 회귀 모델의 결과 값을 시그모이드 함수에 입력하여 확률 값을 얻는다.
2.1. 비선형 문제를 선형으로 변환
로지스틱 회귀는 비선형적인 관계를 모델링할 수 있도록 시그모이드 함수를 사용하여 선형 회귀 모델의 결과를 확률로 변환한다. 이를 통해 비선형적인 분류 문제를 선형 모델로 해결할 수 있다.
![]() |
3. 로지스틱 회귀 구현 예시
Scikit-learn 라이브러리를 사용하여 로지스틱 회귀 모델을 구현하는 예시는 다음과 같다.
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 모델 학습
reg = LogisticRegression(random_state=1124)
reg.fit(X_train, y_train)
# 모델 평가
accuracy = reg.score(X_test, y_test)
print('Accuracy:', accuracy) # 출력값: Accuracy: 1.0
4. Cost Function (비용 함수)
로지스틱 회귀 모델의 학습 과정은 비용 함수(cost function)를 최소화하는 매개변수를 찾는 과정이다. 로지스틱 회귀에서 사용되는 비용 함수는 로그 손실 함수(log loss function) 또는 교차 엔트로피 손실 함수(cross-entropy loss function)라고 불린다. 이 함수는 예측값과 실제 값 사이의 차이를 측정하며, 값이 작을수록 모델의 예측 성능이 좋다.
5. Overfitting 방지를 위한 Regularization (정규화)
Regularization(정규화)는 모델이 학습 데이터에 과적합(overfitting)되는 것을 방지하기 위한 기법이다. 로지스틱 회귀에서 자주 사용되는 정규화 방법으로는 L1 정규화(Lasso Regression)와 L2 정규화(Ridge Regression)가 있다.
- Lasso Regression: 가중치(weight)의 절댓값의 합을 비용 함수에 추가하여 일부 가중치를 0으로 만든다. 이를 통해 모델을 단순화하고 과적합을 방지할 수 있다.
![]() |
L1 regularization |
- Ridge Regression: 가중치의 제곱 합을 비용 함수에 추가하여 가중치의 크기를 줄인다. 이 역시 모델을 단순화하고 과적합을 방지하는 데 도움이 된다.
L2 regularization
마무리
이번 포스팅에서는 로지스틱 회귀의 개념, 시그모이드 함수, 구현 예시, 비용 함수, 정규화 등에 대해 알아보았다. 로지스틱 회귀는 분류 문제를 해결하는 데 유용한 도구이며, 다양한 분야에서 활용된다. 다음 포스팅에서는 Feature extraction에 대해 알아보겠다.
추천글 :
[데이터사이언스기초] Introduction to Machine learning
(https://hyeonb.blogspot.com/2024/06/introduction-to-machine-learning.html)
[데이터사이언스기초] Machine learning process
(https://hyeonb.blogspot.com/2024/06/machine-learning-process.html)