1. 선형 회귀(Linear Regression)
공부를 많이 할수록 시험 점수가 오르거나 운동을 많이 할수록 체중이 빠지듯이, 종속 변수와 설명 변수가 선형성을 띌 때 선형 회귀분석을 한다고 합니다...
성적 |
공부시간 |
90 |
44 |
35 |
12 |
48 |
20 |
12 |
4 |
예를 들어, 공부시간과 성적에 대한 데이터가 있습니다. 딱보면 공부를 많이 할수록 성적이 높아지네요,, 공부를 많이 합시다
이제 우린 몇 시간 공부하면 점수가 얼마나 나올지 예측해볼 겁니다.
그래프 상에선 다음과 같이 표현됩니다. 선형적으로 표현되네요. 일단 그러면 하나의 가정을 해봅시다.
까만 선을 그었습니다. 보이시나요?? 이제 저 가정에 따라 예측해보겠습니다. predict요
저 까만 선을 H(x) = Wx + b 라고 해볼까요! 그림을 보고 W, b를 구해보자면,
W = 9/5, b = 0이 되네요
이게 얼마나 잘 맞는 가정인지 확인하기 위해, 실제 데이터와의 오차를 구할 겁니다.
오차는 파란 동그라미와 까만 선의 차이가 되겠지요
실제 데이터의 성적을 y라고 한다면,
오차의 합 = Σ(H(x) - y)2 이 되겠군요. 모든 데이터의 실제값과 예측 값의 차이를 제곱한 뒤, 더했습니다.
제곱하는 이유는 차이를 더할 때 어떤 것은 마이너스 혹은 플러스가 돼서 오차가 0이 될 수도 있고, 제곱을 하면 차이가 클수록 그 오차값이 더욱 명확해지기 때문입니다.
이제 이 식을 cost function이라고 부르겠습니다.
Hypothesis = Wx + b
Cost function = 1/N * Σ(H(x) - y)2
이제 실제로 계산을 해볼까요,
실제 값 | 90 | 35 | 48 | 12 |
예측 값 | 79.2 | 21.6 | 36 | 7.2 |
오차(차이를 제곱) | 104.4 | 179.56 | 144 | 23.04 |
Cost = 451 / 4 = 112.75
와우,, cost가 어마어마하네요. 그만큼 제가 엉터리로 가정을 짰다는 말입니다.
엉터리 가정을 고치려면, W와 b를 업데이트해야 합니다.
아까의 cost function을 다시 보면, 1/N* Σ(H(x) - y)2 = 1/N * Σ(W·x + b - y)2가 됩니다.
즉, Cost(W)는 W에 대한 2차 함수가 됩니다.
대략 이런 식이 될 겁니다. W가 9/5일 때, 112.75의 cost가 발생합니다.
이제 우리는 cost가 최소가 되도록, 2차원 그래프 상에서 최저점을 찍도록 W를 업데이트할 겁니다. 자동적으로요