끄적끄적

2025.06.30 머신러닝 세션 1 본문

[스파르타]내일배움캠프 데이터 분석 트랙/Session

2025.06.30 머신러닝 세션 1

kminx 2025. 7. 2. 19:21
튜터
임정 튜터님

1️⃣ 선형 회귀의 사례

갓 1차 방적식을 배운 학생이라 가정하고, 선형회귀를 적용해보자.

 

📌 몸무게와 키 상관관계

방정식을 배운 머신이는 몸무게와 키의 데이터를 획득했다. 일정하게 증가하는 패턴이 있어서 미리 몸무게를 알면 키를 알 수 있을 것이라고 생각했다.

 

키와 몸무게 간의 데이터

  • weights = [87, 81, 82, 92, 90, 61, 86, 66, 69, 69]
  • heights = [187, 174, 179, 192, 188, 160, 179, 168, 168, 174]

키와 몸무게 간의 산점도

중학교 1학년 때 1차 방정식을 배운 머신이는 키와 몸무게에 대한 데이터가 너무 많아서 무슨 두 점을 이어 직선을 만들지 고민 되었지만, 수 많은 점들을 관통하는 여러 개의 직선을 많이 그려보기로 했다.

 

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


-> 머신이는 3개의 그래프를 그려보니, 아무래도 초록색, 파란색 직선보다는 빨간색 그래프가 적절한 것 같다. 하지만 이렇게 대강 직선을 그리다 보면 적절한 그래프를 찾기 어려울 것 같아 고민이 빠졌다.

 

 

📌 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

 

 

2️⃣ 회귀분석 평가 지표

선형 회귀가 수립되면 해당 모델이 좋은지 평가하는 평가 지표가 필요하다.

 

 

📌 회귀 평가지표 - MSE

머신이가 똑똑하게 에러를 정의한 것을 바탕으로 회귀식의 평가지표를 만들어보겠습니다. 머신이가 정리한 내용을 다시 써볼까요?

 

  • 에러 정의방법
    • 방법1) 에러 = 실제 데이터 - 예측 데이터 로 정의하기
    • 방법2) 에러를 제곱하여 모두 양수로 만들기, 다 합치기
    • 방법3) 데이터만큼 나누기
  • 에러 정의 방법 수식화
    • 방법1) \(\varepsilon = y_i - \hat{y_i}\)
    • 방법2) \(\sum\limits_{i=1}^n (y_i - \hat{y_i})^2\)
    • 방법3) \(\frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}\)

이 전체 과정은 Mean Squared Error(MSE)라고 정의할 수 있다.

 

 

기타 평가 지표

  • RMSE: MSE에 Root를 씌워 제곱 된 단위를 다시 맞추기
    \(
    RMSE = \sqrt{\frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}}
    \)
  • MAE: 절대 값을 이용하여 오차 계산하기
    \(
    MAE = \frac{1}{n}\sum\limits_{i=1}^n{\left\vert y_i - \hat{y_i} \right\vert}
    \)

 

 

3️⃣ 선형회귀 적용

선형회귀 실습

식당에서 파트타임으로 일하고 있는 머신이는 이번에는 tip 데이터를 가지고 적용해보기로 했습니다. 돈을 많이 벌고 싶었던 머신이는 전체 금액(X)를 알면 받을 수 있는 팁(Y)에 대한 회귀분석을 진행


📌 자주 쓰는 함수