MARS如何用术语产生奇怪的常数?

时间:2015-05-22 02:33:07

标签: algorithm machine-learning regression

我一直在阅读有趣的机器学习算法MARS(Multi-variate adaptive regression splines).

据我所知,该算法来自维基百科和弗里德曼的论文,它分为两个阶段,即前传和后传。我现在忽略了后传,因为前锋是我感兴趣的部分。据我所知,前进传球的步骤是。

  1. 从数据的平均值开始。
  2. 通过详尽的搜索生成新的术语对
  3. 在进行改进时重复2
  4. 要生成术语对,MARS似乎会执行以下操作:

    1. 选择现有字词(e)
    2. 选择变量(x)
    3. 选择该变量的值(v)
    4. 返回两个字词e*max(0,x-v),另一个格式为e*max(0, v-x)
    5. 这对我来说很有意义。我可以看到,例如,如下数据表:

      +---+---+---+
      | A | B | Z |
      +---+---+---+
      | 5 | 6 | 1 |
      | 7 | 2 | 2 |
      | 3 | 1 | 3 |
      +---+---+---+
      

      可以生成2*max(0, B-1)甚至8*max(0, B-1)*max(3-A)等字词。但是,维基百科页面有一个我不明白的例子。它有一个臭氧的例子,第一个术语是25个。但是,它在最终回归中也有一个系数为负和分数的项。我不知道这是怎么可能的,因为最初的术语是5,你只能乘以前面的术语,而且之前的术语都没有负系数,你最终可能会得到一个... < / p>

      我错过了什么?

      正如我所看到的,要么我误解了术语生成,要么我误解了简化过程。但是,所描述的简化似乎只删除术语,而不是修改它们。你能看到我在这里失踪的东西吗?

0 个答案:

没有答案