로지스틱 회귀(Logistic Regression)는 종속 변수가 범주형(categorical)일 때 사용하는 지도 학습(Supervised Learning) 알고리즘입니다. 특히 이진 분류(Binary Classification) 문제에서 널리 사용됩니다. 예를 들면, 고객이 상품을 구매할지(1) 안 할지(0), 이메일이 스팸(1)인지 아닌지(0) 등을 예측할 때 사용됩니다.
로지스틱 회귀의 핵심은 시그모이드 함수(로지스틱 함수)를 사용하는 것입니다. 시그모이드 함수는 다음과 같이 정의됩니다.
여기서 zzz는 입력 변수 XXX 에 대한 선형 결합:
시그모이드 함수의 특징:
로지스틱 회귀의 출력값은 0~1 사이의 확률을 나타내며, 일반적으로 임계값(threshold) 0.5를 기준으로 분류됩니다.
선형 회귀에서는 평균제곱오차(MSE)를 사용하지만, 로지스틱 회귀에서는 로그 손실(Log Loss) 또는 이진 크로스 엔트로피(Binary Cross-Entropy) 를 비용 함수로 사용합니다.
여기서,
이 비용 함수는 오차가 커질수록 손실 값이 증가하며, 최적의 가중치 www 를 찾기 위해 경사 하강법(Gradient Descent) 을 사용하여 최소화합니다.
기본적인 로지스틱 회귀는 이진 분류(Binary Classification)에 적합하지만, 다중 클래스(Multiclass Classification) 문제에서는 아래와 같은 확장 방법을 사용합니다.
아래는 Python의 sklearn
라이브러리를 이용한 간단한 로지스틱 회귀 구현 예제입니다.
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 예제 데이터 (사이킷런의 데이터셋 활용)
from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
X, y = data.data, data.target
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 로지스틱 회귀 모델 생성 및 학습
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
# 예측 및 정확도 평가
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"모델 정확도: {accuracy:.4f}")
로지스틱 회귀는 이진 및 다중 클래스 분류 문제에서 널리 사용되는 기법으로, 특히 해석이 용이하고 계산이 빠른 모델입니다. 하지만 복잡한 비선형 관계를 처리하는 데는 한계가 있어 의사결정나무(Decision Tree), 랜덤 포레스트(Random Forest), 신경망(Neural Networks) 과 같은 모델과 비교하여 적절한 상황에서 활용하는 것이 중요합니다.
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…