机器学习中的特征工程(一)---- 概览

前言

上个月参加了微信大数据挑战赛,由于是第一次参加类似的比赛,并没有什么经验,最终也没有进复赛。不过在这期间还是学到了很多知识,尤其是特征处理相关的内容。接近2周的时间我几乎都在编写特征处理相关的代码,因为模型大家都用的差不多,无非就是DeepFM、DIN、GBDT等等,但是提取的特征却各不相同。在很多大佬分享出来的baseline代码中学习到了一些特征提取的技巧,但是真正可以上大分的特征,人家肯定也不会放出来。这次比赛经历让我意识到在机器学习或者说深度学习中特征处理的重要性。也许有人会说,深度学习模型本身就有很好的特征提取的能力,不需要自己再手动提取特征。其实我想说,万事万物都不存在绝对,即便是在深度学习横行的时代,比如在图像领域,传统的图像局部特征提取方法比如SIFT依旧发挥着重要的作用,将其与深度学习的方式结合起来往往能发挥出意想不到的的效果。同理,搜索、推荐领域也类似,在很多场景下,原始数据根本无法直接输入模型,必须要对原始数据做相关处理,深挖隐藏在数据背后的信息,这便是特征工程存在的意义。
在知乎上搜索算法工程师职责相关话题,会发现大部分算法工程师的工作日常也并不是所谓的阅读paper,提出创新点,发明新的模型,更多是与实际业务结合,比如熟悉业务逻辑和数据,数据清洗、特征提取等等,即更多是与数据打交道,因此很多人称自己为‘SQLBoy’。但是这也从另外一个方面印证了数据的重要性。毕竟有这么一句话在工业界广泛流传,如下:

数据和特征决定了结果的上限,而模型和算法只是逼近这个上限而已。

综上所述,我决定深入学习一下特征工程相关的内容,并且记录下来,这是这个系列的第一篇。


数据处理

简介

特征工程本质上可以理解成数据预处理,其目的是最大限度地从原始数据中提取特征以供算法和模型使用,从而提高模型的准确率等指标。你处理的数据中的特征直接影响到你正在使用的模型以及你能达到的最好的结果。这一点相信很多参加过比赛的同学都深有体会,当模型和特征都确定之后,通过调参带来的收益微乎其微,似乎已经到达模型的上限了。但是如果此时发现了更好的特征,只更换特征的情况下,效果会有很大的提升,这不是靠调参能够得到的。
当然也有人会说,你筛选出来的特征越好,模型输出的结果就越好。这确实是事实,但是也有一定的误导性。模型所能取得的结果受到诸多因素影响,包括模型本身的选择,可用的原始数据,以及提取的特征。甚至也包括你是如何分解这个问题的,还有结果的评估标准等。总之,结果的好坏取决于多种因素,不过本文主要要介绍的是特征提取这一要素。

特征工程总览

特征工程的重要性

特征工程的目的就是找到更好的特征来表征原始数据中的固有结构,因为更好的特征一般具有以下的属性。

  • 良好的特征意味着更好的灵活性
    即便我们选择了一个相对较差的模型,但是由于良好的特征加持,我们依旧可以获得较好得到结果。因为大部分模型其实都可以很好地利用数据中良好的结构信息。良好的特征可以使我们使用更加简单的的模型,这样更容易训练,也更容易理解和维护。
  • 良好的特征意味着更简单的模型
    如果我们提取出了较好的特征,其实它已经具备足够强的表达能力,可以为我们节省大量在模型选择和参数调优上的时间。
  • 良好的特征意味着更好的结果
    对于Kagglers,或者参加其他比赛的同学来说,大家使用的算法都大同小异,大部分时间都花在了特征工程上面。

特征工程的位置

在近一步讨论特征工程的细节之前,我们需要先明确一下机器学习或者说深度学习模型的工作管道。这会帮助我们了解一项任务,从问题提出到问题解决的全过程。机器学习的一般流程大概如下:

问题定义 -> 准备数据 -> 提取特征 -> 评估模型 -> 结果
机器学习流程图
上图中红框内就是特征工程需要关心的部分,即如何从原始数据中提取有用的特征信息。

特征类型

我们知道由于特定的机器学习或深度学习的任务不同,对应所需要的数据集也不同。不过数据的类型还是可以总结出来,一般来说无非就以下几种类型:

  • 图像
  • 文本
  • 音频
  • 视频
  • ...

以文本数据举例,如果我们将其细分一下,其实还可以分为许多类型。比如有:

  • 数值数据(整数,浮点数)
  • 单词、句子、段落数据(字符串,单词)
  • 类别数据(字符串,数字)

要知道我们的模型的输入只能是数值类型,对于不是数值类型的特征,我们需要通过一系列方法来将其转换成模型和算法能接受的数据类型。这里面又包含了很多方法,比如One-hot编码,词袋模型,Word2Vec等等等等。

文章目录

本文是特征工程系列文章的第一篇,所以本文不会介绍特征处理的技术细节,只是从宏观角度给出特征工程的定义及其重要性。接下来的文章会分别详细介绍常见的特种处理方法。这个系列的文章是根据原始数据的类型来编排,即从数值类型的特征处理到类别类型的特征处理,基本上会涵盖常见的特征处理方法。同时也会提供对应的数据和示例代码。文章目录链接如下:


上述文章待更新。。。

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容