728x90
반응형
머신러닝에서 회귀(Regression)는 연속적인 숫자 값을 예측하는 데 사용되는 대표적인 지도학습(Supervised Learning) 방법입니다. 그중 가장 기본이 되는 **선형회귀(Linear Regression)**부터, 이를 확장한 다항회귀(Polynomial Regression), 그리고 입력 변수가 여러 개인 **다중회귀(Multiple Linear Regression)**까지 알아보겠습니다.
📌 선형 회귀 (Linear Regression)
✅ 정의:
선형 회귀는 입력 변수(X)와 출력 변수(y) 사이의 관계가 **직선(선형)**이라고 가정하는 모델입니다. 하나의 독립 변수로 하나의 종속 변수를 예측합니다.
✅ 수식:
y = aX + b
- a: 기울기 (slope)
- b: 절편 (intercept)
✅ 예시:
- 광고비가 증가할수록 판매량이 증가하는 관계
✅ 특징:
- 해석이 매우 쉬움
- 과적합 위험이 낮음
- 단, 입력-출력 관계가 직선일 때만 유효
📈 다항 회귀 (Polynomial Regression)
✅ 정의:
선형 회귀를 확장하여, 입력 변수의 제곱, 세제곱 등 고차항을 추가해 곡선 형태의 데이터도 모델링할 수 있게 한 회귀 방식입니다.
✅ 수식 (2차 다항 회귀):
y = aX^2 + bX + c
✅ 예시:
- 온도가 너무 낮거나 너무 높을 때 판매량이 줄고, 중간 온도에서 가장 많이 팔리는 아이스크림 판매량 예측
✅ 특징:
- 비선형 관계를 모델링할 수 있음
- 차수가 너무 높아지면 과적합(overfitting) 발생 가능
📊 다중 회귀 (Multiple Linear Regression)

✅ 정의:
다중 회귀는 입력 변수가 여러 개인 경우에 사용하는 선형 회귀 방식입니다. 즉, 여러 독립 변수(X1, X2, X3...)가 하나의 종속 변수(y)에 영향을 줄 때 사용됩니다.
✅ 수식:
y = a1X1 + a2X2 + a3X3 + ... + b
✅ 예시:
- 집값 예측: 면적, 방 개수, 위치, 건축년도 등 여러 요인으로 가격 예측
✅ 특징:
- 현실 세계의 다양한 문제에 적합
- 독립 변수 간의 **다중공선성(multicollinearity)**에 주의 필요
❌ 한계점 및 극복 방법:
- 다중공선성 문제: 입력 변수들 간에 강한 상관관계가 있을 경우, 계수 추정이 불안정해지고 해석이 어려워질 수 있습니다.
- 선형 가정 한계: 변수 간의 관계가 반드시 선형일 필요가 있기 때문에, 비선형적인 관계는 잘 설명하지 못함.
- 이상치에 민감: 극단적인 데이터가 모델을 왜곡할 수 있습니다.
- 데이터 전처리 중요: 누락값, 범주형 변수 처리 등 사전 작업이 충분히 되어야 모델 성능이 나옵니다.
🛠 극복 방법:
- 다중공선성 해결: 변수 선택 기법(예: VIF 제거), PCA(주성분 분석) 등을 통해 상관관계 높은 변수를 줄입니다.
- 비선형 관계 대응: 다중 회귀 대신 다항 회귀나 트리 기반 모델(Random Forest, XGBoost 등) 사용을 고려합니다.
- 이상치 완화: 이상치를 탐지하여 제거하거나, 로그/루트 변환 등을 통해 완화합니다.
- 정규화 기법 사용: 릿지 회귀(Ridge), 라쏘 회귀(Lasso)와 같은 정규화 모델을 활용해 과적합과 불안정성을 줄일 수 있습니다.
- 범주형 변수 처리: 원-핫 인코딩(One-Hot Encoding) 등 적절한 전처리 방식을 사용합니다.** 누락값, 범주형 변수 처리 등 사전 작업이 충분히 되어야 모델 성능이 나옵니다.
💻 다중 회귀 Python 예제 코드
아래는 Python의 scikit-learn을 사용한 간단한 다중 회귀 구현 예제입니다:
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import pandas as pd
# 예시 데이터프레임 생성
data = {
'면적': [30, 45, 60, 70, 80],
'방개수': [1, 2, 2, 3, 3],
'연식': [15, 10, 8, 5, 2],
'가격': [1.2, 2.0, 2.5, 3.0, 3.8]
}
# 데이터 준비
df = pd.DataFrame(data)
X = df[['면적', '방개수', '연식']]
y = df['가격']
# 학습/테스트 데이터 분리
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(f'MSE: {mse:.2f}')
🔍 세 가지 회귀 방식 비교
항목선형 회귀다항 회귀다중 회귀
| 입력 변수 | 1개 | 1개 (단 고차항 포함) | 여러 개 |
| 출력 변수 | 1개 | 1개 | 1개 |
| 관계 형태 | 직선 | 곡선 | 직선 (다차원) |
| 장점 | 해석 쉬움, 간단 | 비선형 관계 표현 가능 | 다양한 변수 반영 가능 |
| 단점 | 비선형 데이터에는 부적합 | 과적합 위험 | 다중공선성 주의 필요, 선형 가정 한계 |
✅ 마무리
- 선형 회귀는 머신러닝 회귀 모델의 가장 기초이며 직선적인 관계에 적합합니다.
- 다항 회귀는 이를 확장하여 곡선 관계를 설명합니다.
- 다중 회귀는 여러 요인이 동시에 결과에 영향을 줄 때 사용하는 현실적인 모델입니다.
각 회귀 모델은 데이터의 형태와 목적에 따라 선택해야 하며, 분석 전에 데이터 시각화와 탐색이 중요합니다.
📢 더 많은 머신러닝 모델과 실습 예제를 알고 싶다면 블로그를 구독하고 함께 공부해요! 🚀
반응형
'IT (IT)🤖🧠 > AI' 카테고리의 다른 글
| 🧠 ChatGPT와 OpenAI API의 차이점, 특징, 사용법 총정리 (2025 최신판) (0) | 2025.04.01 |
|---|---|
| Cursor vs GitHub Copilot: AI 코드 도우미 비교 및 사용법 가이드 (0) | 2025.03.31 |
| k-최근접 이웃 회귀(KNN Regression) 알고리즘 완벽 가이드 (1) | 2025.03.22 |
| 지도학습, 비지도학습, 강화학습의 차이점과 훈련세트 vs 테스트세트 완벽 정리 (0) | 2025.03.22 |
| k-Nearest Neighbors (KNN) 알고리즘과 Python 라이브러리 활용법 (0) | 2025.03.22 |