VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • 集成学习之Xgboost(9)

ft)+constant=i=1n[2(yi^(t1)yi)ft(xi)+ft(xi)2]+Ω(ft)+constant(3)(4)(3)Obj(t)=i=1nl(yi,yi^(t1)+ft(xi))+Ω(ft)+constant(4)=i=1n[2(yi^(t1)yi)ft(xi)+ft(xi)2]+Ω(ft)+constant

 

如果不是特例,而是普通的损失函数,如果找到通用的方法,即考虑到损失函数不是二次函数该怎么办?此时需要利用泰勒展开,不是二次的想办法近似为二次(看下面Xgboost论文里的解释,定义了一阶导g和二阶导h):

从而保留二次项,最终的目标函数只依赖于每个数据点的在误差函数上的一阶导数和二阶导数。这么写的原因很明显,由于之前的目标函数求最优解的过程中只对平方损失函数时候方便求,对于其他的损失函数变得很复杂,通过二阶泰勒展开式的变换,这样求解其他损失函数变得可行了。

7. 泰勒公式

在数学中,泰勒公式(英语:Taylor's Formula)是一个用函数在某点的信息描述其附近取值的公式。这个公式来自于微积分的泰勒定理(Taylor's theorem),泰勒定理描述了一个可微函数,如果函数足够光滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值,这个多项式称为泰勒多项式(Taylor polynomial)。

相当于告诉我们可由利用泰勒多项式的某些次项做原函数的近似。
泰勒定理:
设 n是一个正整数。如果定义在一个包含a 的区间上的函数f 在 a点处 n+1 次可导,那么对于这个区间上的任意 x,都有:

 

f(x)=f(a)+f(a)1!(xa)+f(2)(a)2!(xa)2+...+f(n)(a)n!(xa)n+Rn(x)

 

其中的多项式称为函数在a 处的泰勒展开式,剩余的Rn(x)是泰勒公式的余项,是