선형 회귀는 데이터를 가장 잘 설명하는 선형 모델을 찾는 데 사용되는 통계적 기법입니다. 선형 회귀 모델은 입력 변수와 출력 변수 간의 선형 관계를 모델링합니다. scikit-learn은 파이썬에서 머신 러닝을 구현하는 데 널리 사용되는 라이브러리로, 선형 회귀 모델을 쉽게 구현할 수 있습니다.
scikit-learn의 선형 회귀 모델
scikit-learn은 다양한 선형 회귀 알고리즘을 제공합니다. 그 중에서도 가장 일반적인 알고리즘은 Ordinary Least Squares(OLS) 알고리즘입니다. 이 알고리즘은 최소 제곱법을 사용하여 입력 변수와 출력 변수 간의 최소 제곱 오차를 최소화하는 선형 회귀 모델을 구축합니다.
아래는 scikit-learn을 사용하여 선형 회귀 모델을 만드는 간단한 예제입니다.
from sklearn.linear_model import LinearRegression
import numpy as np
# 예제 데이터 생성
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3
# 선형 회귀 모델 학습
reg = LinearRegression().fit(X, y)
# 학습된 모델을 사용하여 예측
X_test = np.array([[3, 5]])
y_pred = reg.predict(X_test)
print(y_pred)
위 코드에서는 LinearRegression
클래스를 사용하여 선형 회귀 모델을 생성합니다. 입력 변수 X
와 출력 변수 y
를 사용하여 fit()
함수를 호출하여 모델을 학습합니다. 그 다음, 학습된 모델을 사용하여 새로운 입력 데이터 X_test
에 대한 예측을 수행하고 예측 결과를 출력합니다.
선형 회귀 모델의 평가
선형 회귀 모델의 성능을 평가하기 위해 여러 가지 평가 지표를 사용할 수 있습니다. 가장 일반적인 평가 지표는 평균 제곱 오차 (Mean Squared Error, MSE)와 R-제곱 (R-Squared)입니다.
- 평균 제곱 오차는 예측 값과 실제 값 사이의 차이를 제곱한 후 평균을 계산한 값으로, 예측의 정확도를 나타냅니다. 값이 작을수록 좋습니다.
- R-제곱은 예측 값이 실제 값의 분산을 얼마나 설명하는지를 나타내는 지표로, 0에서 1사이의 값을 가지며 1에 가까울수록 좋습니다.
아래는 scikit-learn을 사용하여 선형 회귀 모델을 평가하는 예제입니다.
from sklearn.metrics import mean_squared_error, r2_score
# 예측 평가
y_true = np.array([4, 5, 6, 7])
y_pred = np.array([3.5, 5.1, 5.9, 7.2])
# 평균 제곱 오차 계산
mse = mean_squared_error(y_true, y_pred)
print(f"Mean Squared Error: {mse}")
# R-제곱 계산
r2 = r2_score(y_true, y_pred)
print(f"R-Squared: {r2}")
위 코드에서는 mean_squared_error()
함수를 사용하여 평균 제곱 오차를 계산하고, r2_score()
함수를 사용하여 R-제곱 값을 계산합니다.