需要渐变提升实际示例或广泛提示

时间:2013-05-27 21:06:50

标签: algorithm tree

我最近接触过提升树算法并为多维输出实现了一个小的回归树类y1 .. yo取决于ob特征x1 .. xn。

实际上,我读过几篇关于提升和弗里德曼随机梯度增强的优点的文章,但是我有点实施这个,因为所有的数学方程对我来说都很难 - 需要更多'编码风格'。

首先:我没有在任何地方找到关于该主题的实际例子。我知道有第三方库可以很好地适应,但我想了解那里发生了什么,因此我自己实现; - )

好的,假设我的回归树产生了增强实现所需的结果,现在我的问题是:

该算法构建了一个回归函数,该函数由n个树组成,其中一棵树的结果是下一棵树的输入的一部分。由于这是一种迭代方法,它首先猜测目标功能(预测=截距+ x1 * T1 + x2 * T2 + ... + xnTn),其中Tn是位置n和x处回归树的预测是预测的权重。

伪代码:

  1. 使用o目标维度(列)的平均值初始化截距

  2. 用n行,o列初始化矩阵“h values”(第i次迭代的当前预测结果)

  3. 对于迭代= 1到n(树的数量)

  4. 3.1创建一个梯度矩阵(n行,o cols),并用当前预测结果函数减去当前训练数据来初始化每一行

    3.2选择给定大小的0到n之间的索引的随机子集(例如,所有数据的50%)

    3.3获取渐变行作为y的输入和相应的x值并设置新的回归树

    3.4训练树并将其添加到结果函数

    3.5使用新行值+ = Prediciton * LearningRate

    逐行修改“h values”

    - 结束迭代

    4返回结果函数

    首先,您是否看到我的理解错误?如果我采用样本数据,它对单个树表现很好(5%误差,深度为10,每个节点至少有3个节点),我得到的误差约为50% - 图表几乎是一个平均值线

    其次,我不确定,我是否得到了“渐变”的观点,因为我只使用预测 - 结果函数的当前值而不是我到处读到的“真实”丢失函数。

    第三也是最后一点,我对第2.5点也不太确定,这就是我要做的一切吗?

    任何帮助或提示都会很棒。

    提前多多感谢

    艋舺

0 个答案:

没有答案