[데이터사이언스기초] Logistic Regression

 

로지스틱 회귀 (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 라이브러리를 사용하여 로지스틱 회귀 모델을 구현하는 예시는 다음과 같다.

Python
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)
hyeon_B

안녕하세요! AI 기술을 이용해 더 나은 세상을 만들어 나가고 싶은 과기원생 Hyeon이라고 합니다. 저는 앞으로 인공지능 시대에는 지식을 '활용'하는 능력이 중요해질 것이라고 생각합니다. 대부분의 일들은 인공지능이 뛰어난 모습을 보이지만, 인공지능은 데이터로 부터 연관관계를 학습하기 때문에 지식들을 새로 통합해서 활용하는 능력이 부족합니다. 인공지능이 뉴턴 전에 만들어졌다면 사과가 떨어지는 이유에 대답하지 못했을 것이고, 아인슈타인 전에 만들어졌다면 중력이 어떻게 생기는지 설명하지 못했을 것입니다. 따라서 앞으로 우리는 '본질'을 탐구하고 그 본질로부터 다른 곳에 적용하며 인공지능을 현명하게 활용해야 할 것입니다. 함께 인공지능 시대를 준비합시다!

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2