发现隔一段时间,忘记了好多知识点,这里认为重要的知识点记录下来,作为笔记,方便以后回顾。
From “李航- 统计学习方法” 统计学习方法的三要素: 模型,策略, 算法
对于线性回归
-----------------------------------------------------模型-----------------------------------------------------
利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归.
-----------------------------------------------------策略-----------------------------------------------------
线性回归模型经常用最小二乘逼近来拟合
对于只包含一个x自变量,可得出如下公式。 多个变量线性函数为 H(x) = Φ0 + Φ1*X1 + Φ2*X2 + ... + Φn*Xn
X, Y 值已知, J(Φ) 转化为 Φ0 和 Φ1的函数。 问题从选择最优的H(Φ)转化为求解 minJ(Φ)。因为H(Φ) 为线性函数,因此J(Φ) 为如下形态, 具有唯一最优解。
-----------------------------------------------------算法-----------------------------------------------------
将上图投射到平面上,形成的等高线(应该术语称为等高线), 问题进一步变为如何求得中间红星位置的Φ0 和 Φ1 是的J(Φ) 最小
Gradient Descent 算法: 从某一特定的值开始修改Φ0 和 Φ1 直到J(Φ) 最小。(此方法为机器学习中一种通用的算法,不仅限于线性回归)
对于偏导数Φ := Φ - a * (dJ(Φ))/dΦ, Φ 将向极值收敛, a 控制收敛的速度。
将偏导数带入得到线性回归的迭代方法, 如图所示:
--------------------------------------------------------------------------------------------------------------------
在实践过程中需要注意的一些技巧和方法(也合适于其他机器学习算法)
(1)学习速度的控制和取值:太小则会导致收敛较慢,太大可能会越过极值,从而无法到达收敛点
可供借鉴的方法如下,取各个数量级的a 来观测函数J(Φ)的收敛情况,每次收敛的变化>= 0.001
(2)feature scaling
对多个自变量,如果某个自变量的取值相对于其他自变量的数值较大,则需要规格化。否则其他自变量对于J(Φ)的影响和变化就很小。
可通过如下方法,将每个自变量规格化到[-0.5, 0.5]的区间内,再进行求解。
(3) 对feature X1, X2, ..., XN的选择。将一个或者多个自变量的多次项的值引入做个一个线性自变量。
PS:记得在NG之前的公开课(163上有), 介绍过Newton 迭代法,是另一种高效的快速迭代算法。