独家 | 用Python Featuretools库实现自动化特征工程(附链接)

640?wx_fmt=png

作者:Prateek Joshi

翻译:张玲

校对:李润嘉

本文约4000字建议阅读10分钟。

本文简要介绍特征工程的基本组成部分,并用直观的示例理解它们,最后给出使用Python Featuretools库实现自动化特征工程的操作过程。


简介


在机器学习黑客马拉松和竞赛中,特征工程的质量通常是进入排行榜10强和无缘50强的重要区别,因此,所有参赛过的人都可以证明特征工程的重要性。


自从我意识到特征工程具有巨大的潜力以来,我一直是它的大力倡导者。但当手动完成时,这可能是一个缓慢而艰难的过程。我必须绞尽脑汁来思考有哪些特征存在,并从不同的角度分析它们的可用性。现在,整个FE(Feature Engineering,特征工程)流程都可以实现自动化,我将在本文中向您展示。


640?wx_fmt=png


我们将使用一个名为Featuretools的Python特征工程库,来实现这一流程。但是在深入研究之前,我们首先了解下FE的基本组成部分,并用直观的示例理解它们,最后利用BigMart Sales数据集来深入了解自动化特征工程这一精彩世界。


目录


1.  什么是特征?

2. 什么是特征工程?

3. 为什么需要特征工程?

4. 自动化特征工程

5. Featuretools简介

6. Featuretools实践

7. Featuretools的可解释性


1. 什么是特征


在机器学习的背景下,特征是用来解释现象发生的单个特性或一组特性。 当这些特性转换为某种可度量的形式时,它们被称为特征。


举个例子,假设你有一个学生列表,这个列表里包含每个学生的姓名、学习小时数、IQ和之前考试的总分数。现在,有一个新学生,你知道他/她的学习小时数和IQ,但他/她的考试分数缺失,你需要估算他/她可能获得的考试分数。


在这里,你需要用IQ和study_hours构建一个估算分数缺失值的预测模型。所以,IQ和study_hours就成了这个模型的特征。


640?wx_fmt=png


2. 什么是特征工程?


特征工程可以简单定义为从数据集现有特征中构造新特征的过程。假设我们有一个样本数据,里面含有一些商品的细节信息,例如重量和价格。


640?wx_fmt=png


现在,我们可以用Item_Weight和Item_Price来构造名为Price_per_Weight的新特征。它仅是用商品的价格除以商品的重量而已。这样的过程称为特征工程。


640?wx_fmt=png


这只是一个从现有特征中构造一个新特征的简单示例,但实际上,当我们有相当多的特征时,特征工程可变得非常复杂和繁琐。


再看另一个例子,在常用的Titanic数据集中,存在一个乘客名字的特征,下面是这个数据集中的一些名字:


  • Montvila, Rev. Juozas

  • Graham, Miss. Margaret Edith

  • Johnston, Miss. Catherine Helen “Carrie”

  • Behr, Mr. Karl Howell

  • Dooley, Mr. Patrick


这些名字实际上可以分解成另外几个有意义的特征。例如,将相似的称谓提取出来,合并成一个类别。让我们来看一看乘客姓名中这些称谓的不同个数。


640?wx_fmt=png


从上图可以看出,“Dona”、“Lady”、“the Countess”、“Capt”、“Col”、 “Don”、“Dr”、“Major”、“Rev”、“Sir”和“Jonkheer”这些称谓是十分少见的,可以将它们放在一个标签下,即rare_title。除了这些,称谓“Mlle”和“Ms”可归到“Miss”下,而“Mme”可以用“Mrs”来代替。


640?wx_fmt=png


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值