这一篇笔记整理下线性回归(linear regression)的相关知识点。
线性回归,是指数据集的输出值y与特征值(x1, x2...)之间满足线性关系, 数学表达式为,
上式中的x_0值为1。
当数据集只有一个feature时,即为单变量线性回归,当含有多个feature时,即为多变量线性回归。举一个单变量线性回归的例子,下图为不同城市人口与相应酒店盈利的数据,蓝线对应最终学习到的模型,经营者可根据此模型来决策是否在新的城市开设酒店。
对于同一个数据集,满足要求的参数theta有许多组,究竟哪一组才是最优的?
此时需要引入代价函数(cost function)的概念,代价函数用来衡量模型预测值与输出值之间的差别。对于线性回归的问题,其代价函数定义为,
其中
需要做的是,找寻一组theta值,使得代价函数取极小值。
常用的两种算法是:
1)梯度下降法
通过迭代的方法,逐渐逼近最优的theta值,求解的过程示意图如下,
2)正规方程(normal equation)法
z
上式是通过求解
得到。可能存在的一个问题: X^T*X矩阵不可逆,可使用伪逆函数pinv()进行求解。
两种方法各有优势,主要区别如下:
a. 梯度下降法需要选择学习率alpha, 正规方程法不需要
b. 梯度下降法需要多次迭代,正规方程法只需要一步计算
c. 矩阵维度较大时,正规方程需要对大矩阵进行运算,运算时间较长,而梯度下降法没有此限制
d. 梯度下降法也适用去其他机器学习模型,而正规方程法只适用于线性回归模型
处理数据时,有时候会遇到某一个特征值较大的情况,如果直接处理该数据,会存在一定的问题。常用的做法是通过缩放(scaling),将特征值的数值控制在[-3,3]之间,