一,什么是线性回归。

回归问题和分类问题是机器学习的两大类问题。回归问题是根据训练集,学习到一个算法来预测一个连续的值,比如说预测房价。而分类问题则是学习一个算法来预测一个离散的值,比如说预测是否是恶性肿瘤,预测的结果只有是或否。线性回归就属于一种回归问题。
在线性回归中,事先给出的每一条训练条目都会有n个特征值,还有一个实际结果。我们期望的是通过训练,学习到这样的一条表达式 :


回归问题常用模型 回归问题的算法_迭代


其中每一个

θ 代表对应的特征值对预测结果影响的比重。


二,一些符号。

符号

意义

m

用来训练的训练集的个数

n

特征的数目

x(i)

第i个训练样本

x(i)j

第i个训练样本的第j个特征

θ

一个n+1维的向量,表示多有特征值的参数

h(θ) 也可以表示为矩阵相乘的形式:


回归问题常用模型 回归问题的算法_迭代_02


三,线性回归原理。

首先,我们需要定义一个代价函数,用来衡量我们训练得到的表达式预测的结果与实际训练集中结果 y 之间的误差。我们称其为 J(θ) 函数。


回归问题常用模型 回归问题的算法_代价函数_03


上式等号右边每一个相加项表示用我们现有的预测表达式

h(θ) 得到的预测结果和实际结果 y(i) 误差。


我们的目标就是求得一组

θ 使得 J(θ) 函数的值尽可能小,这样预测的结果就会和实际结果相近。


求最优

θ 的方法有多个,这里先介绍一种通用的方法,梯度下降法。梯度下降法基本思想就是通过一次一次的迭代,逐渐向结果靠近。比如说我们要求的 θ 有两个,迭代的过程可以表示为下图:


回归问题常用模型 回归问题的算法_机器学习_04


梯度下降法有一个问题就是选择不同的迭代起点,结果可能不相同,如上图,选择不同的起点,结果就会不相同。


但好在我们定义的代价函数

J(θ) 是一个凸函数,局部最优点就是全局最优点,所以无论选取什么起点,得到的结果都是最优的结果。


四,梯度下降法。

这里先介绍一种成为批梯度下降的梯度下降方法。就是每一次迭代更新 θ 时,需要用上所有的训练样本。
我们在迭代更新 θ 时使用的是以下的公式:


回归问题常用模型 回归问题的算法_迭代_05


计算一下得到以下表达式:



回归问题常用模型 回归问题的算法_代价函数_06


每一次对

θ 的迭代就需要依次更新 θ0 到 θn 。然后使用新的 θ 值计算代价函数 J(θ) ,看代价函数的值是否在我们可以接受的范围内。



α 可以理解为每次迭代更新中 θ 向目标值走的步长。它的取值不能太大,太大会导致无法使代价函数 J(θ) 取到最小,而太小又会使 θ 向目标值的移动速度太慢,导致需要迭代更多次。