[python] scikit-learn을 사용한 회귀 분석

회귀 분석은 데이터의 관계를 모델링하고 예측하는 데 사용되는 통계적 기법입니다. scikit-learn은 파이썬에서 머신러닝 작업을 위한 강력한 도구로, 회귀 분석을 위한 다양한 기능을 제공합니다. 이번 글에서는 scikit-learn을 사용하여 회귀 분석을 수행하는 방법을 알아보겠습니다.

데이터 불러오기

먼저, 회귀 분석을 수행하기 위해 필요한 데이터를 불러와야 합니다. scikit-learn에는 여러 가지 예제 데이터셋이 포함되어 있으며, 이 중 일부 데이터를 활용하겠습니다. 아래 코드는 scikit-learn의 load_diabetes() 함수를 사용하여 당뇨병 데이터셋을 불러오는 예제입니다.

from sklearn.datasets import load_diabetes

# 데이터 불러오기
diabetes = load_diabetes()
X, y = diabetes.data, diabetes.target

위 코드에서 X는 입력 변수를, y는 출력 변수를 나타냅니다. X의 shape는 (442, 10)이며, y의 shape는 (442,)입니다.

모델 생성 및 훈련

다음으로, 회귀 분석을 위한 모델을 생성하고 훈련해야 합니다. scikit-learn에서는 선형 회귀 모델인 LinearRegression을 제공하며, 아래와 같이 사용할 수 있습니다.

from sklearn.linear_model import LinearRegression

# 모델 생성
model = LinearRegression()

# 훈련
model.fit(X, y)

위 코드에서 fit() 함수를 호출하여 모델을 훈련합니다. 모델이 입력 변수 X와 출력 변수 y간의 관계를 학습하게 됩니다.

예측하기

모델이 훈련된 후에는 새로운 데이터에 대한 예측을 수행할 수 있습니다. 아래 코드는 predict() 함수를 사용하여 예측을 수행하는 예제입니다.

new_data = [[0.03807591, 0.05068012, 0.06169621, 0.02187235, 0.0442235, 0.0503293, 0.059685, 0.04290283, 0.03582872, 0.01697279]]
predictions = model.predict(new_data)

위 코드에서 new_data는 예측할 데이터입니다. predict() 함수를 호출하여 해당 데이터에 대한 출력 값을 예측합니다.

모델 평가

마지막으로, 모델의 성능을 평가해야 합니다. scikit-learn에서는 평균 절대 오차(Mean Absolute Error, MAE)나 평균 제곱 오차(Mean Squared Error, MSE)와 같은 지표를 사용하여 모델의 예측 성능을 측정할 수 있습니다.

from sklearn.metrics import mean_absolute_error, mean_squared_error

# 예측
y_pred = model.predict(X)

# MAE 계산
mae = mean_absolute_error(y, y_pred)

# MSE 계산
mse = mean_squared_error(y, y_pred)

위 코드에서 mean_absolute_error() 함수와 mean_squared_error() 함수를 사용하여 평균 절대 오차와 평균 제곱 오차를 계산합니다.

결론

scikit-learn을 사용하면 회귀 분석을 쉽고 간편하게 수행할 수 있습니다. 데이터를 불러오고, 모델을 생성하고 훈련하며, 예측을 수행하고, 모델의 성능을 평가하는 과정을 살펴보았습니다. 이러한 기능을 활용하여 다양한 회귀 분석 문제를 해결할 수 있습니다.

참고 자료: