본문 바로가기

머신러닝, 딥러닝

다중 선형 회귀(Multiple Linear Regression)

단순 선형 회귀를 배우면서

여러 feature를 사용해서 선형 회귀를 할 수 있을까? 하면서

일단 PCA를 사용해 봤는데... 여러 피쳐를 사용하는 방법은 생각보다 간단했다. 

Train, Test의 feature에 리스트로 넣어주면 된다. 

X_train = train[['featureA', 'featureB' 'featureC']]
X_test = test['featureA', 'featureB' 'featureC']
y_train = train['target']
y_test = test['target']
model = LinearRegression()
model.fit(X_train, y_train) #모델 fit
train_y_pred = model.predict(X_train)
test_y_pred = model.predict(X_test)

 

이렇게 슬라이싱을 해도 작동한다. (리스트를 넣어주는 거니까.)

X_train = train[df.columns[3:]]

 

테스트 데이터셋의 MSE 최소화하는 방법에 대한 고찰:

MSE : Mean Squared Error.

가장 일반적이고 직관적인 에러 지표다.

관측된 값에서 예측값을 뺀 뒤, 제곱한 값을 평균 낸 값이다. 값은 낮을수록 좋다.

스케일에 의존적이라는 단점이 있다.

 

학습시키는 피쳐가 타겟 피쳐와 연관성이 높을 때, 숫자가 늘어날수록 에러는 줄었으나

단일 값(ID, 날짜 등)까지 학습시켰더니 MSE는 오히려 늘었다.

 

그리고 단일값, 타깃 피쳐를 제외한 모든 피쳐를 학습시켰을 때의 MSE보다

어느 정도 피쳐만 학습시킨 MSE가 더 낮았다. 

 

여기서도 주성분분석의 원리가 적용되는 걸까?

모든 데이터가 다 중요하진 않다.

꼭 필요한 것만 골라 학습시키는 게 예측값과 실제의 오차를 더 줄일 수 있는 방법인 듯싶다.