[머신러닝]머신러닝의 이해와 라이브러리 활용 기초_회귀분석 - 선형회귀 이론

Arin lee·2024년 11월 18일
0

contents

  • 선형회귀의 사례
  • 선형회귀 이론
  • 회귀분석 평가 지표

summary

  1. 선형회귀의 사례
  • 몸무게와 키 상관관계를 찾아내기
    :방정식을 배운 머신이는 몸무게와 키의 데이터를 획득했다. 일정하게 증가하는 패턴이 있어서 미리 몸무게를 알면 키를 알 수 있을 것이라고 생각했다.
    -키와 몸무게 간의 데이터
weights = [87,81,82,92,90,61,86,66,69,69]
heights = [187,174,179,192,188,160,179,168,168,174]

-키와 몸무게 간의 산점도

->수 많은 점들을 관통하는 여러 개의 직선을 많이 그려봄

*어떤 직선이 현재 데이터를 잘 “설명”한다고 할 수 있을까?

  • Data Scientific 한 발상
    :직선과 점의 간의 거리를 계산해보자. 이를 Error 라고 정의하고 최소의 Error인 직선을 그리면 된다고 생각해봄(오차 최소화)
  • 방법1) 실제 데이터 값 - 직선의 예측 값 = Error
    - ①번 실제 데이터:187, 예측 데이터: 187 Error: 0
    - ②번 실제 데이터: 174, 예측 데이터: 181 Error: -7
    - ③번 실제 데이터: 174, 예측 데이터 : 169 Error: +5

    +하지만 문제 발생. 선분을 기준으로 위에 있는 데이터의 거리를 계산하면 양수가 되고, 반대로 아래에 있는 것은 음수가 된다. 이 경우 모든 에러를 합치면 서로 상쇄되는 문제가 있었다. 따라서, 음수를 양수로 만들기 위해 제곱을 하는 방법이 있다는 걸 생각해낸다.
  • 방법2) 각각 Error를 제곱하여 모두 더하기
    - ①, ②,③의 제곱 합: 49 +25 = 71

    +문제는 하나 더. 나중에는 데이터를 더 수집할 예정인데, 데이터가 더 늘어날 수록(④,⑤) 에러는 자연스럽게 값이 커질 수 밖에 없다! 그래서 데이터의 갯수로 나누기로 했다. 또한 데이터가 제곱 되어 있던 것을 줄이기 위해 root를 씌우기로 했다.
  • 방법3) 전체 에러 합에 데이터의 갯수로 나누기(오차합 평균)
    • ①, ②,③만 고려한다면 71/3 → 23.7
  1. 선형회귀 이론
    📌 선형회귀 용어 정리
  • 공통

    • Y는 종속 변수, 결과 변수
    • X는 독립 변수, 원인 변수, 설명 변수
  • 통계학에서 사용하는 선형회귀 식

    Y=β0+β1X+εY = \beta_0 + \beta_1X + \varepsilon
    • β0\beta_0: 편향(Bias)
    • β1\beta_1: 회귀 계수
    • ε\varepsilon: 오차(에러), 모델이 설명하지 못하는 Y의 변동성
  • 머신러닝/딥러닝에서 사용하는 선형회귀 식

    Y=wX+bY = wX + b
    • ww: 가중치

    • b: 편향(Bias)

      *머신러닝/딥러닝 모델에서 오차 항은 명시적으로 다루지 않음

  • 결론:
    회귀 계수 혹은 가중치를 값을 알면 X가 주어졌을 때 Y를 알 수 있다. 우리는 편의를 위해 X의 계수를 가중치라고 지칭!

  • 예시:
    몸무게와 키 데이터를 이용해서 선형회귀 식을 만들면, y = 0.86x + 109.37 이 나온다. 이 뜻은, 1kg 증가할때마다 키가 0.86 cm 증가한다는 것으로 해석 할 수 있다.

⁉️ 질문

  • ε\varepsilon은 왜 따로 있는건가요?
    :우리가 몸무게와 키에 대한 선형회귀식을 만들었지만, 해당 식이 모든 데이터를 완벽하게 설명할 수 없다. 이때 완벽한 설명이란 실제 데이터값 = 예측 데이터. 다시 말해 에러(②,③)의 값을 표현하기 위해서 있는 것.
  • 가중치는 어떻게 구하죠?
    :데이터가 충분히 있다면 가중치를 “추정”할 수 있다. 하지만 심화 과정이라 이 부분은 현재는 그래프를 수도 없이 그려서 에러를 “최소화”하는 직선을 구한다고 생각하기!
  1. 회귀분석 평가 지표
    ☑️ 회귀 평가지표 - MSE
  • 에러 정의방법
    • 방법1) 에러 = 실제 데이터 - 예측 데이터 로 정의하기
    • 방법2) 에러를 제곱하여 모두 양수로 만들기, 다 합치기
    • 방법3) 데이터만큼 나누기
  • 에러 정의 방법 수식화
    - 방법1) ε=yiyi^\varepsilon = y_i - \hat{y_i}
    - 방법2) i=1n(yiyi^)2\sum\limits_{i=1}^n (y_i - \hat{y_i})^2
    - 방법3) i=1n(yiyi^)2n\frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}
    📌y값의 머리에 있는 ^ 표기를 hat이라고 하며, 예측(혹은 추정)한 수치에 표기한다.
  • Mean Squared Erorr(MSE)라고 정의

    📌 숫자 예측 문제는 모델을 머신러닝이든 딥러닝이든 어떤 모델을 만들어도 위 MSE 지표를 최소화하는 방향으로 진행하고 평가!
  • 기타 평가 지표
    • RMSE: MSE에 Root를 씌워 제곱 된 단위를 다시 맞추기
      RMSE=i=1n(yiyi^)2nRMSE = \sqrt{\frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}}
    • MAE: 절대 값을 이용하여 오차 계산하기
MAE=1ni=1nyiyi^MAE = \frac{1}{n}\sum\limits_{i=1}^n{\left\vert y_i - \hat{y_i} \right\vert}

☑️ 선형회귀만의 평가 지표 - R Square
:R Square는 전체 모형에서 회귀선으로 설명할 수 있는 정도

  • 기초 용어
    • yiy_{i}: 특정 데이터의 실제 값
    • yˉ\bar{y}: 평균 값
    • y^\hat{y}: 예측, 추정한 값
  • R Square의 정의
    R2=SSRSST=SSRSSR+SSER^2 = \frac{SSR}{SST} = \frac{SSR}{SSR+SSE}

insight

통계학에서 회귀분석을 배웠을 당시 배웠던 기초 개념인데, 머신러닝에서는 오차에 대한 점을 일단 제외한다는 것을 추가적으로 배웠고, 같은 개념이지만 다른 식으로 접근하여 배워서 약간은 새로운 느낌이었다.

profile
Be DBA

0개의 댓글