学习笔记:特征工程

有句坊间传闻说:“数据和特征决定了机器学习的上限,而模型和算法只是逼近了这个上限而已”。由此可见,特征工程在机器学习中占据了相当重要的作用。近年来,不论是企业亦或是个人都在尝试用机器学习和人工智能来解决一些以往人为手动操作工作量巨大的问题。前端时间有幸参加了几场机器学习竞赛,赛后我发现其实每个竞赛的冠军所使用到的机器学习算法并不是非常的新颖创新,他们取胜的关键往往都在于其在特征工程这个环节确实做了足够出色的工作。遗憾的是,赛后的我翻阅了许多资料,发现市面上大多数关于ML的书籍内容都着重于讲解ML算法,对于特征工程这一部分往往都被一笔带过,当然他们的目的旨在理解算法,笔者这里并不是说这些书写的不全面。在这篇文章中,我打算针对最近关于特征工程的学习做一个总结工作,记录我对于特征工程学习的认识和见解,希望在写完所有的学习总结后可以让自己对特征工程有一个全面的认识。

这篇文章主要从以下三个问题出发来理解特征工程:

 - 特征工程是什么?
 - 为什么说特征工程非常重要?
 - 应该如何做好特征工程?

针对第一个问题,我主要通过讲解我们做特征工程的目的来解释特征工程是什么。对于第二个问题,我会从特征工程的重要性入手。至于第三个问题,最后我会给出一个思维导图进行解释。下面来看看详细内容!


1、特征工程是什么

终于说到了本文的主题。在我的理解里,机器学习被我分为了两大板块,即特征工程及学习算法,二者相辅相成,缺一不可。当我们为了让自己的预测模型性能达到最佳时,不仅仅需要选取最好的算法,更需要在导入算法之前,对原始数据进行合理处理并充分利用。遗憾的是,这一重要部分往往被大多数人所忽略。

关于特征工程的定义,Wikipedia上是这样说的:

Feature engineering is the process of using domain knowledge of the data to create features that make machine learning algorithms work.

 

我的理解:

特征工程是这样一个过程:将数据转换为能更好地表示潜在问题的特征,从而提高机器学习性能。

 简而言之,特征工程其实就是一个处理原始数据使其转换成特征的过程,这些特征可以很好的描述我们想要知道的信息,并且我们可以利用这些特征建立起来的模型对于未知数据进行预测,这是是机器学习算法获取最佳训练数据的前提。

假如一个工程师不能同时具备特征工程和机器学习两方面的知识,则整个流程很有可能不会那么有效。下面我们就来说说特征工程的重要性。


2、为什么说特征工程非常重要

为了解决一些实际问题,数据科学家和机器学习工程师要收集大量数据。因为他们想要解决问题经常具有高度的相关性,而且是在混乱的世界中自然形成的,所以代表这些问题的原始数据有可能未经过过滤,非常杂乱,甚至不完整。

在数据科学家中进行的一项调查显示,他们工作中超过80%的时间都用在捕获、清洗和组织数据上。下图展示了数据科学家进行不同工作的时间比例。

 从上图可见,数据科学家的工作占比如下。

  • 设置训练集:3%
  • 清洗和组织数据:60%
  • 挖掘数据集:19%
  • 调整算法:5%
  • 其他:4%

好的数据科学家不仅知道准备数据很重要,会占用大部分工作时间,而且知道这个步骤很艰难,没人喜欢。很多时候我们会觉得,像机器学习竞赛和学术文献中那样干净的数据是理所当然的。然而实际上,超过90%的数据都以原始形式存在。

其实不难理解,就如开篇第一句话说的那样,特征工程决定了一整个机器学习流水线的上限,特征越好,最终整个流水线能达到的性能也就越好。

(1)特征越好,灵活性越强

只要特征选得好,即使是一般的模型(或算法)也能获得很好的性能,因为大多数模型(或算法)在好的数据特征下表现的性能都还不错。好特征的灵活性在于它允许你选择不复杂的模型,同时运行速度也更快,也更容易理解和维护。

(2)特征越好,构建的模型越简单

有了好的特征,即便你的参数不是最优的,你的模型性能也能仍然会表现的很nice,所以你就不需要花太多的时间去寻找最有参数,这大大的降低了模型的复杂度,使模型趋于简单。

(3)特征越好,模型的性能越出色

显然,这一点是毫无争议的,我们进行特征工程的最终目的就是提升模型的性能。


3、应该如何做好特征工程

终于来到了最后一个问题。就如上文所说,数据科学家们在工作的时候,需要花费大约80%的时间用在特征工程上,这说明特征工程是一个十分繁琐而细致的工作。我粗略将其做了如下图的分类。

我将其分为了六个小版块,主要包括: Feature understanding(特征理解)、Feature enhancement(特征增强)、Feature construction(特征构建)、Feature selection(特征选择)、Feature transformation(特征转换)、Feature learning(特征学习)。

这些板块将在之后的六篇文章中一一说明。


本文参考:

 《特征工程入门与实践》——[土]锡南·厄兹代米尔、迪夫娅·苏萨拉

https://blog.csdn.net/kobejayandy/article/details/95092485?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%89%B9%E5%BE%81%E5%B7%A5%E7%A8%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-95092485.nonecase&spm=1018.2226.3001.4187

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值