通过组合具有不同单位的 2 个特征来创建一个特征?

数据挖掘 机器学习
2022-02-17 06:38:58

如果我想通过将 2 个功能与同一单位相结合来创建一个新功能,我可以将它们相减(例如买入量与卖出量)。如果单位不同,减去它们没有意义(例如交易量与订单大小)。如果保证其中一项功能永远不会为 0,我可以将它们分开。

如果任一特征都可以为 0,那么比较它们的最佳方法是什么?如果分母为 0,我不想使用任意高数来表示无穷大。

2个回答

只有当它们处于相同比例时,您才能组合多个特征。

将特征 A 与可能值范围 (100-1000) 与特征 B 与可能值范围 (1-10) 组合将导致特征偏向 A。

您需要将它们标准化为相同的规模。

对于 A 的每个值 X = (X - 最小(A))/(最大(A) - 最小(A))
对于 B 的每个值 Y = (Y - 最小(B))/(最大(B) - 最小(乙))

现在 A 和 B 的所有值都在 (0,1) 的范围内。您可以根据每个属性的权重添加。如果两者同等重要,则 C = (0.5 * A) + (0.5 * B),如果 A 应占重量的 70%,则 C = (0.7 * A) + (0.3 * B)

简而言之,没有规则,也没有“最佳方式”。统计学习器的任何组合特征都可以根据两个基本标准来判断:

  • 它在问题领域有意义吗?

  • 它是否改进了您在模型中关心的指标?

如果你想比较两个完全不同的特性,那么你可能需要引入某种比例因子。在这种情况下,您可以根据偏离均值的标准差数量,或者两个特征是否在各自分布的同一四分位数进行比较。这种比较不依赖于特征的单位。

如果单位不同,减去它们没有意义(例如交易量与订单大小)。

输入统计分类器或回归系统的特征实际上是无单位的。鉴于此,您可以进行任何您喜欢的数学转换。尽管有些在您的问题领域比其他更有意义。

一旦进入您的模型,就有机会以各种组合对数字进行比较、相乘、相加、相减。例如,神经网络绝对是这样。

如果它有帮助,您可以将任何归一化,甚至是模型的权重视为具有将输入单位归一化以使其全部兼容的单位。使用远离平均值的标准偏差数是实现此目的的简单方法,但不是唯一方法。

这种方法的例外是更像科学模型的模型,其中单位被仔细跟踪并应用固定公式。即使是那些通常具有进行单位转换的常数。

如果任一特征都可以为 0,那么比较它们的最佳方法是什么?

取决于特征和分类器,但如果可能,并使用线性或逻辑回归,我会执行以下操作:

  • 或者,对每个特征进行非线性变换,使其分布遵循看起来大致类似于正态分布的钟形曲线。

  • 将两个特征标准化为均值 0,标准差 1。

  • 从另一个中减去一个。

  • 规范化新特征。如果您组合的两个单位是相关的,那么新功能可能有一个有趣的分布 - 值得绘制并查看。

还有其他同样有效的方法。部分取决于您打算使用的 ML 模型。如上所述的归一化适用于线性或逻辑回归、神经网络(我会让 NN 在这里找到派生特征,除非我认为由于领域知识而这真的很重要)、kNN 或其他可能使用简单距离度量的模型。