我眼中的特征工程

在机器学习领域从事理论研究或者研发的同学,对“特征工程”这个词应该非常熟悉,但被问到什么是特征时,不同的人可能会给出不同的答案。本文尝试从非技术角度对“特征”这个词进行解释,在展开之前,我们先思考一个问题:生活中,我们是采用什么样的表达方式来描述周边事物的?

容易想到的示例有:使用“时分秒”描述时间、“米”表示长度、“红黄蓝”代表颜色,等等。接下我们追问一句,是谁首先定义或者使用这些术语的,能不能换一种表达方式,譬如用“秒”来代替“米”作为长度单位呢?

80年代之前,“米”的定义如下:以巴黎子午线为基准,赤道到与北极点之间距离的1/1000W为一米;80年代之后,“米”的定义修改为:光在1/299792458秒内前进的距离。

按上述对“米”这个概念的定义,我们是可以使用时间来定义长度的,将“1/299792458秒”重定义为一个术语即可,只是还没有人开始这么做而已。电子显示技术出现之前,人们通常使用“红黄蓝”来描述颜色,而随着数字技术的发展,在某些领域人们已经习惯使用数字(RGB)来更精确的定义颜色。

上述两个案例说明,很多的术语定义,不是天生就是那样的,随着时代的变化是可以改变的。同样的,不同的领域,基于实际需要,某些表达方式也是可以变换的。特征工程与这种变换紧密有关,但不是全部。

语言是人类互相沟通最重要的工具,它承载了人类的历史、文化、风俗习惯,等等。语言本身是一套复杂的符号系统,这套系统随着人类的发展而不断的进化,它非常适合人类的思维方式。如果把每一个算法看作一个小的硅基生命体,人类语言并不总是适合作为与硅基世界沟通的工具,另一方面,我们需要算法帮助我们人类解决一些实际问题,所以需要一座桥梁,将与待解决问题相关的、必要的信息或数据转换为机器算法能够理解的形式,这座桥梁就是特征工程,特征就是算法能够接受的信息。

从以上描述可知,特征有两个重要的要素:

  • 需要传达的信息或数据要与问题相关,那“相关”的判断标准是谁定呢?业务专家!
  • 以合适的表达方式向算法传递信息。

对于第一个要素,有关业务专家的讨论不

属于技术问题,在这我们只谈技术,所以接下来使用两个小示例对第二个要素进行阐述:

示例一、每个算法都有自己的语言理解能力

有的算法只精通数字,语文基本不会;有的算法只会区分这是苹果那是香蕉; 而有的算法,还能知道从几个苹果里挑一个大的出来。对于只精通数字的算法,就需要把“红黄蓝”这样的信息表达形式转换为数字才可以,这是一个编码问题,不同的应用场景,具体处理方式存在很大的差别,这个在后面的文章里会进行更详细的讨论。这个示例说明,特征工程并没有一个统一的标准,与选择的算法有关,而算法的选择又与当前需要被解决的问题相关。

示例二、人类语言是文化的一个载体,一个文字符号后面往往隐藏着丰富的信息

此类情况相比前一个示例,事情要复杂困难得多,因为很多隐信息已成为人自身组成的一部分。我们见到“2018年9月24日”这串字符时,不需要思考就能自动提取出“年月日”这些信息,如果思考一下,还能解析出中秋节、放假、月饼等等此类隐信息。而对于算法呢,如果不进行指导,就只能停留在字符串阶段,所以需要人主动将这个字符串解释成“年月日”三类信息,做到这一步,还不够,你还需要将“一周的开始、中秋节、当月的最后一个周一,不是当月最后一天”,等等信息知会到算法。只有这样,算法在思考问题时,才会考虑到各种因素对最终答案的影响。日期这个示例是相对容易简单的,进行特征工程时不需要太多的思考。实际研发时,识别隐藏在具体业务后面的隐信息是一种具大的挑战,这是业务专家的价值所在。

上述两个小示例,只是说明了将信息传达给算法有多么因难,但这还不够。不同人类语言之间的翻译讲究“信达雅”,这个原则对于硅基世界同样适用,总体而言,算法思考过程中,不太适应过于夸张、对比强烈的信息表达方式,这也是在进行特征工程时需要重点考虑的一个因素,我们再举个小例子:

第一天你住在海边一个星级度假酒店,住宿费2000元一晚,矿泉水20元一瓶你就不会觉得贵,第二天回程路上的你,住在一家快捷酒店,200元一晚,再卖你20元一瓶的水,你就会觉得很贵。度假酒店场景下20元不是事,同样的你,第二天为什么对同样的20元敏感呢?算法也是一样,你用不同范围的数字表达不同的信息时,如果相差很大,算法也会无视20元矿泉水的存在,但这往往不是我们想要的,所以数值归一化这个技巧非常重要。

最后做个小结,特征是什么?用软件研发人员的话说,特征就是一种属性或者数据表字段,它可以直接使用当前已有的属性,根据需要也可以创造新的属性,最终目的就是两个:

  • 有助于数据分析师理解问题。
  • 有助于算法更好的运行。

特征工程,涉及到的知识点非常多,不过下期的文章,我们先聊下与数据自身相关的话题,然后再回到特征工程,这有助于更好的理解相关的技术细节。我们下期见!

猜你喜欢

转载自www.cnblogs.com/hong-ke/p/9688262.html