사이킷런 LinearRegression 클래스
LnearRegression 클래스는 예측값과 실제 값의 RSS(Residual Sum of Squares)를 최소화해 OLS(Ordinary Least Squares) 추정 방식으로 구현한 클래스입니다.
LinearRegression 클래스는 fit() 메서드로 X, y 배 열 을 입력받으면 회귀 계수(Coefficients)인 W를 coef_ 속성에 저장합니다.
선형 회귀의 다중 공선성 문제
일반적으로 선형 회귀는 입력 피처의 독립성에 많은 영향을 받습니다. 피처간의 상관관계가 매우 높은 경우 분산이 매우커져서 오류에 매우 민감해집니다. 이러한현상을 다중공선성 (muIti-colIinearity) 문제 라고 합니다. 일반적 으로 상관관계가 높은 피처가 많은 경우 독립적인 중요한 피처만 남기고 제거하거나 규제를 적용합니다.
회귀 평가지표
사이킷런 회귀 평가 API
- 사이킷런은 아쉽게도 RMSE를 제공하지 않습니다. RMSE를 구하기 위해서는 MSE 에 제곱근을 씌워서 계산하는 함수를 직접 만들어야 합니다.
- 다음은 각 평가 방법에 대한 사이킷런의 API 및 cross_val_score 나 GridSeaerchCV 에서 평가 시 사용되는 scoring 파라미터의 적용 값입니다.
cross_val_score : MSE를 리스트 형태로 반환해 줌
사이킷런 Scoring 함수에 회귀 평가 적용 시 유의 사항
- MAE의 사이킷런 scoring 파라미터값은 'neg_mean_absolute_error' 입니다 이는 Negative(음수) 값을 가진다는 의미인데, MAE는 절댓값의 합이기 때문에 음수가 될 수 없습니다.
- Scoring 함수에 'neg_mean_absolute_error를 적용해 음수값을 반환하는 이유는 사이킷런의 Scoring 함수가 score 값이 클수록 좋은 평가결과로 자동평가하기 때문입니다. 따라서 -1을 원래의 평가지표 값에 곱해서 음수(Negative)를 만들어 작은 오류 값이 더 큰숫자로 인식하게 합니다. 예를 들어 10 > 1 이지만 음수를 곱하면 -1 > -10 이 됩니다.
- metrics.mean_absolute_error( )와 같은 사이킷런 평가 지표 API는 정상적으로 양수의 값을 반환합니다. 하지만 Scoring 함수의 scoring 파라미터 값 'neg_mean_absolute_error’ 가 의미하는 것은 -1* metrics.mean_absolute_error()이니 주의가 필요합니다.
'Machine Learning > 머신러닝 완벽가이드 for Python' 카테고리의 다른 글
ch.5.5 다항회귀 (Polynomial Regression) (0) | 2022.10.13 |
---|---|
ch5.3_Gradient_Descent, ch5.4_LinearModel (1) | 2022.10.12 |
ch.5.3 경사하강법 - 비용최소화하기 (0) | 2022.10.12 |
ch.5.2 단순 선형 S회귀를 통한 회귀의 이해 (0) | 2022.10.12 |
ch.5.1 회귀 소개 (0) | 2022.10.12 |