[파이썬][scikit-learn] scikit-learn에서 선형 회귀

선형 회귀는 데이터를 가장 잘 설명하는 선형 모델을 찾는 데 사용되는 통계적 기법입니다. 선형 회귀 모델은 입력 변수와 출력 변수 간의 선형 관계를 모델링합니다. 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)입니다.

아래는 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-제곱 값을 계산합니다.