선형 회귀의 확장으로, 독립 변수와 종속 변수 사이의 비선형 관계를 설명하는 데 사용되며 선형 회귀와 달리 다항 회귀는 데이터를 직선이 아닌 다항식 곡선으로 모델링하여 더 복잡한 패턴을 포착할 수 있음
1. 다항 회귀 기본 개념
![]() y: 종속 변수 (예측하고자 하는 값) xi: 독립 변수 (입력 값) βi: 회귀 계수 (모델이 학습하는 가중치) ϵ: 오차 항 (모델이 설명하지 못하는 부분) |
2. 다항 회귀의 특징
1) 비선형 관계 모델링
2) 다양한 패턴 학습
3) 복잡한 관계 모델링
3. 다항 회귀의 학습 방법
다항 회귀는 선형 회귀와 같은 방식으로 최소 제곱법(Ordinary Least Squares)을 통해 학습함 단, 독립 변수를 다항식 형태로 변환하여 새로운 변수를 생성하는 것이 차이
예를 들어, 독립 변수 x가 있을 때, x^2, x^3 등의 변수를 추가하여 선형 회귀 모델을 학습하는 방식
![]() |
ex) 2차 다항 회귀 모델을 사용해 데이터를 학습
4. 다항 회귀의 차수 선택과 과적합 문제
다항 회귀에서 차수가 높아질수록 데이터에 더 유연하게 적합할 수 있지만, 과적합의 위험이 커짐 (너무 높은 차수를 사용하면 모델이 학습 데이터에 과도하게 적합되어 새로운 데이터에 대한 일반화 성능이 저하됨)
따라서 다음과 같은 방식으로 차수 선택의 기준으로 정함
5. 다항 회귀의 평가 지표
다항 회귀 모델 평가의 주요 지표
1) R² (결정 계수)
![]() yˉ는 실제 값의 평균 |
2) MSE (Mean Squared Error)
![]() |
Python에서 Scikit-learn 라이브러리를 사용하여 간단하게 다항 회귀 모델을 구현방법
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
# 예제 데이터 생성
X = np.random.rand(100, 1) * 10 # 0~10 사이의 값을 가진 데이터
y = 3 + 2 * X + X**2 + np.random.randn(100, 1) * 5 # 실제 데이터(잡음 포함)
# 다항 특징 생성 (2차 다항식)
poly_features = PolynomialFeatures(degree=2)
X_poly = poly_features.fit_transform(X)
# 모델 학습
model = LinearRegression()
model.fit(X_poly, y)
# 예측
y_pred = model.predict(X_poly)
# 평가
mse = mean_squared_error(y, y_pred)
print("Mean Squared Error:", mse)
회귀분석-라쏘 회귀(Lasso Regression) (0) | 2024.11.18 |
---|---|
회귀분석-릿지 회귀(Ridge Regression) (0) | 2024.10.30 |
회귀분석-선형 회귀(Linear Regression) (0) | 2024.10.18 |
회귀분석(Regression Analysis) (1) | 2024.10.16 |
비지도학습(Unsupervised Learning) (2) | 2024.10.01 |