코사장의 코딩 놀이터

머신러닝

선형 회귀에 대한 기본 개념 및 그 적용

코사장_ 2023. 5. 11. 19:46
반응형

1. 선형 회귀의 기본 개념

선형 회귀는 데이터를 가장 잘 설명하는 선형 방정식을 찾는 통계학의 방법입니다. 이를 통해 종속 변수와 독립 변수 사이의 관계를 모델링할 수 있습니다. 선형 회귀는 주로 예측, 시계열 분석, 인과 관계 분석 등에 사용됩니다.

 

2. 선형 회귀의 종류

선형 회귀에는 크게 단일 선형 회귀와 다중 선형 회귀가 있습니다.

 

2.1 단일 선형 회귀

단일 선형 회귀는 하나의 독립 변수와 하나의 종속 변수 사이의 선형 관계를 모델링합니다. 이는 아래의 방정식으로 표현될 수 있습니다.

y = a*x + b

여기서 y는 종속 변수, x는 독립 변수, a는 기울기, b는 y절편을 나타냅니다.

 

2.2 다중 선형 회귀

다중 선형 회귀는 두 개 이상의 독립 변수와 하나의 종속 변수 사이의 선형 관계를 모델링합니다. 이는 아래의 방정식으로 표현될 수 있습니다.

y = a1*x1 + a2*x2 + ... + an*xn + b

여기서 y는 종속 변수, x1, x2, ..., xn은 독립 변수, a1, a2, ..., an은 각 독립 변수의 계수, b는 y절편을 나타냅니다.

 

3. 선형 회귀의 예제

선형 회귀는 Python의 scikit-learn 라이브러리를 통해 쉽게 구현할 수 있습니다. 아래는 단일 선형 회귀와 다중 선형 회귀의 예제입니다.

 

3.1 단일 선형 회귀 예제

from sklearn.linear_model import LinearRegression

X = [[1], [2], [3], [4], [5]]
y = [2, 4, 6, 8, 10]

model = LinearRegression()
model.fit(X, y)

print(model.predict([[6]]))

3.2 다중 선형 회귀 예제

from sklearn.linear_model import LinearRegression

X = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]]
y = [3, 5, 7, 9, 11]

model = LinearRegression()
model.fit(X, y)

print(model.predict([[6, 7]]))

4. 선형 회귀 분석 방법

선형 회귀 모델의 성능은 주로 결정 계수(R^2), 평균 제곱 오차(MSE), 평균 절대 오차(MAE) 등을 통해 측정됩니다.

 

4.1 결정 계수(R^2)

결정 계수는 모델이 데이터를 얼마나 잘 설명하는지를 나타내는 지표입니다. 결정 계수의 값은 0부터 1 사이이며, 1에 가까울수록 모델이 데이터를 잘 설명하고 있다는 것을 의미합니다.

from sklearn.metrics import r2_score

y_pred = model.predict(X)
r2 = r2_score(y, y_pred)
print(r2)

4.2 평균 제곱 오차(MSE)

평균 제곱 오차는 실제 값과 예측 값의 차이를 제곱하여 평균한 값입니다. MSE의 값이 작을수록 모델의 성능이 좋다는 것을 의미합니다.

from sklearn.metrics import mean_squared_error

y_pred = model.predict(X)
mse = mean_squared_error(y, y_pred)
print(mse)

4.3 평균 절대 오차(MAE)

평균 절대 오차는 실제 값과 예측 값의 차이를 절대값으로 변환하여 평균한 값입니다. MAE의 값이 작을수록 모델의 성능이 좋다는 것을 의미합니다.

from sklearn.metrics import mean_absolute_error

y_pred = model.predict(X)
mae = mean_absolute_error(y, y_pred)
print(mae)

5. 마치며

 

선형 회귀는 가장 기본적인 예측 모델 중 하나입니다. 다양한 분야에서 널리 사용되며, 기본 개념부터 실제 구현까지 상대적으로 이해하기 쉽습니다. 하지만 선형 회귀는 독립 변수와 종속 변수 사이의 관계가 선형이라는 가정을 전제로 하기 때문에, 이 가정이 맞지 않는 경우에는 다른 모델을 고려해야 합니다. 이러한 경우, 로지스틱 회귀, 서포트 벡터 머신, 랜덤 포레스트, 신경망 등 다양한 모델을 사용할 수 있습니다.

반응형