선형 회귀 분석
2023. 11. 9. 22:09ㆍ개발 문서/Python
728x90
반응형
선형 회귀 분석은 종속 변수와 하나 이상의 독립 변수 간의 관계를 모델링하는 통계적 방법 중 하나입니다. 주로 두 변수 간의 선형 관계를 나타내는 직선을 찾아내어 예측 및 분석에 사용됩니다. 이 방법은 데이터 포인트들이 어떤 패턴을 따르는지를 설명하는데 사용됩니다.
단순 선형 회귀:
모델:
[ Y = \beta_0 + \beta_1X + \epsilon ]
- (Y)는 종속 변수,
- (X)는 독립 변수,
- (\beta_0)는 절편 (y 절편),
- (\beta_1)는 기울기 (회귀 계수),
- (\epsilon)는 오차 항을 나타냅니다.
목적:
주어진 데이터로부터 최적의 절편과 기울기를 찾아내어 예측 모델을 만드는 것이 목적입니다.
다중 선형 회귀:
모델:
[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \ldots + \beta_nX_n + \epsilon ]
- (X_1, X_2, \ldots, X_n)는 여러 독립 변수들을 나타냅니다.
목적:
여러 독립 변수들과 종속 변수 간의 관계를 고려하여 더 복잡한 데이터를 설명하고 예측하는 것이 목적입니다.
주요 단계:
- 데이터 수집: 종속 변수 및 독립 변수의 데이터를 수집합니다.
- 데이터 전처리: 결측값 처리, 이상치 제거, 특성 스케일링 등의 전처리를 수행합니다.
- 모델 선택: 단순 선형 회귀 또는 다중 선형 회귀 모델을 선택합니다.
- 모델 훈련: 주어진 데이터를 사용하여 모델을 훈련시킵니다.
- 모델 평가: 모델의 성능을 평가하고 예측 정확도를 확인합니다.
- 예측: 새로운 데이터에 대한 예측을 수행합니다.
Python에서의 구현:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 데이터 생성
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
Y = np.array([2, 4, 5, 4, 5])
# 선형 회귀 모델 생성 및 훈련
model = LinearRegression()
model.fit(X, Y)
# 모델 파라미터 출력
print(f'Intercept (절편): {model.intercept_}')
print(f'Slope (기울기): {model.coef_[0]}')
# 예측
X_pred = np.array([6]).reshape(-1, 1)
Y_pred = model.predict(X_pred)
print(f'예측값: {Y_pred[0]}')
# 시각화
plt.scatter(X, Y, color='blue')
plt.plot(X, model.predict(X), color='red', linewidth=2)
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
이 코드는 NumPy와 scikit-learn을 사용하여 단순 선형 회귀를 구현한 예제입니다. 실제 데이터에 적용하기 위해서는 데이터의 특성에 따라 다중 선형 회귀 등의 더 복잡한 모델을 사용할 수 있습니다.
'개발 문서 > Python' 카테고리의 다른 글
결정 트리와 랜덤 포레스트 (0) | 2023.11.09 |
---|---|
로지스틱 회귀 분석 (0) | 2023.11.09 |
데이터 시각화 (Plotly) (1) | 2023.11.09 |
데이터 분석 라이브러리 (Pandas, NumPy) (1) | 2023.11.09 |
데이터 전처리 (0) | 2023.11.09 |