집 넓이로부터 집 가격을 추정하는 $h_\theta(x)$ 를 Gradient Descent를 사용하여 찾아 봅니다.
- 필요한 package들을 import합니다.
- 집의 data를 얻어오는 함수를 정의합니다.
- 집의 넓이로 집의 가격을 추정하는
$h_\theta(x)=\theta_0+\theta_1x$ 함수를 정의합니다.
- cost를 계산하는 함수를 정의합니다.
$J(\theta_0, \theta_1)=\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}$ $h_\theta(x)=\theta_0+\theta_1x$
- x_data, y_data로 그래프를 그리고,
$h_\theta(x)=\theta_0+\theta_1x$ 그래프를 그리는 함수를 정의합니다.- 그래프에 cost의 contour map도 표시합니다.
- 그래프에 cost정보도 표시합니다.
$\theta_0$ 와$\theta_1$ 를 Cost가 약간 작아지는 방향으로 변경해서 return하는 함수를 정의합니다.$temp0 := \theta_0-\alpha\frac{\partial }{\partial \theta_0}J(\theta_0,\theta_1)$
$temp1 := \theta_1-\alpha\frac{\partial }{\partial \theta_1}J(\theta_0,\theta_1)$
$\theta_0 := temp0$
$\theta_1 := temp1$ $\frac{\partial }{\partial \theta_0}J(\theta_0,\theta_1)=\lim_{h \to 0}\frac{J(\theta_0+h,\theta_1)-J(\theta_0,\theta_1)}{h}$
$\frac{\partial }{\partial \theta_1}J(\theta_0,\theta_1)=\lim_{h \to 0}\frac{J(\theta_0,\theta_1+h)-J(\theta_0,\theta_1)}{h}$
- Gradient Descent를 사용하여 cost가 가장 작아지는
$\theta_0$ 와$\theta_1$ 을 찾습니다.- theta0, theta1, learning_rate를 다양하게 설정해 보며 Gradient Descent가 어떻게 작동하는지 살펴봅니다.
- 집의 넓이, 집의 가격, 집의 추정 가격을 print합니다.
토론이 없습니다