본문 바로가기
Machine Learning/scikit-learn

[회귀] LinearRegression (선형 회귀 모델) & 회귀 평가 지표

by ISLA! 2023. 8. 15.

 

LinearRegression 모델

▶︎ 선형 회귀란?

  • 예측하고자 하는 종속변수 y와 독립변수 x의 관계를 가장 잘 나타내는 선(line)을 구하는 회귀 분석 방법
  • 즉, 선형회귀모델은 '회귀계수(regression coefficient)를 선형 결합으로 표현할 수 있는 모델
  • 주로 수치 예측 문제에 사용됨
  • 선형모델은 파라미터가 선형식으로 표현하기 때문에 유연성이 떨어짐
  • 하지만, 파라미터를 추정하거나 모델을 해석할 때 비선형 모델에 비해 유리하다는 특징이 있음

 

  • 위 그래프에서 빨간 선(Linear regression)은 파란색 점들로 표현된 x와 y의 관계를 잘 나타낸다.
  • 이처럼 선형회귀분석을 통해 두 변수의 관계를 확인할 수 있다.

 

▶︎ 사이킷런 linear_model 모듈

  • 사이킷런의 linear_model 모듈은 다양한 종류의 선형 기반 회귀를 클래스로 구현해 제공한다.
  • 선형 모델 중, 규제가 적용되지 않은 선형 회귀를 사이킷런에서 구현한 클래스가 LinearRegression이다.
  • LinearRegression 클래스는 RSS(예측값과 실제 값의 제곱합)를 최소화해 OLS(Ordinary Least Squares) 추정 방식으로 구현한 클래스이다.
from sklearn.linear_model import LinearRegression

# 모델 정의
lunch_model = LinearRegression()

 

▶︎ 입력 파라미터

fit_intercept * 디폴트 : True
* intercept(절편) 값을 계산할 것인지 말지를 지정
* False 로 지정시 절편이 0 이 됨
normalize * 디폴트 : False
* fit_intercept가 False인 경우, 이 파라미터는 무시됨
* True 로 지정시, 회귀를 수행하기 전에 입력 데이터 세트를 정규화

 

▶︎ 회귀 평가 지표

  • cross_val_score, GridSearchCV 에서 평가 시 사용되는 scoring 파라미터 적용 값 
  • 사이킷런의 scoring 함수는 값이 클수록 좋은 평가 결과로 자동 평가하기 때문에 'neg' , 즉 -1을 곱한 음수 값으로 보정을 해줌
평가 방법 사이킷런 평가 지표 API Scoring 함수 적용 값
MAE metrics.mean_absolute_error 'neg_mean_absolute_error'
MSE metrics.mean_squared_error 'neg_mean_squared_error'
RMSE metrics.mean_squared_error 를 그대로 사용하되 squared 파라미터를 False로 설정 'neg_root_mean_squared_error'
MSLE metrics.mean_squared_log_error 'neg_mean_squared_log_error'
metrics.r2_score 'r2'

 

728x90