星驰编程网

免费编程资源分享平台_编程教程_代码示例_开发技术文章

四、XGBoost二分类的目标函数_二分类变量举例

1.引入几个“空间”的概念

为了描述方便,先引入几个关于“空间”的概念,它们在统计学中是通用概念。本合集第一篇文章举了一个房产销售的例子,延续这个例子:

上图中共有6条销售记录,称为6个样本(或样本点),每个样本有4个特征。根据样本的特征,可以构建一个输入空间,虽然样本很少,但是输入空间很庞大,因为地段可能还有一环和二环,面积可能从30平米到1000平米等,显然输入空间是比样本记录大的多的集合。

每个样本对应一个单价,在此基础上可以构建一个输出空间,理论上,单价可以很多可能,比如从1000元到100000元,显然输出空间也是比样本记录大的多的集合。

因为每个样本xi有四个特征,对于任何一个样本点xi来说,xi都是一个四维向量。那么所有样本的所有特征共同构成了特征空间,对于本例,特征空间中有6个向量,每个向量是四维的。

大多数机器学习是基于特征空间的,我们可以构建一个数学模型实现从特征空间到输出空间的映射,这样的模型有很多种,甚至无限种,模型的集合被称为假设空间(参考本合集第三篇文章关于损失函数的定义)。

2.XGBoost的目标函数

XGBoost的目标是在假设空间寻找的某一映射,使得采用该映射时目标函数取得最小值。XGBoost的目标函数具有表达式:

其中:

右侧第一项是损失函数(参考本合集第三篇文章)

右侧第二项是正则化项(也叫惩罚项)

n: 特征空间的维度

k: 树的棵数

yi:第i条输入样本的真实标签值

fk(xi): 第i条输入样本的预测值(或等于yi的概率)

fk:第k棵树。一个以特征空间为出发域,以叶子节点的值(或权重)为到达域的映射,即给定一个或多个输入项xi,得到一个叶子节点的值。

3.正则化项

为什么要在obj中引入正则化项?

预测模型经常在历史数据的回测中表现优秀,在对既定目标进行预测时表现很差,这种现象称之为过度拟合。比如在进行多项式拟合时,将多项式次数定的很高,拟合虽然很精确,但预测效果很差。为了解决这个问题,引入了正则化项,该项的返回值和模型的复杂度是正相关的,即模型越复杂正则化项的返回值越大。当一个模型损失函数取得最小值时,正则化项取得较大值,此时obj未必取得最小值。所以将正则化项引入目标函数,是为了防范过度拟合。正则化项具有如下形式:

右侧第一项γT是XGBoost自定义的,右侧第二项是L2范数的平方和

γ,λ:调整系数,取值区间为不小于0的实数

T:第k颗树的叶子节点个数

ωj:第j个叶子节点的值

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言