机器学习笔记——线性回归

一,什么是线性回归。

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

h(θ)=θ0+θ1x1+θ2x2+...+θnxn

其中每一个 θ 代表对应的特征值对预测结果影响的比重。


二,一些符号。

符号 意义
m 用来训练的训练集的个数
n 特征的数目
x(i) 第i个训练样本
x(i)j 第i个训练样本的第j个特征
θ 一个n+1维的向量,表示多有特征值的参数

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

h(θ)=θTx


三,线性回归原理。

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

J(θ)=J(θ0,θ1,,,θn)=12mi=1m(h(θ(i))y(i))2

上式等号右边每一个相加项表示用我们现有的预测表达式 h(θ) 得到的预测结果和实际结果 y(i) 误差。
我们的目标就是求得一组 θ 使得 J(θ) 函数的值尽可能小,这样预测的结果就会和实际结果相近。
求最优 θ 的方法有多个,这里先介绍一种通用的方法,梯度下降法。梯度下降法基本思想就是通过一次一次的迭代,逐渐向结果靠近。比如说我们要求的 θ 有两个,迭代的过程可以表示为下图:
这里写图片描述
梯度下降法有一个问题就是选择不同的迭代起点,结果可能不相同,如上图,选择不同的起点,结果就会不相同。
但好在我们定义的代价函数 J(θ) 是一个凸函数,局部最优点就是全局最优点,所以无论选取什么起点,得到的结果都是最优的结果。


四,梯度下降法。

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

θj:=θjαθjJ(θ)

计算一下得到以下表达式:
θj:=θjαmi=1m(h(θ(i))y(i))x(i)j

每一次对 θ 的迭代就需要依次更新 θ0 θn 。然后使用新的 θ 值计算代价函数 J(θ) ,看代价函数的值是否在我们可以接受的范围内。
α 可以理解为每次迭代更新中 θ 向目标值走的步长。它的取值不能太大,太大会导致无法使代价函数 J(θ) 取到最小,而太小又会使 θ 向目标值的移动速度太慢,导致需要迭代更多次。

猜你喜欢

转载自blog.csdn.net/huinsysu/article/details/63681097