ML,DL,LangChain/02_EDA와 MLP

Linear Regression vs Logistic Regression

  • -
선형 회귀 vs 로지스틱 회귀 완벽 정리

이번 포스트에서는 머신러닝의 가장 기본이 되는 두 기둥이자 지도학습의 출발점인 선형 회귀(Linear Regression)와 로지스틱 회귀(Logistic Regression)의 차이점을 입문자 관점에서 쉽고 완벽하게 정리해본다.

 

📊 선형 회귀 vs 로지스틱 회귀: "예측할 것인가, 분류할 것인가?"

이름에 둘 다 '회귀(Regression)'가 들어가다 보니 처음 접할 때는 매우 헷갈리기 쉽다. 하지만 둘은 풀고자 하는 **문제의 정의와 목적** 자체가 완전히 다르다. 가장 직관적으로 구분하는 기준은 바로 출력 결과값의 형태이다.

  • 선형 회귀(Linear Regression): 집값, 주가, 온도처럼 연속적으로 변화하는 '수치(값)'를 예측하는 모델이다.
  • 로지스틱 회귀(Logistic Regression): 와인의 품질 분류, 스팸 메일 여부, 시험 합격 여부처럼 '예/아니오(클래스)'를 분류하는 모델이다.
스케일링 비교 선형 회귀 (Linear Regression) 로지스틱 회귀 (Logistic Regression)
핵심 목적 연속적인 수치 데이터(연속 확률 변수)의 정확한 값 예측 범주형 데이터(이진 클래스 등) 중 어떤 그룹에 속할지 분류
출력 형태 음의 무한대부터 양의 무한대 사이의 임의의 실수 값 0 ~ 1 사이의 확률값 (임계치 0.5 기준으로 0 또는 1로 치환)
수학적 메커니즘 선형 방정식: y = wx + b (단일 직선을 구함) 선형 방정식을 시그모이드(Sigmoid) 함수에 집어넣음
주요 평가 지표 평균제곱오차(MSE), R² Score(결정계수) 정확도(Accuracy), 오차행렬(Confusion Matrix), ROC-AUC
대표적인 예시 지역별 집값 예측, 연간 매출액 예측, 내일의 기온 예측 이메일 스팸 여부(0/1) 분류, 질병 유무 판정, 와인 등급(A/B) 분류

🎨 그림으로 보는 선형 회귀와 로지스틱 회귀의 차이

두 모델이 데이터를 어떻게 다루고 분류하는지 시각화 다이어그램을 통해 직관적으로 비교해본다.

📈 선형 회귀의 예측선 vs 🎯 로지스틱 회귀의 S자 분류선
📈 선형 회귀 (예측 직선) 크기 (X) 가격 (Y) 점을 관통하는 하나의 최적 "직선"을 찾는다 🎯 로지스틱 회귀 (S자 분류곡선) 특성 (X) 1.0 (참) 0.0 (거짓) 0과 1 사이로 맵핑하는 "S자 곡선"을 찾는다

⚙️ 머신러닝 프로세스 공통 5단계 절차

선형 회귀(수치 예측)와 로지스틱 회귀(클래스 분류)는 해결하는 대상과 결과는 다르지만, scikit-learn 라이브러리를 활용해 모델을 처리하는 공통적인 파이썬 코드 절차는 100% 동일한 흐름을 가진다. 이 정석 프로세스를 먼저 명확하게 기억해둔다.

🔗 scikit-learn 머신러닝 공통 5단계 파이프라인
1. 데이터 준비 Split / Scale 2. 모델 선언 model = Linear... 3. 모델 학습 model.fit() 4. 예측 수행 predict() 5. 모델 평가 MSE / R2 / F1
  • 1단계: 데이터 준비 (Pre-processing): 데이터를 훈련셋과 테스트셋으로 쪼개고, 특성들의 크기를 균등하게 고르는 스케일링 전처리를 마친다.
  • 2단계: 모델 선언 (Instantiation): 사이킷런 패키지에서 학습시킬 알고리즘 클래스(예: LinearRegression 또는 LogisticRegression)를 호출해 인스턴스 객체를 생성한다.
  • 3단계: 모델 학습 (Fitting): fit(X_train_norm, y_train) 메서드를 사용해 훈련셋의 피처와 정답 간의 상관관계 가중치를 모델이 학습하도록 유도한다.
  • 4단계: 예측 수행 (Prediction): 학습을 마친 모델의 predict(X_test_norm) 메서드에 테스트 데이터를 대입하여 예측치 결과(y_pred)를 수집한다.
  • 5단계: 모델 평가 (Evaluation): 예측치(y_pred)와 실제 정답(y_test)을 서로 대조하여 채점(평가 지표 수식 대입)을 진행한다.

🛠️ 바로 복사해 쓰는 머신러닝 모델링 정석 코드 템플릿

공통된 5단계 절차가 실제 파이썬 코드에서 어떻게 구현되는지 정석 템플릿을 확인해본다.

1. 선형 회귀 (수치 예측 모델링)

linear_regression.py Python 3.11
# 1. 라이브러리 및 평가 지표 임포트하기
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 2. 모델 객체 선언 및 학습하기
model = LinearRegression()
model.fit(X_train_norm, y_train)

# 3. 예측값 도출하기 (연속적인 실수 값이 나옴)
y_pred = model.predict(X_test_norm)

# 4. 회귀 평가지표 출력하기 (정확도가 아닌 오차와 결정계수 사용)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"평균제곱오차(MSE): {mse:.4f}")
print(f"결정계수(R2 Score): {r2:.4f}")

2. 로지스틱 회귀 (이진 클래스 분류 모델링)

logistic_regression.py Python 3.11
# 1. 라이브러리 및 분류 평가지표 임포트하기
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, classification_report, roc_auc_score

# 2. 모델 객체 선언 및 학습하기
clf = LogisticRegression()
clf.fit(X_train_norm, y_train)

# 3. 예측 클래스 도출하기 (0 또는 1이 나옴)
y_pred = clf.predict(X_test_norm)

# 4. 분류 평가지표 출력하기
cm = confusion_matrix(y_test, y_pred)
report = classification_report(y_test, y_pred)

print("오차행렬(Confusion Matrix):")
print(cm)
print("\n분류 리포트(Classification Report):")
print(report)
⚠️ 초보자가 가장 많이 범하는 평가지표 대입 실수!
선형 회귀(수치 예측) 결과물에 분류 지표인 accuracy_score(정확도)를 대입하면 에러가 발생하거나 0%에 수렴하는 비정상적인 결과가 나온다. 연속된 실수가 완벽히 일치하는 예측은 현실적으로 불가능하기 때문이다. 반대로 로지스틱 회귀(분류) 결과물에 회귀 지표인 mean_squared_error(MSE)를 사용하면 클래스 예측의 성공률이나 오차 유무를 객관적으로 평가하기 어렵다. 분류 모델 평가 시에는 반드시 정확도, 정밀도, 재현율이 담긴 오차행렬(Confusion Matrix)과 분류 리포트를 활용해야 한다.

실무 머신러닝 문제를 해결할 때, 예측 대상의 형태(연속형 수치냐, 범주형 클래스냐)를 먼저 파악한 뒤 알맞은 알고리즘과 평가지표 모듈을 적용해 주면 깔끔하게 해결된다.

'ML,DL,LangChain > 02_EDA와 MLP' 카테고리의 다른 글

Pytorch 활용  (0) 2026.08.06
데이터 분리와 피쳐 스케일링  (1) 2026.08.05
SequentialMLP 데이터 흐름  (1) 2026.03.12
PyTorch 개론  (0) 2026.03.10
모델 학습 전체 파이프 라인  (0) 2026.03.10
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.