【大数据】千锤万凿出深山:且谈特征工程最佳实践

2017 年 8 月 5 日 产业智能官

翻译|核子可乐
编辑|蔡芳芳
本文将探讨 20 项特征工程的最佳实践与启发性结论,包括指标变量、交互特征、特征表达、外部数据引入、错误分析等,希望能够帮助大家顺利踏上特征工程之旅。


作为为机器学习创建新特征的实现过程,特征工程已经成为改进预测模型的最具实效的方法之一。

获取特征难度极高、相当耗时且要求具备专业知识。“应用机器学习”在本质上其实就是在实现特征工程。

—— Andrew Ng

通过特征工程方法,你将能够提取关键信息、突出数据模式并引入你的领域专长。但由于特征工程突出的开放性,极易令实施者陷入困境。

什么是特征工程?  

作为一个非正式议题,特征工程可能拥有多种潜在定义。事实上,由于机器学习流程的流动性与迭代性,我们很难为特征工程找到概念层面的惟一“正确答案”。

根据自身理解,我们将特征工程定义为“基于现有的特征创建新特征,以提升模型性能的过程”。

典型的数据科学流程可能如下所示:

  1. 项目范围设定 / 数据收集

  2. 探索性分析

  3. 数据清理

  4. 特征工程

  5. 模型训练(包括交叉验证以调整超参数)

  6. 项目交付 / 获得见解

什么不是特征工程?  

上述流程意味着我们会将一些步骤明确排除在特征工程范畴之外:

  • 我们认为 初始数据收集 并不属于特征工程。

  • 同样的,我们认为 创建目标变量 不属于特征工程。

  • 我们认为删除重复项、处理丢失值或者修复错误标记类并不属于特征工程,我们将这些纳入数据清理 范畴。

  • 我们认为 特征缩放或者归一化 不属于特征工程,因为此类步骤归属于交叉验证循环(即在你已经建立起分析基表之后)。

  • 最后,我们认为 特征选择或者主成分分析(PCA) 并不属于特征工程。这些步骤同样归属于交叉验证循环。

再次强调,这些只是我们给出的分类意见。我们接受其他数据科学家对此提出的质疑,毕竟特征工程本身就属于一个开放性概念。

免责声明到此结束,下面让我们进一步探讨与之相关的最佳实践与启发性结论。

指标变量  

特征工程的第一种类型是利用指标变量提取关键信息。

现在,有些朋友可能会问,“好的算法不是应该自行学习关键信息吗?”

这个嘛,情况并非总是如此,具体取决于你所拥有的数据量以及竞争信号的强度。你可以通过预先突出重要内容帮助算法对其给予“关注”。

  • 来自阈值的指标变量: 我们假设你正在研究美国消费者对于酒精饮料的偏好,而当前数据集包含年龄特征 age。您可以创建一个指标变量 age>=21 以区分达到合法饮酒年龄的受试者。

  • 来自多种特征的指标变量: 假设你正在预测房地产价格,并且已经掌握了 n_bedroomsn_bathrooms 两项特征。如果拥有两卧两卫的房产在出租时拥有溢价性,你就可以创建一项指标变量对其进行标记。

  • 针对特殊事件的指标变量: 假设你正在为电子商务网站的每周销售情况建模。你可以为黑色星期五与圣诞节那两周分别创建两项指标变量。

  • 类组指标变量: 假设你正在分析网站转换率,而当前数据集包含 traffic_source 这一分类特征。你可以通过标记“Facebook 广告”或者“谷歌广告”为 paid_traffic 创建指标变量。

交互特征  

第二种特征工程类型主要是指突出两项或者多项特征之间的交互。

你是否听说过“一加一大于二”这种说法?事实上,一部分特征组合起来确实能够较单一特征带来更多信息。

具体来讲,我们可以对多项特征进行加和、减差、乘积或者除商后再寻找其中的模式。

  • 两项特征加和: 我们假设你希望根据初步销售数据预测收入情况。你已经拥有sales_blue_pens sales_black_pens 两项特征。如果你只关注总体 sales_pens,那就可以将二者相加。

  • 两项特征之差: 假设你已经拥有 house_built_date 以及 house_purchase_date 两项特征,可以求二者之差以创建 house_age_at_purchase 特征。

  • 两项特征乘积: 假设你正在进行价格测试,而且分别拥有特征 price 与指标变量conversion。您可以将二者相乘以创建特征 earnings

  • 两项特征除商: 假设你拥有一套市场营销活动数据集,其中包含 n_clicks n_impressions 两项特征。你可以将点击次数除以展示次数以求得 click_through_rate,并借此了解不同规模的宣传活动间的转化率对比情况。

备注:我们并不建议大家利用自动化循环为全部特征创建交互,因为这有可能会造成“特征爆炸”问题。

特征表达  

接下来要谈到的特征工程类型虽然简单却影响巨大。我们将其称为特征表达。

你的数据并不一定总是理想格式。你需要考虑是否有必要通过另一种形式进行特征表达以获取有用信息。

  • 日期与时间特征: 我们假设你拥有 purchase_datetime 特征。从中提取purchase_day_of_week purchase_hour_of_day 两项特征可能会更有用。你还可以进行观察聚类以创建诸如 purchases_over_last_30_days 这类特征。

  • 数字到分类的映射: 假设你拥有 years_in_school 特征。你可以基于它创建新的 grade特征,并分类为“小学”、“初中”和“高中”。

  • 稀疏类分组: 假设你拥有一个包含多个类别的特征,但样本量较小。你可以尝试对相似类进行分组,将相似的类别分到一组,然后将剩下的类划分至单一的“其他”类中。

  • 创建虚拟变量: 根据你所选取的机器学习实现方法,你可能需要手动地将各分类特征转化为虚拟变量。请务必在稀疏类分组之后再创建虚拟变量。

外部数据  

特征工程中还有一个尚未被充分利用的类型,就是外部数据的引入,实际上引入外部数据能够为性能带来一些巨大突破。

举例来说,定量对冲基金的一种研究方式就是对不同财务数据流进行分层。

亦有多种机器学习难题能够通过引入外部数据得到改善。以下为相关示例:

  • 时间序列数据: 时间序列数据的最大优势在于,你只需要一项特征——即某种形式的日期,即可将其纳入来自其他数据集的特征。

  • 外部 API: 如今我们可以利用大量 API 来协助创建特征。例如,微软计算机视觉 API 能够返回某一图像当中包含的人脸数量。

  • 地理编码: 如果你已经拥有street_addresscity乃至state等特征信息,则可以利用 地理编码 将其转换为latitudelongitude特征。如此一来,你就能够借助 其他数据集 计算出本地人口属性(例如 median_income_within_2_miles)等特征。

  • 同一数据的其它来源: 我们可以通过几种方式追踪 Facebook 广告宣传活动?答案可能包括 Facebook 自身的追踪系统、Google Analytics 以及其他第三方软件。每一种来源都可能带来其他方案所无法追踪到的信息。另外,这些数据集之间的任何差别都可能包含重要信息(例如不同信息来源可能对机器人流量有不同的处理方式——选择忽略或者保留)。

错误分析(建模后)  

特征工程的最后一种类型,我们称之为错误分析。错误分析应该在第一套模型训练完成之后进行。

错误分析是一项广义术语,是指对模型当中的错误分类或者高错误率观察结果加以分析,同时决定如何在下一步当中作出改进。

潜在的后续步骤包括收集更多数据、对问题进行拆分或者设计出能够解决错误的新特征。要在特征工程当中使用错误分析,我们需要搞清楚自己的模型为何未能得出正确结果。

具体方式包括:

  • 由较大错误入手: 错误分析通常手动执行。很明显,大家没有时间对每一项观察结果进行逐一检查。我们建议从那些错误评分较高的问题入手,并寻找那些能够转换为新特征的模式。

  • 按类别分段: 另一项技术在于拆分观察结果,并针对各个分段基于平均误差进行比较。你可以尝试为误差值最高的分段创建指标变量。

  • 无监督聚类: 如果你在发现模式时遇到问题,则可对被错误分类的观察结果执行无监督聚类算法。我们并不建议你盲目将这些聚类视为新特征,但这确实能够有效简化模式的发现过程。请记住,我们的目标是理解为何观察结果中会出现错误分类。

  • 询问同事或者领域内专家: 这种做法可以作为以上任一项技术的补充。如果你确定效果不佳(例如通过分段方式检验),但还不清楚具体原因,那么向领域内专家求助或许能帮上大忙。

结论  

如大家所见,特征工程领域存在着诸多可能性。我们在本文中提到了 20 项最佳实践与启发性结论,但这些也不过是沧海一粟。

当你开始进行自己的实验时,请牢记以下一般性准则:

良好的特征工程应当……

  • 可面向未来观察结果进行计算。

  • 通常能给出直观的解释。

  • 通过领域内专业知识或者探索性分析得出。

  • 必须拥有预测能力。不要为了创建特征而创建特征。

  • 切勿触及目标变量。 这对于初学者们来说是一个经常会不小心掉入的陷阱。无论你是在创建指标变量抑或是交互特征,都千万不要使用自己的目标变量。这就像是一种“欺骗”,会给大家带来极具误导性的结果。

最后,如果感觉上述内容太难,也不用过于担心。通过不断实践和积累经验,你一定会对特征工程越来越熟悉并得到更理想的结果。

本文由 EliteDataScience.com 授权 InfoQ 翻译并转发。原文链接:https://elitedatascience.com/feature-engineering-best-practices?from=timeline&isappinstalled=0

 

新一代技术+商业操作系统:AI-CPS OS

     

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利AI-CPS OS形成字化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生,在行业、企业和自身三个层面勇立鳌头。


数字化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置。

  • 分辨率革命种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品控制、事件控制和结果控制。

  • 复合不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  • 边界模糊化:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。随着变革范围不断扩大,一切都几乎变得不确定,即使是最精明的领导者也可能失去方向。面对新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能颠覆性的数字化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位。


如果不能在上述三个层面保持领先,领导力将会不断弱化并难以维继: 

  • 重新进行行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  • 重新构建你的企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  • 重新打造新的自己:你需要成为怎样的人?要重塑自己并在数字化时代保有领先地位,你必须如何去做?


子曰:“君子和而不同,小人同而不和。”  《论语·子路》

云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。

在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。

云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


人工智能通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率;

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间。


新一代信息技术(云计算、大数据、物联网、区块链和人工智能)的商业化落地进度远不及技术其本身的革新来得迅猛,究其原因,技术供应商(乙方)不明确自己的技术可服务于谁,传统企业机构(甲方)不懂如何有效利用新一代信息技术创新商业模式和提升效率。


“产业智能官”,通过甲、乙方价值巨大的云计算、大数据、物联网、区块链和人工智能的论文、研究报告和商业合作项目,面向企业CEO、CDO、CTO和CIO,服务新一代信息技术输出者和新一代信息技术消费者。


助力新一代信息技术公司寻找最有价值的潜在传统客户与商业化落地路径,帮助传统企业选择与开发适合自己的新一代信息技术产品和技术方案,消除新一代信息技术公司与传统企业之间的信息不对称,推动云计算、大数据、物联网、区块链和人工智能的商业化浪潮。


给决策制定者和商业领袖的建议:

  1. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  2. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  3. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  4. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机

    器智能,为企业创造新商机;

  5. 开发人工智能型企业所需新能力:员工团队需要积极掌握判断、沟通及创造

    性思维等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多

    样性的文化也非常重要。


新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。

重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能正在经历从“概念”到“落地”,最终实现“大范围规模化应用,深刻改变人类生活”的过程。





产业智能官  AI-CPS



新一代技术+商业操作系统(AI-CPS OS:云计算+大数据+物联网+区块链+人工智能),在场景中状态感知-实时分析-自主决策-精准执行-学习提升认知计算机器智能实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链




长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、“智能驾驶”、“智能金融”、“智能城市”、“智能零售新模式:案例分析”、“研究报告”、“商业模式”、“供应链金融”、“财富空间”




本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com





登录查看更多
1

相关内容

干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
专知会员服务
124+阅读 · 2020年3月26日
机器学习速查手册,135页pdf
专知会员服务
340+阅读 · 2020年3月15日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
356+阅读 · 2020年2月15日
【论文推荐】文本分析应用的NLP特征推荐
专知会员服务
33+阅读 · 2019年12月8日
新书《面向机器学习和数据分析的特征工程》,419页pdf
专知会员服务
142+阅读 · 2019年10月10日
【大数据】大数据参考架构和关键技术(综合)
产业智能官
14+阅读 · 2018年11月22日
深度特征合成:自动化特征工程的运作机制
大数据文摘
4+阅读 · 2018年10月26日
博客 | 「特征工程」与「表示学习」
AI研习社
7+阅读 · 2018年9月9日
独家 | 一文带你读懂特征工程!
数据派THU
6+阅读 · 2018年8月23日
【干货合集】一文读懂特征工程
七月在线实验室
13+阅读 · 2018年8月2日
Python & 机器学习之项目实践 | 赠书
人工智能头条
14+阅读 · 2017年12月26日
已删除
将门创投
9+阅读 · 2017年7月28日
A Survey on Edge Intelligence
Arxiv
51+阅读 · 2020年3月26日
Arxiv
19+阅读 · 2019年4月5日
VIP会员
相关资讯
【大数据】大数据参考架构和关键技术(综合)
产业智能官
14+阅读 · 2018年11月22日
深度特征合成:自动化特征工程的运作机制
大数据文摘
4+阅读 · 2018年10月26日
博客 | 「特征工程」与「表示学习」
AI研习社
7+阅读 · 2018年9月9日
独家 | 一文带你读懂特征工程!
数据派THU
6+阅读 · 2018年8月23日
【干货合集】一文读懂特征工程
七月在线实验室
13+阅读 · 2018年8月2日
Python & 机器学习之项目实践 | 赠书
人工智能头条
14+阅读 · 2017年12月26日
已删除
将门创投
9+阅读 · 2017年7月28日
Top
微信扫码咨询专知VIP会员