标签:
原文:http://www.flickering.cn/ads/2014/08/%E8%BD%AC%E5%8C%96%E7%8E%87%E9%A2%84%E4%BC%B0-4%E7%89%B9%E5%BE%81%E9%80%89%E6%8B%A9%EF%BC%8D%E7%AE%80%E4%BB%8B/
在机器学习中从原始信息中生成和选择特征被称为特征工程(Feature Egineering)或者特征抽取(Feature Extraction)。将事物分门别类一直是人类观察和认识世界的基本手段。机器学习作为帮助人类认知和预测事物的工具,分类和聚类也自然成为机器学习中最重要的方法。人对事物做分类主要依据事物之间共同的特点和差别,一样的,分类器要做出正确的分类也依赖能对事物做出联系和区分的描述信息,这些信息就是我们提供的特征。特征生成就是从各种角度和侧面来刻画事物,例如:通过用户搜索过的词和点击过的广告来描述一个用户,用跳转到一个页面之前的Referrer Query来表征这个网页等。互联网中海量的连接蕴含着信息和价值,尽可能利用各种连接发现信息构造特征也是互联网应用场景下数据挖掘的一大乐趣所在。
华盛顿大学教授Pedro Domingos在其文章《A Few Useful Things to Know about Machine Learning》中讲到使用什么特征是很多机器学习项目成败的关键因素,特征工程也是机器学习项目中最花时间的部分。俗话说巧妇难为无米之炊,有了一个不错的学习器后,为学习器提供好的样本和特征就变得至关重要。我们的团队在做广告转化率预估时,特征构造和选择也一直是我们提升线上效果的主要途径。下面将结合我们在广告系统效果优化上的经验谈下对特征选择的理解。
独立的讲特征选择是没有意义的,特征好与坏要看学习器是否能用得上,本文主要介绍的是服务于线性分类器的特征选择方法。本文记X={x1,x2,?,xn}为特征向量,xi∈R,Y={y1,y2,?,yn}为分类目标向量,yi∈{0,1}。
一、为什么做特征选择
二、特征的处理
2.1 特征的分类
从特征的取值类型看可以分为下面几类:
二值特征是我们使用最多的一类特征。离散值特征和浮点数特征都可以转化成二值特征,这种转化可以看成是对空间的变换和升维,让原本不是线性可分的空间通过变换后更容易找到超平面把不同类的点分开。
2.2 特征的预处理
2.3 特征和特征间的运算
通过上面的运算可以在单元子特征基础上得到更多的含义丰富特征。
更为复杂的可以使用多层sigmoid函数网络来加工原始特征。
三、特征选择的常用方法
3. 1 Filter
Filter这类方法是选定一个指标来评估特征,根据指标值来对特征排序,去掉达不到足够分数的特征。这类方法只考虑特征X和目标Y之间的关联,相对另两类特征选择方法Wrapper和Embedded计算开销最少。指标的选择对Filter方法至关重要,下面我们就看几种被大家通常使用的指标。
统计的视角:
信息论的视角:
3.2 Wrapper
Wrapper方法和Filter不同,它不单看特征X和目标Y直接的关联性,而是从添加这个特征后模型最终的表现来评估特征的好坏。Wrapper方法需要选定一种评估模型效果的指标,如Area Under the Curve (AUC)、Mean Absolute Error (MAE)、Mean Squared Error(MSE)。假设我们有N个特征,除去空集外这N个特征可以组成2N−1个集合,最暴力的方法是分别用2N−1个特征集合训练得到模型做评估,最后选择模型效果最好的集合。显而易见当N很大时穷举法计算开销惊人。所以前向特征选择(Forward Feature Selection)和后向特征选择(Backward Feature Selection)这样的贪心策略更为大家平常所用。前向特征选择从空集开始,每次在现有特征集合的基础上添加一个让模型效果最好的特征。相反,后向特征选择一开始包括所有的候选特征,每次去掉一个让模型指标提升最多的特征。
离线评估结果是重要的参考指标,但在实际应用中,往往最终还是通过线上A/B Test实验来判断一个特征的效果。在实际应用中离线评估不错的特征在线上表现不一定就好,线上线下评估的一致性和影响因素是另一个可以值得研究的问题。
3.3 Embedded
Filter方法和Wrapper方法都是和分类算法本身的实现无关,可以与各种算法结合使用。而Embedded特征选择方法与算法本身紧密结合,在模型训练过程中完成特征的选择。例如:决策树算法每次都优先选择分类能力最强的特征;逻辑回归算法的优化目标函数在log likelihood的基础上加上对权重的L1或者L2等罚项后也会让信号弱的特征权重很小甚至为0。
一些优化算法天然就适合在每步判断一个维度特征的好坏,所以可以在学习器在设计时就同时融合了特征选择功能,在训练过程中自动尝试构造特征和选择特征。
四、小结
Filter、Wrapper、Embedded三种方法各有不同,但没有孰好孰坏之分,在我们的实际工作中会结合使用。Filter作为简单快速的特征检验方法,可以指导特征的预处理和特征的初选。Embedded特征选择是我们学习器本身所具备的能力。通过Wrapper来离线和在线评估是否增加一个特征。
本文只对特征选择做了整体的概略介绍,后面将针对一些具体的点做展开讨论。
标签:
原文地址:http://www.cnblogs.com/zhizhan/p/5007507.html