发现隔一段时间,忘记了好多知识点,这里认为重要的知识点记录下来,做为笔记,方便之后回顾。算法
From “李航- 统计学习方法” 统计学习方法的三要素: 模型,策略, 算法机器学习
对于线性回归函数
-----------------------------------------------------模型-----------------------------------------------------学习
利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的状况称为简单回归,大于一个自变量状况的叫作多元回归.spa
-----------------------------------------------------策略-----------------------------------------------------3d
线性回归模型常常用最小二乘逼近来拟合htm
对于只包含一个x自变量,可得出以下公式。 多个变量线性函数为 H(x) = Φ0 + Φ1*X1 + Φ2*X2 + ... + Φn*Xnblog
X, Y 值已知, J(Φ) 转化为 Φ0 和 Φ1的函数。 问题从选择最优的H(Φ)转化为求解 minJ(Φ)。由于H(Φ) 为线性函数,所以J(Φ) 为以下形态, 具备惟一最优解。get
-----------------------------------------------------算法-----------------------------------------------------学习方法
将上图投射到平面上,造成的等高线(应该术语称为等高线), 问题进一步变为如何求得中间红星位置的Φ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 迭代法,是另外一种高效的快速迭代算法。