机器学习(一)Linear Regression

###概括
作为一个机器学习的新手,最近在上Coursera上Ng老师的机器学习课程,这个课作为入门还是挺不错的,讲得浅显易懂,对学生的数学知识也有一定的补习。

相对的,这门课相当于是斯坦福CS229这门课的简单版,如果有想要更深入的了解,可以直接看CS229,网易公开课上有视频。

###前三周
看完前三周的课,对这门课的第一部门也算告一段落。

前三周的主要内容是

#####模型:

  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)

#####解决(学习)方法

  • 梯度下降(Gradient Descent)
  • 一般方程(Normal Equation)
  • 高级优化(advanced optimization)

####线性回归(Linear Regression)

经典的例子,对房价的预估

Living area(feet^2) bedroom Price(1000$)
2104 3 400
1600 3 330
2400 3 369
1416 2 232
3000 4 540

第一列是房屋面积(x1),第二列是房间数(x2),第三列是价格(y)

则假定(hypotheses)房屋价格满足

$$
h_{\theta}(x)=\theta_{0}+\theta_{1}x^{1}+\theta_{2}x^{2}
$$

一般为了简便运算,我们人为引入一个变量x0

$$
h_{\theta}(x)=\theta_{0}x^{0}+\theta_{1}x^{1}+\theta_{2}x^{2}
$$

这样的话,函数h(θ)就满足线性关系

$$
h_{\theta}=\sum_{i}^{m}\theta_{i}x_{i}=\theta^{T}x
$$

此时,如果我们给出一个含有m个数据的训练集D

$$
D=(x^{1},y^{1}),(x^{2},y^{2})…({x^{m},y^{m}})
$$

我们该如何来选择参数θ?
最能想到的就是让我们假设的函数h(θ)尽可能的接近训练集中的y
为了衡量这个相近的程度,我们引入一个代价函数

$$
J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}
$$

用于衡量对于一组输入x来说参数θ的表现。
而我们学习的目的就是要让代价函数J(θ)最小,由此我们可以对θ求导,求得极小值,然后通过剃度下降的方式来叠加到θ上

$$
\theta_{j}:=\theta_{j}-\alpha*\frac{1}{m}\sum_{m}^{i=1}(h_{\theta}(x^{(i)}-y^{(i)})x_{j}^{(i)}
$$

其中α是作为学习因子,控制递增速度用。

通过梯度下降的的方法来得到一组满足min(J(θ))的θ,则可以得到一组图像
img

最终,如果我们有一组新的未知的数据Xn,则我们可以通过我们的假设函数(hypotheses)

$$
h_{\theta}=\sum_{i}^{m}\theta_{i}x_{i}=\theta^{T}x
$$

可以得到一个假设值,这就是我们对y值的预测。