Friday, August 7, 2015

特征工程指南(3):多粒度交叠式特征离散化

  概率论中在实数上定义定义的事件就是Borel集。Borel集是从拓扑空间中的开集通过可数次交、并运算及补集运算得到的。至于为什么这样定义是个严密的数学系统设计的问题,不是本帖讨论的重点。
  本帖讨论的重点是,Borel集实际上定义了所有可能的实数上的事件,这里包括是某一个区间上的事件,也就是说,无论怎么切分,它是一个事件,当且仅当它是一个Borel集。
  特征离散化实际上就是切分Borel集,我们当然无法也不必要从工程上穷举所有Borel,然而我们却不必要求只列举那些无交(disjoint)的Borel集,这种无交的borel集构成了一个对当前特征空间的一个划分。
  我们可以想象一个划分,这个划分上的每一个Borel集在线性模型(如LR)中对应一个权重w。为了能拥有较好的非线性特性,我们往往需要对这些集合切得很细;但不能太细,太细了会导致训练样本不足从而被L1正则化因子压为0。
  怎么能实现既不必对Borel集切得太细,又能实现复杂的非线性呢?可以通过进行重叠切分来实现。重叠切分有两种做法,一种是滑动窗做法,比如窗口的大小为w,每次滑动d,w>d,最终这些窗口覆盖整个特征空间。
  另外一种做法是分层切割,就是按照2-3个层次,在每个层次上用一个粒度的Borel集覆盖整个特征空间。
  还有一种做法是模仿Random Forest,针对区间进行随机切分,这样信息会被这种随机切分表示得很完整。

1 comment:

  1. 感谢分享,差不多一整天的时间把特征工程的三篇文章看完了,受益匪浅。

    ReplyDelete