机器学习的两个重要的问题,一个是回归,一个是分类。
回归问题指的是对一组数据进行拟合,比如房价问题,f(x)=y,x是房子的面积,y就是最终的房价,在这个问题中,我们最终通过一个模型来得到拟合的结果。这样就可以在知道房子面积的时候,通过训练模型得到房子的价格。
衡量这些数据的模型,最简单的就是线性模型。在线性模型中,有一个重要的问题,就是如何去评价模型的好坏,比如我们得到了拟合的曲线,知道了在某一个数据点的预测值,那么它和真实值之间的差距到底有多少呢?
损失函数
这是机器学习最重要的一个步骤,定义损失函数,然后使用优化方式去最小化损失函数,在线性回归中,影响最终结果的特征值可能有很多个,比如在下面的方程中,可以把x1看作是房屋面积,x2看作是房屋的地段,通过这样一个线性回归方程就可以计算最终的房屋价格。
使用通用的模型定义:
这里就要介绍最重要的损失函数,通过计算预测房价和真实房价之间的差距,就可以评估整个线性模型的好坏,平方项和系数1/2,这样定义的原因是为了方便后续的求导操作。问题最终就是通过寻找合适的theta值来找到最小的损失值,那么下面就介绍求解的方法。
求解方法
最小二乘法和梯度下降法
最小二乘法
首先对目标函数进行转换,使用矩阵方程表示:
目标取得最小值的点,可以通过求导操作找到:
最终的结果如下所示:
此方法要求矩阵为列满秩,求矩阵的逆运算计算量还是比较大的,如果特征维数较高,使用这种方式就会严重影响计算速度,下面就介绍另外一种方法。
梯度下降法
初始化theta:
对损失函数求导:
参考链接
[https://www.cnblogs.com/futurehau/p/6105011.html]