지난 글에서와 같이, 선형회귀에서는 예측값과 실제값 사이의 차이,
즉 오차들을 보고 모델의 성능을 결정한다고 언급했습니다.
이번에는 이 오차들에 대한 부분입니다.
SSR과 SST에 대한 용어는 공식이 들어있지 않는한,
용어 자체에 대한 정의가 쟁점인 것 같습니다.
용어에 대해서 탐구하는 것이 머신러닝이나 회귀분석에서
없어선 안될 요소는 아니기 때문에, 이런 것이 존재한다는 것만
이해하고 넘어가겠습니다.
필자는 아래 티스토리(씩씩한 IT 블로그)님의 글을 참고했습니다.
https://sosoeasy.tistory.com/371
R² 의 공식에 대하여
먼저 SSE부터 볼까요
천천히 설명해보겠습니다.
SSE는 Sum of Squares estimate of Error 입니다.
일반적으로 설명이 안되는 변동이라고 합니다.
SSR은 Sum of Squares Regression 입니다.
일반적으로 설명할 수 있는 변동 이라고 합니다.
SST는 Sum of Squares Total 입니다.
같은 의미로, SSE와 SST의 합 입니다.
즉 총변동 입니다.
결정계수 R²는 이러한 SSR을 SST로 나눈 것입니다.
분산 기반으로 예측의 성능을 평가하는 것으로, 1에 가까울 수록
예측 정확성이 높은 것이라고 했죠?
첫번째 시간의 보험액수 표 분석으로 돌아가,
이제 독립변수별 계수를 확인해보겠습니다.
독립변수별 계수 확인 .coef_
이전 시간에 모델을 생성했었습니다.
(지난번 정의를 다시 소환합니다)
model = LinearRegression()
numpy를 임포트하고, 독립변수별 계수를 확인합니다.
model.coef_
array([ 261.93862039, 339.53866692, 607.57516772, 23878.00428688,
42.41751384, -394.0166685 , -1073.15482164, -973.01969646])
이것을 독립변수별로 시리즈(series)를 통해 나눠보겠습니다.
pd.Series(model.coef_, index = X.columns)
age 261.94
bmi 339.54
children 607.58
smoker 23878.00
sex_male 42.42
region_northwest -394.02
region_southeast -1073.15
region_southwest -973.02
dtype: float64
y절편을 구합니다.
model.intercept_
-12258.305052625143
자 이것을 공식으로 표현해 보겠습니다.
261.94 × age + 339.54 × bmi + 607.58 × children + 23878.00 × smoker + 42.42 × sexmale + (−394.02) × regionnorthwest + (−1073.15) × regionsoutheast + (−973.02) × regionsouthwest − 12258.305052625143
모델의 계수를 해석할 때 '부호'의 영향에 유의하셔야 합니다.
부호와 상관없이, 계수의 절대값이 클수록 영향이 크다고 할 수 있고
절대값이 0에 가까울 수록 영향력이 거의 없다고 할 수 있습니다.
여러 계수들을 서로 비교할 때, 단순히 절대값이 더 크면 영향이 더 크다고
볼 수 없습니다. 변수마다 스케일이 다르기 때문입니다.
아무튼, 이 부분을 명료하게 해주는 작업이 스케일링 작업입니다.
모델 배포
실 상황에서 선형회귀 분석은 모델배포 까지 완성되야 합니다만
필자의 실력이 그렇게 까지 우수하지 못한 관계로 간단하게 바꾸겠습니다.
streamlit으로 구현하여
머신러닝을 구현한 사이트를 게재합니다.
자세한 과정은 지면이 너무 길어져서 생략하겠습니다.
다음번에는 선형회귀의 직선인 회귀분석을 곡선형태로 바꿔주는
로지스틱 회귀(Logistic Regression)을 보겠습니다.
'머신러닝 > 지도학습' 카테고리의 다른 글
[Machine Learning] 결정트리_회귀(Regression) 실습 사례- 보험비 (0) | 2022.12.22 |
---|---|
[Machine Learning] 결정트리 알고리즘 분류 실습사례_wine (0) | 2022.12.22 |
[Machine Learning] KNN 알고리즘 실습사례_wine 분류2_solution (0) | 2022.12.21 |
[Machine Learning] KNN 알고리즘 실습사례_wine 분류 (0) | 2022.12.19 |
Machine Learning ep.1 선형회귀 기초개념 & 마을의 보험료 예측 (0) | 2022.12.15 |