# ML : Mean Normalization


사실 별로 어려운 문제도 아닌데, 계속 헷갈려서 포스팅 해보려고 한다.
우선 내용을 살펴보면 다음과 같다.

  • h(x) = x0 + (theta1)x1 + (theta2)x2
  • x1은 중간고사 점수, x2는 중간고사 점수의 제곱을 의미
  • feature scaling을 이용하여 구하라 (구하는 방법도 옆에 다 써있음)
그.런.데
이 문제를 왜 계속 틀렸는가.. 내 공부가 부족했기 때문이겠지..
결론은 '계산 실수'
왜 소수점 2째자리까지 반올림을 해야하는데, 2째자리에서 버림을 하고 있던것인가;;

무튼 feature scaling을 이용하면, 주어진 x 값을 평균값(mean)으로 뺀 차이 값을 이용하여 값의 전체 범위를 0에 수렴하도록 할 수 있다. 이러면 계산에 필요한 값의 범위를 현저하게 줄일 수 있기 때문에 매우 유용한 방식이 된다.

결국 feature scaling으로 다시 만들어진 값은
  • -0.5 <= x1 <= 0.5
  • -0.5 <= x2 <= 0.5 
가 된다.
Andrew 교수님께서는 3배씩 증가/감소 시키는 것이 좋다고 하셨지만, 그건 추후의 문제고.

이를 이용한 계산 식은 다음과 같다.

x1 := (x1 - 평균 값) / (최대 값 - 최소 값)

문제에서는 x2(4)를 구하라고 하였다. x(4)는 69, 4761이 될 것이고, 이 중 x2는 4761이 된다.
그러므로, 결과 값 x는 다음과 같다.
x = (4761 - 6675.5) / (8836 - 4761) = - 0.469 = - 0.47


댓글