第八章 预测数值型数据: 回归([代码][ch08])
- 线性回归算法的优缺点
- 优点:结果容易理解,计算上下不复杂
- 缺点:对非线性问题数据处理不好.
- 使用数据类型:数值型和标称型数据.
- 回归方程
回归方程(regression equation),回归系数(regression weights),求回归系数的过程就是回归。说到回归,一般都是指线性回归(linear regression),还存在非线性回归模型。 - 局部加权线性回归
线性回归会出现欠拟合现象,因为它求的是最小均方误差的无偏估计。可以在估计中引入一些偏差,从而降低预测的均方误差。其中一个方法是局部加权线性回归(Locally Weighted Linear Regression,LWLR),该算法中给待测点附近的每个点赋予一定的权重,然后在这个子集上基于最小均方差来进行普通的回归。与kNN一样,此算法每次预测均需事先选取出对应的数据子集 - 缩减系数“理解”数据
若数据的特征比样本点还多,在计算(XTX)−1的时候会出错,也就是输入数据的矩阵X不是满秩矩阵,非满秩矩阵在求逆是会出现问题。接下来介绍两种方法来解决这个问题:岭回归(ridge regression)与前向逐步回归(Forward stepwise regression),其中前向逐步回归与lasso法效果差不多。 - lasso
是一种压缩估计。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。 - 前向逐步回归
- 前向逐步回归算法与lasso效果差不多,属于贪心算法,即每一步都尽可能减少误差。一开始,所有的权重都设为1,然后每步所做的决策是对某个权重增加或减少一个很小的值。
- 逐步线性回归算法的优点在于他可以帮助人们理解现有模型并作出改进。当构建一个模型后,可运行该算法找出重要特征,这样就可以及时停止那些不重要特征的收集。最后,如果用于测试,该算法每100次迭代后就可以构建一个模型,可使用类似于10折交叉验证的方法比较这些模型,最终选择使误差最小的模型。
- 当应用缩减方法(逐步线性回归或岭回归)时,模型也就增加了偏差(bias),与此同时却减小了模型的方差。
- 权衡偏差与误差
模型和测量值之间存在的差异,叫做误差。当考虑模型中的“噪声”或者说误差时,必须考虑其来源。
- 对复杂的过程简化,会导致模型和测量值之间出现“噪声”和误差。
- 无法理解数据的真实生成过程,也会导致差异的发生。
- 测量过程本身也可能产生“噪声”或问题。
- 小节
与分类一样,回归也是预测目标值的过程
当数据的样本数比特征树还少的时候,矩阵的逆不能直接计算
岭回归是缩减法的一种,相当于回归系数的大小施加了限制
缩减法还可以看作是一个对模型增加偏差的同时减少方差
代码托管见Github [ch08]:https://github.com/Lornatang/machine_learning_in_action_py3/tree/master/src/ch08