目的
对于给定的训练集合(training set) x 和 y , 其中x为m * n 的矩阵 , y 为 m行的列向量,也就是有m个训练样本(samples) , 每个样本有 n 个features ,我们希望能学习训练集合从而如果有一个新的输入数据 x , 我们能预测与它对应的y的值。
以房屋价格为例 , 假设我们有 m个房屋数据,每间住房包括“住房面积”和“房间个数”作为features (此时n=2), 现在给定一间 面积为100,2间房的房屋,希望预测房屋价格
模型
$$h_{\theta}(X) = \theta ^TX = \theta_0 + \theta_1x_1 + … + \theta_nx_n$$
上式中的$x$为 n*1的列向量 ,$X = [1 ; x]$ ,添加了截距项(intercept term).
所以我们需要根据训练样本找到最适合的$\theta$
Cost Function
$$J(\theta) = \frac{1}{2}\sum{i=1}^{n}(h\theta(x^{(i)})-y^{(i)})^2 $$
其中$x^{(i)}$ , $y^{(i)}$为第i组样本
这实际上是一个ordinary least square model
Compute $\theta$
目的是找到最小化$J$的$\theta$
由于$J(\theta$)是一个凸函数
使用的方法可以是gradient descent 或者 Newton-Rhaphson’s method 。
得到确定的$\theta$以后我们就可以根据输入预测了