在分类中添加布尔特征的逻辑组合

数据挖掘 分类 特征选择 二进制
2022-03-12 09:38:03

我想从仅包含布尔值的向量数据集中构建分类器。如果在学习之前添加包含原始特征组合(使用逻辑运算符« OR »和« AND »)的特征,我的分类器是否有可能表现更好,或者那将毫无意义?

例如,我有以下数据集:

            feature A   feature B   feature C
vector 1    True        False       True
vector 2    True        True        False
vector 3    False       True        True

想象一下,我有这样的感觉,即数据对特征 C 和特征 D 都为 True 的事实通常会使它进入一个特定的类别。在学习构建分类器的数据之前,我是否应该向每个向量添加由逻辑运算 « 特征 B AND 特征 C » 计算的额外特征:

            feature A   feature B   feature C   feature D
vector 1    True        False       True        False   
vector 2    True        True        False       False
vector 3    False       True        True        True

或者分类器是否会考虑“特征 B 和特征 C”的相关性?它是否取决于算法(svm、Knn 等)?

3个回答

尝试一下,看看会发生什么。神经网络没有足够的表示能力来学习没有至少一个隐藏层的 XOR 运算,所以肯定有一些有趣的特征可以用逻辑运算来构建。AND 操作等价于乘法,对应于交互项线性模型。

但是,是的,它确实取决于模型。例如,决策树可以自己学习这些类型的特征(尽管不一定)。例如,AND 操作将对应于同一分支上的两个测试。

我首先要指出,对于几乎所有众所周知的模型,需要这样做的数据可能会得到几乎总是无用的结果。但是考虑到这一点,尤其是具有大量特征:对于纯 AND 和纯 OR 的各种逻辑组合可能性的 k=1..n 组合有 (n 选择 k),因此您必须非常巧妙地处理这个问题。一个非常大的帕斯卡三角形可以让你更好地了解在足够的特征之后会接近什么。由于您可以使用一系列 AND/OR 对任何布尔公式进行建模,然后分别进行 ORed/AND 运算,如果您的数据集与示例一样小,您可以尝试每种组合。

如前所述,决策树是寻找布尔组合最接近的模型,尽管它们的策略与仅优化原始逻辑组合而不会过度拟合的策略几乎相反,因为使用的阈值并不等同于这个问题。

我建议当有疑问时,创建特征并检查特征重要性,这可以通过拟合随机森林来完成。

以我自己的经验,我曾经尝试按照您建议的方式创建功能,并且这些功能的功能重要性极差。除此之外,该模型的性能比没有额外功能时更差,所以它对我来说不是很好。但最后,您将始终需要检查您的数据会发生什么。