【机器学习入门系列】第四章 特征工程

欢迎来到我们的7部分数据科学和应用机器学习迷你课程!

在上一章中,您学习了一个可靠的清理数据集的框架。我们修复了结构错误,处理了缺失数据和过滤后的观察。

在本指南中,我们将了解如何执行  特征工程以帮助我们的算法并提高模型性能。

请记住,在所有核心步骤中,数据科学家通常将大部分时间花在功能工程上:

什么成功的模式

 

什么是特征工程?

特征工程是关于从现有的输入特征创建新的输入特征

通常,您可以将数据清理视为减法和特征工程的过程,作为添加过程。

这通常是数据科学家为提高模型性能而可以做的最有价值的任务之一,原因有三个:

  1. 您可以隔离和突出显示关键信息,这有助于您的算法“专注”重要事项。
  2. 您可以引入自己的领域专业知识
  3. 最重要的是,一旦你理解了特征工程的“词汇”,就可以引入其他人的领域专业知识!

在本课中,我们将介绍几种启发式方法,以帮助激发新想法。

在继续之前,我们只想指出这不是所有特征工程的详尽概要,因为这一步有无限的可能性。

好消息是,随着您获得更多经验,这项技能将自然得到改善。

特征工程

变得优雅。

 

注入领域知识

您通常可以通过利用您(或其他人)关于域的专业知识来设计信息功能。

尝试考虑您可能想要隔离的特定信息。在这里,你有很多“创作自由”。

回到我们的房地产数据集的例子,让我们说你记得住房危机发生在同一时间框架内......

Zillow截图

截图取自Zillow Home Values

好吧,如果您怀疑价格会受到影响,您可以 在此期间为交易创建  指标变量。指标变量是二进制变量,可以是0或1.它们“指示”观察是否满足某个条件,并且它们对于隔离关键属性非常有用。

正如您可能怀疑的那样,“领域知识”是非常广泛和开放的。在某些时候,你会陷入困境或用尽你的想法。

这就是接下来的几个步骤的来源。这些是一些特定的启发式方法,可以帮助激发更多。

 

创建交互功能

加入力量

加入力量。

这些启发式方法中的第一个是检查您是否可以创建任何有意义的交互功能。这些是两个或更多功能的组合。

顺便说一句,在某些情况下,“交互术语”必须是两个变量之间的乘积。在我们的上下文中,交互功能可以是两个功能之间的产品总和差异

一般提示是查看每对功能并问自己,“我能以任何可能更有用的方式组合这些信息吗?”

示例(房地产)

  • 假设我们已经有一个名为'num_schools'的功能,即距离酒店5英里范围内的学校数量。
  • 假设我们也有'median_school'这个功能,即这些学校的中位数质量得分。
  • 但是,我们可能会怀疑,真正重要的是  拥有许多学校选择,但前提是它们是好的。
  • 那么,以捕获互动,我们可以简单的创建一个新的功能  “school_score”   “num_schools”  X  “median_school”

 

结合稀疏类

我们将考虑的下一个启发式算法是对稀疏类进行分组。

稀疏类  (在分类特征中)是具有非常少的总观察值的类。它们对于某些机器学习算法可能是有问题的,导致模型过度拟合。

  • 没有关于每个班级需要多少人的正式规则。
  • 它还取决于数据集的大小和您拥有的其他功能的数量。
  • 根据  经验,我们建议组合类,直到每个类至少有~50个观察值。与任何“经验法则”一样,使用此作为指导(实际上不作为  规则)。

我们来看看房地产的例子:

在分组稀疏类之前

首先,我们可以对类似的类进行分组。在上面的图表中,  'exterior_walls' 功能有几个非常相似的类。

  • 我们可能希望将“Wood Siding”,“Wood Shingle”和“Wood”组合成一个单独的类。事实上,让我们将它们全部标记为“Wood”。

接下来,我们可以将剩余的稀疏类分组为单个“其他”类,即使已经存在“其他”类。

  • 我们将'Concrete Block','Stucco','Masonry','Other'和'Asbestos shingle'组合成'Other'。

以下是类分布在组合类似和其他类之后的样子:

在对稀疏类进行分组之后

在组合稀疏类之后,我们有更少的唯一类,但每个类都有更多的观察。

通常,眼球测试足以决定是否要将某些类组合在一起。

 

添加虚拟变量

大多数机器学习算法不能直接处理分类特征。具体来说,他们无法处理文本值。

因此,我们需要为分类特征创建虚拟变量。

虚拟变量是一组二进制(0或1)变量,每个变量代表一个分类特征中的单个类。

您表示的信息完全相同,但此数字表示允许您传递算法的技术要求。

在上面的例子中,在对稀疏类进行分组之后,我们留下了8个类,它们转换为8个虚拟变量:

虚拟变量示例

(第3栏描绘了用砖墙观察的例子)

 

删除未使用的功能

最后,从数据集中删除未使用或冗余的功能。

未使用的功能是那些无法传递到我们的机器学习算法中的功能。例子包括:

  • ID列
  • 预测时无法使用的功能
  • 其他文字说明

冗余功能通常是那些已被功能工程中添加的其他功能所取代的功能。

 

章节测验

完成数据清理和特征工程后,您将原始数据集转换为  分析基表(ABT)。我们将其称为“ABT”,因为它将是您构建模型的原因。

最后一个提示:并非您工程师的所有功能都需要成为赢家。事实上,您经常会发现其中许多都没有改进您的模型。这很好,因为一个高度预测的功能可以弥补10个哑弹。

关键是选择机器学习算法,可以自动选择多个选项中的最佳功能内置功能选择)。

尽管提供了许多输入功能,但这样可以避免过度拟合模型。

 

乒乓球桌

“请有人请Alex离开乒乓球桌吗?我们等着玩!”


小测验时间!

  • 什么是指标变量,为什么它们有用?
  • 您可以使用两个标准来分组稀疏类?
  • 在从同一特征创建的一组虚拟变量中,是否会有多个值为1的变量(每次观察)?
  • 在我们的房地产示例中, 如果房产有金属墙,那么'exterior_walls'虚拟变量的值是多少?

 

原文:https://elitedatascience.com/feature-engineering

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值