지난 글에서와 같이, 선형회귀에서는 예측값과 실제값 사이의 차이,
즉 오차들을 보고 모델의 성능을 결정한다고 언급했습니다.
이번에는 이 오차들에 대한 부분입니다.
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으로 구현하여
머신러닝을 구현한 사이트를 게재합니다.
자세한 과정은 지면이 너무 길어져서 생략하겠습니다.
app · Streamlit
[링크 전문]
dla9944-streamlit-test-ml-modelapp-x9rwf6.streamlit.app
다음번에는 선형회귀의 직선인 회귀분석을 곡선형태로 바꿔주는
로지스틱 회귀(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 |