深入浅出ML之Regression家族

深入浅出ML之Regression家族

内容列表

  • 符号定义
  • 说明
  • 回归分析介绍
  • 线性回归模型
  • 回归模型与正则化
    • L2-Ridge
    • L1-Lasso
    • Group Lasso
  • 逻辑斯蒂回归

符号定义

这里定义《深入浅出ML》系列中涉及到的公式符号,如无特殊说明,符号含义均按下述定义解释:

符号 含义
x j j 维特征
x 一条样本中的特征向量, x = ( 1 , x 1 , x 2 , , x n )
x ( i ) i 条样本
x j ( i ) i 条样本的第 j 维特征
y ( i ) i 条样本的结果(label)
X 所有样本的特征全集,即 X = ( x ( 1 ) , x ( 2 ) , , x ( m ) ) T
Y 所有样本的label全集,即 Y = ( y ( 1 ) , y ( 2 ) , , y ( m ) ) T
w 参数向量,即 w = ( w 0 , w 1 , , w n )
w j j 维参数

1. 写在前面

回归技术在整个数据科学体系中占有非常重要的位置,回归分析是统计学中的相关分析知识体系中重要组成部分。在机器学习中,回归、分类和标注共同构成了监督学习技术。

监督学习(supervised learning)是机器学习在工业界应用最广的一个领域分支。在学术界中也是研究最多的领域之一。大家都知道的数据挖掘十大经典算法中,监督学习技术占据6席。

2. 回归分析介绍

在介绍具体的回归技术之前,有必要探讨下以下几个问题。回归分析是什么?为什么要使用回归分析呢?

  • 什么是回归分析?

回归分析是解决预测建模任务时的一种方法,用于研究自变量与因变量之间的关系。该方法主要用于预测、时间序列建模以及寻找变量之间的因果关系。 举例,rash driving和number of road accidents by a driver通过回归技术可以进行更好的研究。

回归分析是用于建模和数据分析的一个重要工具。这里,我们用曲线/直线去拟合数据点,希望所有数据点到曲线或直线的距离差异之和最小(后面会给出公式量化)。

上图是某一阶段的股票指数波动示意图,用一条(红色)曲线拟合真实数据。

  • 为什么要使用回归分析?

正如上面描述,回归分析多用于建立两个或多个变量之间的关系表达。我们通过一个例子理解这个问题:

假如,你想根据当前的经济环境预估企业的营收增长情况。公司最近的财报表明营收增长大约是经济增长的2.5倍。利用这个关系,就可以根据当前和过去的营收和经济数据,预测公司未来的营收增长情况。

使用回归分析有诸多好处,比如:

  1. 它可以清晰的表示自变量(特征)与因变量(结果)之间的显著关系;
  2. 还可以表明多个自变量(特征)对因变量(结果)的影响程度(根据feature对应权重大小).

同时,回归分析也可以去比较两个变量之间的影响,比如促销活动的次数与价格波动的影响。这些有助于帮助市场研究人员/数据分析师/数据科学家去消除或评估最佳的一组变量用于建立预测模型。

  • 回归技术分类

有很多种不同的回归技术可做预测。根据目标变量的个数、因变量的类型以及回归函数的形状这三个维度对回归技术做一个归类。我们从回归家族中拿出两个经典的回归技术——线性回归和logistic回归,详细阐述其技术原理和应用场景。

一睹为快,简要的看下二者在变量上的差异:

方法 自变量(特征) 因变量(结果) 关系
线性回归 连续或离散 连续实数 线性
Logistic回归 连续或离散 (0,1)之间连续值 非线性

3. 线性回归(Linear Regression)

线性回归是最被广泛应用的建模技术之一。顾名思义,就是用一组变量(或特征)的线性组合,来建立与结果的关系。即期望用一条最佳的直线(被称为回归线)来表示因变量(Y)和一个或多个自变量(X)之间的关系。

3.1线型回归模型

  • 模型表达

(1) y ( x , w ) = w 0 + w 1 x 1 + + w n x n

其中, x 1 , x 2 , , x n 表示自变量(集合); y 是因变量; w 为参数向量; w i 表示对应自变量(特征)的权重, w 0 是偏倚项(又称为截距)。

关于参数w:
1. 在物理上可以这样解释:在自变量(特征)之间相互独立的前提下 w i 反映自变量 x i 对因变量影响程度, w i 越大,说明 x i 对结果 y 的影响越大。
2. 通过每个字变量(特征)前面的参数,可以很直观的看出哪些特征分量对结果的影响比较大。
3. 在统计中, w 1 , w 2 , , w n 称为偏回归系数, w 0 称为截距。

如果令 x 0 = 1 , y ( x , w ) = h w ( x ) , 可以将公式(1)写成向量形式,即:

(2) h w ( x ) = i = 1 n w i x i = w T x

其中, w = ( w 0 , w 1 , , w n ) x = ( 1 , x 1 , x 2 , , w n ) 均为向量, w T w 的转置。

公式(2)中,假设特征空间与输入空间x相同。

准确的讲,模型表达式要建立的是特征空间与结果之间的关系在一些应用场景中,需要将输入空间映射到特征空间,然后建模. 定义映射函数为 ϕ ( x ) ,因此我们可以把公式(2)写成更通用的表达方式:

h w ( x ) = w T ϕ ( x )

特征映射相关技术,包括特征哈希、特征学习、Kernel等,在后面的章节中会详细介绍。

Note:

  1. 需要谨记,模型表达式建立的是特征空间与结果之间的关系,而不是与输入之间的关系,从输入到特征空间,可以是直接将输入当做特征,也可以通过特征映射方法,如多项式法,kernel方法等,先将输入转换到特征空间,再做建模,得到最终的模型表达式。

  2. 如线型回归或者logistic回归结合了多项式的特征映射方法,即可用于非线性分类,而SVM的目标函数(模型)也很简单,结合了kernel特征映射之后,如采用高斯核函数,则就是先将输入转换到特征空间,在高维特征空间利用目标函数找到线型分类超平面,再将此线型分类超平面映射回低纬空间,得到非线性分类曲面。

  • 参数学习准则

公式(2)中的参数向量 w n + 1 维,每个参数的取值是实数集合,也就是说参数向量 w n + 1 维实数空间中取值结果有无穷种可能。

那么,如何利用一个规则或机制帮助我们评估求得的参数 w ,并且使得到的线性模型效果最佳?直观地认为,如果求得的参数 w 线性求和后,得到的结果 h w ( x ) 与真实值 y 之差越小越好。

这是我们需要引入一个函数用来衡量 h w ( x ) 表示真实值 y 好坏的程度,该函数称为损失函数(loss function,也称为错误函数)。数学表示如下:

(3) J ( w ) = 1 2 i = 1 m ( h w ( x ( i ) ) y ( i ) ) 2 m i n w   J ( w )

这个损失函数用的是 x ( i ) 的估计值 h w ( x ( i ) ) 与真实值 y ( i ) 之差的平方和。从优化的角度讲,公式(3)是待优化的目标函数(Object Function)(如果不考虑其它问题,诸如过拟合等),可将其转化为最优化问题求参数。

3.2 参数学习-线性回归目标函数

如何调整参数 w 使得 J(w) 取得最小值?方法有很多,这里先介绍两种比较经典的方法,即最小二乘法和梯度下降法。

  • 最小二乘法(Least Square)

最小二乘法是一种完全数学描述的方法,直接给出闭式解结果。它用 X 表示观测数据中的特征矩阵,结果表示成 Y 向量,目标函数仍是(3),那么 w 可直接用下面公式表示:

(4) w = ( X T X ) 1 X T Y

公式来源:

X )1 XT Y (4) (4) w = ( X T X ) 1 X T Y

公式来源:

X T X w = X T Y

个人认为,之所以不直接写成

相关文章
相关标签/搜索