독립 변수(입력 값)와 종속 변수(출력 값) 사이의 선형 관계를 기반으로 예측 모델을 생성하는 알고리즘으로 데이터를 직선으로 설명하며, 예측 대상이 연속적인 값일 때 주로 사용함
![]() y: 종속 변수 (예측하고자 하는 값) xi: 독립 변수 (입력 값) βi: 회귀 계수 (모델이 학습하는 가중치) ϵ: 오차 항 (모델이 설명하지 못하는 부분) |
변수의 수에 따라 단순 선형 회귀(Simple Linear Regression)와 다중 선형 회귀(Multiple Linear Regression)로 나눔
1) 단순 선형 회귀 (Simple Linear Regression)
![]() |
ex) 집의 면적(독립 변수)에 따라 집값(종속 변수)을 예측하는 경우 회귀 계수 β1는 면적이 1 단위 증가할 때 집값이 얼마나 증가하는지를 나타냄
2) 다중 선형 회귀 (Multiple Linear Regression)
![]() |
ex) 집의 면적, 위치, 방의 개수 등(다중 변수)에 따라 집값을 예측하는 경우에 다중 회귀 분석을 사용
선형 회귀는 주어진 데이터를 기반으로 회귀 계수 β를 학습하며 이를 위해 최소 제곱법(Ordinary Least Squares, OLS)을 사용
* 최소 제곱법은 실제 값 yi와 예측 값 y^i 간의 차이(잔차, residual)의 제곱합을 최소화하는 방식
![]() 는 모델이 예측한 값이고 yi는 실제 값 |
RSS(Residual Sum of Squares)를 최소화하는 방향으로 회귀 계수를 업데이트하여 데이터를 가장 잘 설명하는 직선을 찾음
선형 회귀 모델이 정확하게 작동하려면 몇 가지 조건이 충족해야 함
1) 선형성 (Linearity)
2) 독립성 (Independence)
3) 등분산성 (Homoscedasticity)
4) 정규성 (Normality)
선형 회귀 모델 평가의 주요 지표
1) R² (결정 계수)
![]() yˉ는 실제 값의 평균 |
2) MSE (Mean Squared Error)
![]() |
3) MAE (Mean Absolute Error)
![]() |
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)
회귀분석-릿지 회귀(Ridge Regression) (0) | 2024.10.30 |
---|---|
회귀분석-다항 회귀(Polynomial Regression) (0) | 2024.10.28 |
회귀분석(Regression Analysis) (1) | 2024.10.16 |
비지도학습(Unsupervised Learning) (2) | 2024.10.01 |
지도학습(Supervised Learning) (1) | 2024.09.29 |