线性回归算法梳理

机器学习的一些概念

监督学习(supervised learning):数据集中的每个样本有相应的“正确答案”(有明确的label值),根据这些样本做出预测,分有两类:回归问题(预测连续值)和分类问题(预测离散值).
无监督学习(unsupervised learning):与监督学习不同,没有任何标签,即没有相应的“正确答案”(没有明确的label值). 从数据集中可以通过非监督学习得到数据的某种结构. 常见的算法有聚类算法.

泛化(generalization):从具体的事实归结出一般性规律.

过拟合(overfitting):学习器学习能力过强,导致把训练样本自身的一些特性当做了潜在样本都会具有的一般性质,造成泛化性能下降的现象.
欠拟合(underfitting):与过拟合相对,学习能力不足导致不能完全归纳训练样本的一般性能.
学习能力是否过强,由学习算法和数据内涵共同决定

交叉验证(cross validation):用一部分数据集来训练模型, 而用另一部分数据集来测试该模型的预测精度. 训练模型的数据集称为训练集 (training set), 而未参与训练的测试数据集称为测试集 (testing set).
测试集和训练集有很多种选择方法, 这与问题的性质、数据的结构以及机器学习模型的特点等因素有关.
有一种比较常用的方法称为n 折交叉验证 (n-fold cross validation), 它把数据分成 n 份, 每次交叉验证时, 用 1 份作为测试集, 而剩下的 n M 1 份合起来作为训练集, 如此可以轮流做 n 次交叉验证, 汇总起来就可以得到模型的交叉验证精确度.

线性回归

线性回归可分为一元回归和多元回归,一元回归就是只有一个影响因子,也就是大家熟悉的线性方程,多元回归就是有多个影响因子。一元线性回归方程的基本形式为: f(x)=θ0+θ1x1f(x)=\theta_0+\theta_1x_1,多元线性回归方程的基本形式为:f(x)=θ0+θ1x1++θnxnf(x)=\theta_0+\theta_1x_1+…+\theta_nx_n.

损失函数(Loss Function): 定义在单个样本上的,算的是一个样本的误差。常见的损失误差有五种:

  1. 铰链损失(Hinge Loss):主要用于支持向量机(SVM) 中;
  2. 交叉熵损失 (Cross Entropy Loss,Softmax Loss ):用于Logistic 回归与Softmax 分类中;
  3. 平方损失(Square Loss):主要是最小二乘法(OLS)中;
  4. 指数损失(Exponential Loss) :主要用于Adaboost 集成学习算法中;
  5. 其他损失(如0-1损失,绝对值损失)

代价函数(Cost Function): 定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

目标函数(Object Function): 最终需要优化的函数。一般为最小化代价函数。

优化方法

梯度下降法(Gradient Descent): 梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。

梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

梯度下降法的搜索迭代示意图如下图所示:

线性回归算法梳理
梯度下降法的缺点:

(1)靠近极小值时收敛速度减慢,如下图所示;

(2)直线搜索时可能会产生一些问题;

(3)可能会“之字形”地下降;

(4)当学习系数α\alpha(步长)过大时代价函数可能不减小,甚至发散。

牛顿法(Newton’s method): 牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。具体步骤如下:
首先,选择一个接近函数 f (x)零点的 x0,计算相应的 f (x0) 和切线斜率f ’ (x0)(这里f ’ 表示函数 f 的导数)。然后我们计算穿过点(x0, f (x0)) 并且斜率为f '(x0)的直线和 x 轴的交点的x坐标,也就是求如下方程的解:
 线性回归算法梳理
我们将新求得的点的 x 坐标命名为x1,通常x1会比x0更接近方程f (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。迭代公式可化简为如下所示:
线性回归算法梳理
已经证明,如果f ’ 是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f ’ (x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。

牛顿法的优缺点总结:
  优点:二阶收敛,收敛速度快;
  缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂; 一定要有正定逆矩阵,极值点导数为零才有解,可能得不到结果。

拟牛顿法(Quasi-Newton Methods): 拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。

关于以上三种方法更详细的内容参考:
常用的优化算法:梯度下降法,牛顿法,拟牛顿法,共轭梯度法

线性回归的评估指标

评价线性回归的指标有四种,均方误差(Mean Squared Error)、均方根误差(Root Mean Squared Error)、平均绝对值误差(Mean Absolute Error)以及R Squared方法。

均方误差(Mean Squared Error):

MSE=1mi=1m(yiy^i)2MSE=\frac{1}{m}\sum_{i=1}^{m}{(y_i-\hat{y}_i)^2}

均方根误差(Root Mean Squared Error):
RMSE=MSERMSE=\sqrt[]{MSE}

平均绝对值误差(Mean Absolute Error):
MAE=1mi=1myiy^iMAE=\frac{1}{m}\sum_{i=1}^{m}{|y_i-\hat{y}_i|}

R Squared
线性回归算法梳理

sklearn参数详解

sklearn常用机器学习算法总结