线性回归算法梳理
1. 机器学习的一些概念
监督学习:数据集中的每个样本有相应的标签,根据这些样本做出预测
无监督学习:数据集中没有标签。无监督学习的任务是从给定的数据集中,找出可能具有的结构。
泛化能力:指一个机器学习算法对于没有见过的样本的识别能力。
过拟合欠拟合(方差和偏差以及各自解决办法):
-
过拟合
- 模型把数据学习得太彻底,以至于把噪声数据的特征也学习到了,不能正确分类,模型泛化能力太差。
- 解决方法:重新清洗数据;增大数据的训练量;采用正则化方法;采用dropout方法。
-
欠拟合:模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
- 添加其他特征项;添加多项式特征;减少正则化参数。
交叉验证
- 交叉验证就是重复使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。
2. 线性回归的原理
线性回归是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。
3. 线性回归损失函数、代价函数、目标函数
损失函数: 计算的是一个样本的误差。
代价函数: 是整个训练集上所有样本误差的平均。
目标函数: 代价函数+正则化项。
4. 优化方法(梯度下降法、牛顿法、拟牛顿法等)
梯度下降法: 梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解就是全局解。一般情况下其解不保证是全局最优解,梯度下降法的速度也未必是最快的 。梯度下降法的优化思想是用当前位置负梯度方向最为搜索方向,因为该方向为当前位置的最快下降方向,所以也称为是“最速下降法”。最速下降法越接近目标值,步长越小,前进越慢。
牛顿法: 牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。
拟牛顿法: 牛顿法是典型的二阶方法,其迭代次数远远小于最值下降法,但是牛顿优化法使用了二阶导数∇2f(x)∇2f(x),在每轮迭代中涉及海森矩阵的求逆,计算复杂度相当高,尤其在高维问题中几乎不可行。若能以较低的计算代价寻求海森矩阵的近似逆矩阵,则可以显著降低计算的时间,这就是拟牛顿法。
5. 线性回归的评估指标
- SSE(和方差、均方误差和)
- MSE(均方误差、方差)
- RMSE(均方根、标准差)
- R-square(确定系数)
6. sklearn参数详解
class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
- fit_intercept:boolean,optional, default True
- 是否计算此模型的截距。如果设置为False,则不会在计算中使用截距。
- normalize:boolean,optional, default True
- 为False的时候忽略。当为True的时候,则回归量X将在回归之前通过减去平均值并除以I2范数来归一化
- copy_x:boolean,optional, default True
- 如果设置为True,则将复制X,否则它可能会被覆盖
- n_jobs:int or None, optional (default=None)
- 多线程计算,-1表示使用所有核心进行计算,默认为1