这是要素工程的良好做法吗?


10

我有一个有关功能工程的实际问题...说我想通过逻辑回归来预测房价,并使用了包括邮政编码在内的许多功能。然后,通过检查功能的重要性,我意识到zip是一个很好的功能,因此我决定基于zip添加更多功能-例如,我去了人口普查局,并获得了平均收入,人口,学校数量和数量每个邮局的医院。有了这四个新功能,我现在发现模型性能更好。因此,我添加了更多与zip相关的功能...这个循环一直在进行。最终,模型将由这些与zip相关的功能所主导,对吗?

我的问题:

  1. 首先做这些有意义吗?
  2. 如果是,我怎么知道什么时候该停止这个周期?
  3. 如果没有,为什么不呢?

Answers:


6

如果您可以继续添加新数据(基于主要概念,例如区域,即邮政编码),并且模型的性能有所提高,那么当然可以……假设您只关心最终结果。

有一些指标可以尝试为您提供指导,例如Akaike信息标准(AIC)或类似的贝叶斯信息标准(BIC)。这些本质上有助于根据模型的性能来选择模型,并会因引入的所有其他必须估算的参数而受到惩罚。AIC看起来像这样:

AIC=2k2ln(L^)

kL^k

这些条件可以帮助您告诉何时停止,因为您可以尝试使用越来越多的参数的模型,而只需选择具有最佳AIC或BIC值的模型即可。

如果模型中还有其他功能(与ZIP无关),则它们可能会变得不堪重负-这取决于您使用的模型。但是,他们也可能会解释有关数据集的事情,而这些事情根本无法包含在ZIP信息中,例如房屋的地板面积(假设这与ZIP代码相对独立)。

在这种情况下,您可以将它们与“主成分分析”之类的进行比较,其中一组特征解释了数据集方差的一个三维,而其他特征则解释了另一个维度。因此,无论您拥有多少与ZIP相关的功能,都可能永远无法解释占地面积的重要性。


7

1)是的,这很有道理。尝试手动创建要素将帮助学习者(即模型)从原始数据中获取更多信息,因为原始数据并不总是以易于学习的形式出现,但是您始终可以从中构造特征。您要添加的功能基于一项功能。这很常见。但是,您的学习者(逻辑回归)对多重共线性敏感。您需要注意添加哪些功能以及添加多少功能。否则,您的模型可能会过拟合。

2)由于您使用的是逻辑回归,因此在添加新结构之前,您始终可以使用AIC或执行统计显着性检验(例如卡方检验(测试拟合优度))来确定响应的分布是否确实不同有和没有这种结构。当您的数据不足时,这特别有用。另一种方法是在模型中添加惩罚项。例如,逻辑套索回归。

3)不断添加新功能并不总是一个好主意。注意高维的诅咒。添加新功能时,实际上是在数据上添加新维度。天真的,人们可能会认为收集更多功能永远不会有伤害,因为在最坏的情况下,它们不提供有关该类的新信息。但是实际上,它们的好处可能会因维数的诅咒而被抵消。我希望有关机器学习 session6的有用知识对您有所帮助。


@ user3768495是否使用例如交叉验证来评估样本外模型的性能?如果是这样,多重共线性应该不是问题,并且他不必担心过度拟合,因为他会通过验证性能下降来获得过度拟合的迹象。
rinspy

@rinspy过度拟合有很多面孔。包含验证集可以帮助避免过度拟合,但不能解决问题。例如,训练数据(分为训练集和验证集)与实际总体之间的分布不一致。即使模型在训练数据中表现良好,也可能无法推广到实际情况。我的答案中的参考文献也谈到过拟合。
Fansly

的确如此,但避免多重共线性将无助于协变量移位引起的“过度拟合”。我只是说,如果他对建立预测(而不是描述性)模型感兴趣,那么多重共线性可能不是问题。
rinspy

我关于过拟合的概念是关于模型何时无法推广到新的数据集而不是没有训练数据。请查看此内容
Fansly

4

通常,功能越丰富越好。

但是要记住的一件事是,回归通常不适用于高度相关的数据(多重共线性)。当您以这种方式扩展功能时,可能要牢记这一点。

关于这个主题有很多信息(以及缓解的潜在方法),只有谷歌回归和多重共线性。

简而言之,

  1. 是。明确地。
  2. @ n1k31t4有一些好的建议。随意生成您认为可以改善模型的功能,然后可以使用PCA等技术和其他功能选择技术将自己限制在重要的范围内。
  3. 要考虑的另一件事是努力与结果的实用性。

0

特征是模型的信息。信息越多,执行和预测的能力就越好。它越少,就越难预测值。因此,简短的回答是肯定的。拥有尽可能多的功能总是值得的。尽管总会有一个限制,因为信息过载也可能烧毁您的处理器,因此请注意要设计多少功能。另外,不必要的功能只会增加工作量,因此清理某些功能始终是一个好习惯。整个数据预处理阶段就是这样。

第一个答案对此有一些详细说明。就停止周期而言,您需要了解一些衡量指标和因素,以检查模型在哪些地方停止了更好的表现,而这些衡量指标和因素是RMSE。一个简单的示例将对xgboost数据使用回归并指定循环数。运行模型,您将获得每个周期的RMSE。它将减少到一个极限,之后您可以推断出模型在特定周期后达到稳定状态。这就是模型调整和优化的工作方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.