【译】特征工程最佳实践

news/2024/9/16 19:53:55

本文是译文,可以转载,但需注明出处,点击这里可以获取原文,有删减。


机器学习中,特征工程是创建新特征,能有效提高模型性能的方法之一。

特征工程比较困难,耗时且需要领域专业知识。
应用机器学习的基础是特征工程。 ———吴恩达

通过特征工程,可以区分出哪些是主要信息,突出特征模式,引进领域专业知识。毫无疑问,特征工程的无限制性使得特征工程构建者很容易陷入僵局。
接下来,我们将讨论几个常见的特征工程构建方法。
什么是特征工程?
特征工程是一个非正式的主题,业界也有许多有关它的定义。而我们对特征工程的定义——为了提高模型性能,从已存在的特征中构建新特征的过程。
以下是典型数据科学过程:

  • 确定项目范围/数据收集

  • 探索分析

  • 数据清洗

  • 特征工程

  • 模型训练(包括交叉验证和模型调参)

  • 项目交付/获得洞察

什么不是特征工程?
以下数据处理技术不纳入特征工程讨论范围:

  • 收集原始数据

  • 创建目标变量

  • 去除重复值,处理缺失值及修复错误值

  • 数据标准化

  • 特征选择和PCA(主成分分析)

接下来开启我们的特征工程之旅。
指示变量
第一种特性工程使用指示变量来获取关键信息。也许你会问:“模型不是能自己识别哪些是关键信息么?”
有时候的确能,但并不是所有时候都可以——这取决于数据的样本量。在建模之前可以构建如下指示变量:

  • 阈值型指示变量:假设正在研究美国市民的酒精偏好,而数据集中有“age”变量。此时,我们可以建立“age >= 21”变量来区分那些合法饮酒年龄之上的公民;

  • 多特征型指示变量:如果你正在研究不动产价格,且你有“n_bedrooms”和“n_bathrooms”变量。如果在租赁房屋时,2个床位和2个浴室意味着非常有优势,则可以构建相应的指示变量来标识它们;

  • 特殊事件指示变量:在预测电商网站周销量时,可以构建两个指示变量——黑色星期五和圣诞节;

  • 组内指示变量:网站转化分析中,若数据集中含有“traffic_source”类别型变量。我们可以构建“paid_traffic”指示变量来标识"Facebook Ads"或"Google Adwords"的流量来源。

交叉变量
第二种特性工程使用变量间的交叉信息来获取数据关键信息。
也许你听过这句名言——整体大于局部。的确如此,组合变量带来的信息通常比单个变量本身的信息要多。
特别地,可以留心观察变量之间的和,差,积和商。

说明:不推荐构建所有变量之间的交叉变量,这样做会导致“特征暴增”。

  • 变量之和:如果想通过基础销售数据来预测税收,若数据集中含有“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”,以便区分“Elementary School”,“Middle School”和“High School”;

  • 稀疏类别聚合化:离散型变量中,一些类别可能含有较少的样本数,可能把较少样本的类别合并成“Other”类;

  • 哑变量:根据模型的需要,可能把离散型变量转换成哑变量。

注意:“稀疏类别聚合化”操作永远在“哑变量”操作之前。

外部数据
接下来介绍另一种可以引起模型性能突破的特征工程——外部数据。
许多机器学习可以从外部数据中获益,如:

  • 时间序列数据:时间序列数据最大的好处是只需构建一个“date”变量即可把别的数据集分层;

  • 外部API:许多API都可以帮助你构建特征工程。如:Microsoft Computer Vision API可以返回图片中脸的张数;

  • 地理编码:可以对“street_address”,“city”和“state”进行地理编码,从而获得“latitude”和“longitude”,并通过其它数据获得当地人口统计资料,如:“median_income_within_2_miles”变量;

  • 其它资源:Facebook跟踪像素,Google Analytics以及其余第三方软件。

误差分析(建模后)
最后一类特征工程发生在建模后——误差分析。
误差分析泛指一类技术——分析模型中错误分类或高错误率的样本,并决定下一步的改进方向的一类技术。
下一步改进方向可能有收集更多的数据,问题分裂化,构建新的特征工程等。在进行误差分析之前,必须弄清楚模型为什么会失效。我们可以做以下工作:

  • 从拥有更大误差的样本入手:误差分析是典型的手动处理处理过程,一般没有时间对每一个样本进行仔细分析。推荐从拥有更大误差的样本入手,从而找出相应的特征,并据此构建出新的特征工程;

  • 用类别对样本进行分割:另一种技术是分割样本,并计算每组样本的平均误差。可以根据这些分组的最高误差来建立指示变量;

  • 非监督聚类:如果不能定位错误分类样本的特征,可以对这些样本施加非监督聚类算法,不推荐盲目地把这些聚类划分成新的特征,但这样做可以更快地定位到错误分类样本的特征。记住,我们的目标是找到模型误分的原因;

  • 寻求同事或领域专家的帮助:作为其他三种技术的补充,寻求同事或领域专家的帮助通常也可以使我们获益。

良性特征
良性特征通常具有如下特点:

  • 可以从将来的观测中计算获得;

  • 具有可解释性;

  • 可通过领域知识或探索性分析获知;

  • 具有潜在的可预测性;

  • 不包含目标变量信息。


http://lihuaxi.xjx100.cn/news/279280.html

相关文章

评分9.7!这本Python书彻底玩大了?程序员:真香!

「超级星推官/每周分享」是一个围绕程序员生活、学习相关的推荐栏目。CSDN出品,每周发布,暂定5期。关键词:靠谱!优质!本期内容,我们将抽1人送出由我司程序员奉为“超级神作”的《疯狂Python讲义》1本&#…

再见微服务

点击上方“方志朋”,选择“设为星标”做积极的人,而不是积极废人来源:http://www.sohu.com/a/321866133_669829本文翻译自Alexandra Noonan 的 Goodbye Microservices: From 100s of problem children to 1 superstar。内容是描述 Segment 的…

《推荐算法工程师培养计划》

推荐作为人工智能领域最为重要的分支,人才需求量在最近几年也一直不断地增加。只要有海量数据的地方,必然就有推荐的需求,因为信息的过滤是AI时代每个人的刚需。所以从某种意义来讲,千人千面,个性化是AI带来的最大的变…

单片机找工作好找吗?不懂英语怎么学会单片机?

我刚毕业的那会,找工作找了1个月多,我们从学校电子实验室出来的几个同学也都没有找到合适的工作,转行做其他行业去了,有的做销售去了,有的做管理去了……只有我坚持了下来。 其实对于刚转行或者刚毕业的兄弟们&#xf…

神经网络中,设计loss function有哪些技巧?

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达本文转自:视学算法神经网络中,设计loss function有哪些技巧?作者:Alan Huanghttps://www.zhihu.com/question/268105631/answer/33524…

怎么看懂别人写的单片机项目代码?

记得刚开始接触代码的时候,总觉得很神秘,也好奇到底是怎样的牛人,才能把这么多复杂的”天书”写出来去。 当时多希望自己一夜之间也拥有这种能力,能自己写代码去把自己的想法通过技术的手段制造出来。 现实哪有这么好的事&#…

如何画出高级酷炫的神经网络图?优秀程序员都用了这几个工具

(图片付费下载于视觉中国)作者 | 言有三 来源 | 有三AI(ID:yanyousan_ai)【导读】本文我们聊聊如何才能画出炫酷高大上的神经网络图,下面是常用的几种工具。1、NN-SVGNN-SVG 可以非常方便的画出各种类型的…

SFB 项目经验-13-为某上市企业仅安装Skype for Business 2016(图解)

******************************************************************************《Skype for Business Server 2015-项目实战》(免费系列规划、部署博文)http://dynamic.blog.51cto.com/711418/1655481 *******************************************…