인공지능/머신러닝

회귀분석-선형 회귀(Linear Regression)

2^7 2024. 10. 18. 21:00

선형 회귀(Linear Regression)

  독립 변수(입력 값)와 종속 변수(출력 값) 사이의 선형 관계를 기반으로 예측 모델을 생성하는 알고리즘으로 데이터를 직선으로 설명하며, 예측 대상이 연속적인 값일 때 주로 사용함

 

1. 선형 회귀의 기본 개념

  • 선형 회귀를 이용하는 목적은 입력 변수와 출력 변수 사이의 선형 관계를 찾는 것
  • 주어진 데이터를 통해 회귀 계수를 학습하고, 이를 바탕으로 새로운 데이터를 예측


y: 종속 변수 (예측하고자 하는 값)
xi​: 독립 변수 (입력 값)
βi​: 회귀 계수 (모델이 학습하는 가중치)
ϵ: 오차 항 (모델이 설명하지 못하는 부분)

 

2. 선형 회귀의 유형

 변수의 수에 따라 단순 선형 회귀(Simple Linear Regression)다중 선형 회귀(Multiple Linear Regression)로 나눔

1) 단순 선형 회귀 (Simple Linear Regression)

  • 하나의 독립 변수와 하나의 종속 변수를 다루며 두 변수 사이의 관계를 직선으로 표현함

ex) 집의 면적(독립 변수)에 따라 집값(종속 변수)을 예측하는 경우 회귀 계수 β1는 면적이 1 단위 증가할 때 집값이 얼마나 증가하는지를 나타냄

2) 다중 선형 회귀 (Multiple Linear Regression)

  • 여러 개의 독립 변수를 다루며 여러 변수가 종속 변수에 어떻게 영향을 미치는지를 분석하는 데 유용함

ex) 집의 면적, 위치, 방의 개수 등(다중 변수)에 따라 집값을 예측하는 경우에 다중 회귀 분석을 사용

 

3. 선형 회귀의 학습 방법: 최소 제곱법

선형 회귀는 주어진 데이터를 기반으로 회귀 계수 β를 학습하며 이를 위해 최소 제곱법(Ordinary Least Squares, OLS)을 사용

* 최소 제곱법은 실제 값 yi와 예측 값 y^i 간의 차이(잔차, residual)의 제곱합을 최소화하는 방식


는 모델이 예측한 값이고 yi는 실제 값

RSS(Residual Sum of Squares)를 최소화하는 방향으로 회귀 계수를 업데이트하여 데이터를 가장 잘 설명하는 직선을 찾음

728x90

 

4. 선형 회귀의 조건

선형 회귀 모델이 정확하게 작동하려면 몇 가지 조건이 충족해야 함

1) 선형성 (Linearity)

  • 독립 변수와 종속 변수 사이의 관계가 선형적이어야 함
  • 데이터가 직선으로 설명될 수 있어야 함
  • 선형성이 없다면 모델의 예측 정확도가 떨어짐

2) 독립성 (Independence)

  • 각 데이터 포인트의 오차는 독립적이어야 함
  • 한 데이터 포인트의 오차가 다른 데이터 포인트의 오차에 영향을 주지 않아야 함

3) 등분산성 (Homoscedasticity)

  • 오차의 분산이 일정해야 함
  • 오차의 분산이 달라지면(이분산성), 선형 회귀 모델의 예측 신뢰도가 떨어질 수 있음

4) 정규성 (Normality)

  • 오차가 정규 분포를 따라야 함
  • 이 조건은 주로 회귀 계수의 신뢰 구간이나 p-값 계산에 영향을 미침

 

5. 선형 회귀 모델 평가

선형 회귀 모델 평가의 주요 지표

1) R² (결정 계수)

  • 결정 계수는 모델이 주어진 데이터를 얼마나 잘 설명하는지 나타내는 지표
  • 값이 0에서 1 사이로 1에 가까울수록 데이터가 모델에 의해 잘 설명된다는 의미

는 실제 값의 평균

2) MSE (Mean Squared Error)

  • 예측 값과 실제 값의 차이를 제곱한 후 평균을 구하는 방식으로 정확도를 평가
  • 값이 작을수록 좋은 모델을 의미

3) MAE (Mean Absolute Error)

  • 예측 값과 실제 값의 차이를 제곱하지 않고 절대값을 취한 후 평균을 구하는 방법
  • MSE는 큰 오차에 민감하지만, MAE는 그 영향을 덜 받음

 

6. 선형 회귀의 한계

1) 선형성 가정

  • 선형 회귀는 데이터가 선형적이라는 가정이 필요
  • 비선형적인 데이터에서는 성능이 저하됨

2) 이상치에 민감

  • 이상치가 있으면 모델의 회귀 계수가 왜곡될 수 있어 성능이 떨어짐

3) 다중공선성 문제

  • 독립 변수들 사이에 높은 상관관계가 있으면 회귀 계수가 불안정해지는 문제가 발생할 수 있음
  • 릿지 회귀나 라쏘 회귀 같은 규제 방법을 통해 해결할 수 있음

Python에서 Scikit-learn 라이브러리를 사용하여 간단하게 선형 회귀 모델을 구현방법

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 데이터셋 로드 및 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 모델 생성 및 학습
model = LinearRegression()
model.fit(X_train, y_train)

# 예측 및 평가
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

 

728x90