catBoost 神器的学习笔记

  catBoost 神器的学习笔记,记录自己看原文章的心得。第一次发文,中间有些部分也是个人理解,不足之处,敬请谅解。欢迎扔砖  ^=^
  catBoost 原文的标题是 “CatBoost :unbiased boosting with categorical features”。 从标题看,该算法的特点在于,unbiased 以及categorical features 。我们可以跟着文章慢慢体会(体会不到的,不要拍我,我也没体会到很深  == :)。
   。。。。。。。。。
   。。。。。。。。。
   。。。。。。。。。
   。。。。。。。。。(想了半天,还是从根据原文的顺序,无耻的做个粗略的翻译)
   开始了,请不要嫌烦。我想写,但是真的不知道从哪开始写
   。。。。。。。。。。。。。start  。。。。。。。。。。。。。

   **第I部分:摘要**
   文章摘要内容告诉我们,catBoost算法背后,有几个很重要的算法技巧。这个技巧与梯度提升系统算法的结合使得catBoost算法在很多数据集上的表现要优于以前的很多梯度提升算法。
   那么这几个关键的算法技巧是什么?-------是ordered boosting 和 processing of catgrory features 。
   这些新东东的作用是什么?作者说,这都是因为当前的一些梯度算法在执行过程中引起了目标泄露(‘target leakage’),然后导致的预测漂移(‘prediction shift ’)
   摘要部分结束
   第一部分:introduction (略)
   。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
   第二部分:background   (略)
   。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
   -----------有木有感觉在看参考答案?
   。。。。。。。。。。。。。。。。。。。。。。。。。。。。
   蒸猪来了。。。。。。。。。我其实想说的是“正主来了“(捂脸)。



   **第三部分:Categorical features ----类别变量**
   
   **3.1 类别变量的相关工作**
          类别变量在数据处理中有个非常流行的办法,那就是 one-hot-encoding ,但是这种处理办法使得该特征的值很多的时候,造成大量特征的出现。为了解决类似问题,可以将类别变量进行组合成有限的几类,然后用one_hot_encoding 方法。那么一种较好的方法就是 target statistics ----TS ,此处略去lightGBM中使用对类别变量处理的办法以及缺点。
         说了变天,TS 是一种能将类别变量处理成数值变量,而且信息损失最小的办法。下一节开始逐步深入介绍。
   **3.2 Target statistics ---TS** 
        一般来说,为了将第i 个训练样本的第k个类别变量的值Xik 转化成一个数据值,由目前以下的几种方法: Greedy TS ,Holdout TS ,Leave-one-out TS 。
        我们的方法是 Ordered TS,就是依赖于顺序原则,这是受在线学习算法启发的,在线情况下训练样本具有时序性。看过前面的三种TS算法以后,就知道,TS的计算是根据历史数据决定的。为了跟线上算法的时序性一样,我们也构造出一个时序性。
        怎么构造?对训练样本进行随机排列。这样,对于每一个样本,我们使用该排列进行TS计算,每个样本的TS值,都由他之前的样本计算。考虑到,如果只用一个排列进行计算的话,排在前面的样本将会有比后来更大方差的TS,为了结局这个问题,我们会在不同的梯度提升阶段使用不同的排列。详细的,我们在第五部分介绍。

   **第四部分   Prediction shift  and ordered boosting  (预测漂移和有序提升)**
        
     **4.1 Prediction shift** 
     这一节是对解决之前的梯度提升过程中存在预测漂移的问题提出一个有效的解决方法。就是,ordered boosting and resembles the ordered TS method.
     为什么会漂移? 因为在之前的TS计算中,我们都用了目标变量y的值。这样,我们梯度计算的条件分布 从一个测试样本的梯度计算漂移了。
     这样的话,我们的基预测函数的解出现了解偏差。
     这样的话,最终,影响了最终训练的模型的泛化能力。
     这样是不是在测试集和训练集上有了有偏预测? 题目是unbiased。。!
     所以,文章在附录给了大片的证明,说明我们的方法不会biased.。

    **4.2 Ordered boosting** 
  
    (写累了,回家补上。)

你可能感兴趣的:(类别变量,集成学习)