본문 바로가기
정보/IT 지식 정보

선형 회귀란? 경사 하강법으로 직접 구현하기 [6편]

by 안다니. 2026. 4. 3.
반응형
선형회귀 기초

 

주택 가격 예측을 통해 선형 회귀의 원리와 구현을 코드로 익힙니다

시리즈: 머신러닝 실전 완전 정복

6편: 선형 회귀 기초 7편: RANSAC과 다항 회귀 8편: 규제 기법

1. 회귀 분석이란?

회귀 분석은 연속형 목표 변수를 예측하는 머신러닝 기법입니다.

분류(Classification) vs 회귀(Regression)

  • 분류: 이산형 클래스 예측 (예: 스팸 메일 여부)
  • 회귀: 연속형 수치 예측 (예: 주택 가격, 온도)

2. 주택 데이터셋 탐색

Boston Housing 데이터는 1970년대 미국 보스턴 주택 정보로, 13개 특성과 주택 가격(MEDV)으로 구성됩니다.

import numpy as np
import pandas as pd
from sklearn.datasets import load_boston

boston = load_boston()
X = boston.data
y = boston.target
print(f"특성 개수: {X.shape[1]}, 샘플 개수: {X.shape[0]}")

💡 팁: 산점도 행렬과 상관관계 행렬로 특성과 목표 변수의 관계를 시각화하면 모델 선택에 도움이 됩니다.

3. 선형 회귀 직접 구현 (경사 하강법)

경사 하강법(Gradient Descent)은 비용 함수를 최소화하는 가중치를 반복적으로 찾는 알고리즘입니다.

class LinearRegressionGD(object):
    """경사 하강법을 사용한 선형 회귀"""
    def __init__(self, eta=0.001, n_iter=20):
        self.eta = eta
        self.n_iter = n_iter

    def fit(self, X, y):
        self.w_ = np.zeros(1 + X.shape[1])
        self.cost_ = []
        for i in range(self.n_iter):
            output = self.net_input(X)
            errors = (y - output)
            self.w_[1:] += self.eta * X.T.dot(errors)
            self.w_[0] += self.eta * errors.sum()
            cost = (errors**2).sum() / 2.0
            self.cost_.append(cost)
        return self

주요 개념

  • eta (η): 학습률 — 가중치 업데이트 크기 조절
  • n_iter: 반복 횟수
  • cost_: 각 반복의 비용 함수 값 저장

4. scikit-learn LinearRegression

반응형

실무에서는 scikit-learn의 최적화된 구현을 사용합니다.

from sklearn.linear_model import LinearRegression

slr = LinearRegression()
slr.fit(X_train, y_train)
y_pred = slr.predict(X_test)

5. 정규 방정식 (Normal Equation)

행렬 연산으로 한 번에 최적 가중치를 구하는 방법입니다. 반복이 필요 없어 작은 데이터셋에 효율적입니다.

Xb = np.hstack((np.ones((X.shape[0], 1)), X))
w = np.dot(np.linalg.inv(np.dot(Xb.T, Xb)), np.dot(Xb.T, y))

6. 모델 평가

회귀 모델의 성능을 평가하는 주요 지표입니다.

from sklearn.metrics import mean_squared_error, r2_score

print('훈련 MSE: %.3f' % mean_squared_error(y_train, y_train_pred))
print('훈련 R^2: %.3f' % r2_score(y_train, y_train_pred))

✓ 핵심 정리

  • 회귀 분석은 연속형 수치 예측
  • 경사 하강법은 반복적 최적화 방법
  • 정규 방정식은 직접 해를 구하는 방법
  • MSE와 R²로 모델 성능 평가

다음 편에서는 이상치에 강한 RANSAC과 곡선을 그리는 다항 회귀를 배웁니다.

반응형

댓글