Machine Learning with Tensorflow) 3. Multi-variable Regression


2차원 상에서 data를 fitting하는 것이 아니라 n차원 상에서 data를 fitting하려면 어떻게 해야할 까?

차원을 물론 높여주면 된다.
H(x_1, x_2) = w_1 * x_1 + w_2 * x_2 + b와 같은 식으로
input data는 x_1, x_2를 주어 값을 예측하는 것이다.
Error Function(Cost Function) 역시 Linear Regression과 비슷하게 설정하여 이 Cost value가 최소화되도록 H(x)를 학습시키면 된다.

Matrix를 쉽게 계산하기 위하 위 그림과 같이 b를 따로 더해주는 것이 아니라 Matrix에 아예 b값을 넣어 y값을 구하는 경우도 있다. 이를 코딩해보면 다음과 같다.


먼저 Text를 Parsing하여 Input data를 float형으로 바꾸어준다.
그 다음 W에 random_uniform을 사용하여 data에 임의의 초기값을 설정해준다.
W와 X_data를 곱해주는 gop node와 error에 해당하는 cost node를 만들어주고 학습 노드인 train node를 만든다. 이 때 train은 GradientDescentOptimizer를 이용하여 cost가 최소가 되도록 train한다.

그 결과값은 다음과 같다.




댓글

가장 많이 본 글