선형 회귀 (Linear Regression) 모델

KangHo Lee's avatar
Jun 18, 2025
선형 회귀 (Linear Regression) 모델

📈 선형 회귀 개요

  • 머신러닝의 입문 단계에서 가장 먼저 배우는 알고리즘 중 하나가 바로 선형 회귀입니다.
  • 입력 변수(x)와 출력 변수(y) 사이의 선형 관계를 바탕으로 미래 값을 예측하는 모델로, 예측 모델링의 기초를 다지는 데 꼭 필요한 개념입니다.

1️⃣ 선형 회귀란?

가장 기본적인 선형 회귀 모델은 다음과 같은 일차 함수 형태로 표현됩니다.
y = ax + b
  • y: 예측값 (종속 변수)
  • x: 입력값 (독립 변수)
  • a: 기울기 (가중치, weight)
  • b: y절편 (편향, bias)
즉, x가 변할 때 y가 어떻게 변하는지를 ab를 통해 학습하게 됩니다.

2️⃣ 핵심 개념 요약

용어
설명
가설 함수 (hypothesis)
입력 x에 대한 예측값 을 구하는 함수 (예: ŷ = wx + b)
가중치 (weight)
입력에 곱해지는 계수 (w, a)
편향 (bias)
직선의 y절편 역할을 하는 상수 (b)
손실 함수 (loss function)
실제값과 예측값의 오차를 계산하는 함수
옵티마이저 (optimizer)
손실 함수를 최소화하도록 가중치와 편향을 조정하는 알고리즘

3️⃣ 최소제곱법 (Least Squares Method)

선형 회귀의 목표는 오차(실제값 - 예측값)의 제곱합을 최소화하는 것입니다.
📌 오차 제곱합 (RSS, Residual Sum of Squares):
RSS = Σ(yᵢ - ŷᵢ)² = Σ(yᵢ - (β₀ + β₁x₁ᵢ + β₂x₂ᵢ + ... + βₙxₙᵢ))²
이를 평균으로 바꾼 것이 평균제곱오차(MSE, Mean Squared Error)입니다.
MSE = (1/n) × Σ(yᵢ - ŷᵢ)²

4️⃣ 경사 하강법 (Gradient Descent)

MSE를 최소화하려면, 손실 함수의 기울기를 계산해서 가중치 w와 편향 b점진적으로 조정해야 합니다. 이때 사용하는 방법이 바로 경사 하강법입니다.
📌 가중치 갱신 공식:
w = w - α × ∂L/∂w
  • α: 학습률 (learning rate)
  • ∂L/∂w: 손실 함수에 대한 편미분 값

5️⃣ 다중 선형 회귀 (Multiple Linear Regression)

변수가 2개 이상일 경우, 방정식은 다음과 같이 확장됩니다:
y = w₁x₁ + w₂x₂ + ... + wₙxₙ + b

📊 선형 회귀 그래프 예시

notion image

💻 TensorFlow를 이용한 실습 (Google Colab 실행 가능)

import numpy as np import tensorflow as tf import matplotlib.pyplot as plt # 입력 데이터 (공부 시간) X = np.array([1, 2, 3, 4, 5], dtype=np.float32) # 정답 데이터 (시험 점수) y = np.array([10, 20, 30, 40, 50], dtype=np.float32) # 모델 정의 model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=[1]) ]) # 컴파일 model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.01), loss='mse') # 학습 model.fit(X, y, epochs=100, verbose=0) # 예측 test_input = 6.0 predicted = model.predict([test_input])[0][0] print(f"{test_input}시간 공부했을 때 예상 점수: {predicted:.2f}점") # 시각화 plt.scatter(X, y, label='실제 점수') plt.plot(X, model.predict(X), color='red', label='예측 선') plt.xlabel('공부 시간') plt.ylabel('시험 점수') plt.legend() plt.show()

✅ 마무리

선형 회귀는 간단하지만 머신러닝의 기초 수학, 손실 함수, 최적화 개념을 학습하는 데 매우 좋은 출발점입니다. 이후의 로지스틱 회귀, 신경망, 딥러닝으로 확장하는 발판이 됩니다.
 
Share article

devleekangho