✳️ 선형회귀 (Linear Regression)
: 데이터를 가장 잘 대변하는 최적의 선을 찾는 과정
💡 이론을 위한 사례
- 키(Y)와 몸무게(X) 간의 데이터
weights = [87,81,82,92,90,61,86,66,69,69]
heights = [187,174,179,192,188,160,179,168,168,174]
- 키와 몸무게 간의 산점도와 예측 해볼 수 있는 선형 그래프
키와 몸무게의 분포를 보니 두 변수 사이에 일정하게 증가하는 패턴이 나타나는 것으로 가늠할 수 있다.
그래서 몸무게를 알면 키를 예측할 수 있지 않을까? 라고 생각할 수 있다.
실제로 각 값의 분포에 대해 선을 여러 경우로 그릴 수 있는데,
이때 가장 데이터의 분포를 잘 대변하는 선을 그리는 것이 선형회귀인 것이다.
🤔 여러 선들 중 가장 적합한 선은 어떻게 그릴까?
각각의 값에 대해 선과의 오차를 계산해서 가장 작은 오차를 가진 직선이 적절한 선!
(오차 : 직선과 점 사이의 거리)
- 방법 1) 실제 데이터 값 - 직선의 예측 값 = Error
- ①번 실제 데이터 :187, 예측 데이터 : 187 → Error : 0
- ②번 실제 데이터 : 174, 예측 데이터 : 181 → Error : -7
- ③번 실제 데이터 : 174, 예측 데이터 : 169 → Error : +5
- 방법2) 각각 error를 제곱하여 모두 더하기
- ①, ②, ③의 제곱 합 : 49 + 25 = 71
🤔 제곱을 하고 더하는 이유는?
error를 단순히 더하면 양수와 음수가 상쇄되어 정확한 계산이 이루어지지 않기 때문
- 방법3) 전체 error 합에 데이터의 개수로 나누기
- ①, ②, ③만 고려한다면 71 / 3 → 23.7
🤔 오차 제곱의 합을 데이터의 개수로 나눠주는 이유는?
만약에 데이터를 추가로 수집하게 된다면 (④, ⑤),
데이터가 늘어날 수록 에러는 자연스럽게 커질 수 밖에 없음
그래서 데이터의 개수로 나누어주는 것이다!
✳️ 선형회귀의 식 살펴보기
X = 종속변수, 결과변수
Y = 독립변수, 원인변수, 설명변수
- 통계학에서의 선형회귀 식
- β0 : 편향 (bias), 절편
- β1 : 회귀 계수, 기울기
- ε : 오차(error), 모델이 설명하지 못하는 Y의 변동성
- 머신러닝/딥러닝에서의 선형 회귀 식
- ω: 가중치
- b: 편향 (bias) → β0와 ε를 합침
◎ 머신러닝/딥러닝 모델에서 오차 항은 명시적으로 다루지 않음
결국 두 수식이 전달하려고 하는 의미는 같다!
회귀 계수 혹은 가중치를 값을 알면 X가 주어졌을 때 Y를 알 수 있다는 것!
앞으로 편의를 위해 X의 계수는 가중치라고 지칭한다!
✳️ 회귀분석 평가 지표
: 선형회귀를 수립했다면 해당 모델이 좋은지 평가하는 방법이 존재
💟 MSE(Mean Squared Error)
앞서서 에러를 가지고 가장 적절한 직선을 긋기 위해 진행 했던 방식이 에러 정의를 한 것이다.
이렇게 정의된 에러를 가지고 평가는 것이 MSE이고, 지표 결과가 작을 수록 좋은 모델이라고 평가된다.
다시 한 번 더 에러 정의방법을 짚고 넘어가면,
y값의 머리에 있는 ^ 표기를 hat이라고 하며, 예측(혹은 추정)한 수치에 표기
- 전체 식
- 기타 평가 지표
▶ RMSE : MSE에 루트를 씌워 제곱 된 단위를 다시 맞춤
▶ MAE : 절대 값을 이용하여 오차 계산
💟 R Square
:선형 회귀에만 해당되는 평가지표로, 전체 모형에서 회귀선으로 설명할 수 있는 정도이다.
지표의 값이 클수록 좋은 모델로 평가된다. 0~1까지로 나타내어지며 1에 가까울수록 좋은 모델 (%로 따지면, 0~100%)
- R Square의 정의
- 기초 용어
- yi: 실제 값
- ȳ: 평균 값
- ŷ: 예측, 추정값
- SST (총합) : yi - ȳ
- SSE (실제와 예측 차이) : yi = ŷ
- SSR (예측과 평균 차이) : ŷ - ȳ
- 예시로, 3번의 데이터 값은 SST = 174^2, SSR = 169^2
- 해당 값에 대한 설명력 = 94%
- 단, 모든 데이터에 대해서 위 계산을 수행
'📒 Today I Learn > 🤖 Machine Learning' 카테고리의 다른 글
[머신러닝 기초] 로지스틱회귀(분류 분석) 이론 (0) | 2024.08.12 |
---|---|
[머신러닝 기초] 선형회귀 정리 (0) | 2024.08.09 |
[머신러닝 기초] 다중선형회귀 실습 (0) | 2024.08.09 |
[머신러닝 기초] 단순선형회귀 실습 (0) | 2024.08.09 |
[머신러닝 기초] 머신러닝? (0) | 2024.08.09 |