2

总结我对“虚拟编码”主题的理解通常被理解为将具有 K 个可能值的标称属性编码为 K-1 个二进制虚拟对象。据我所知,K 值的使用会导致冗余并对逻辑回归产生负面影响。到目前为止,一切对我来说都很清楚。

然而,有两个问题我不清楚:

1)考虑到上述问题,我很困惑 WEKA 中的“逻辑”分类器实际上使用了 K 个假人(见图)。为什么会这样?

2)一旦我考虑属性选择,就会出现一个问题。在隐含包含遗漏的属性值的情况下,如果所有虚拟对象都实际用于模型,则所有虚拟对象都为零,如果缺少一个虚拟对象(在属性选择中未选择),则不再清楚地包含它。我上传的草图很容易理解这个问题。如何处理这个问题?

第二

图片

WEKA 输出: Logistic 算法在 UCI 数据集 German Credit 上运行,其中第一个属性的可能值是 A11、A12、A13、A14。所有这些都包含在逻辑回归模型中。http://abload.de/img/bildschirmfoto2013-089out9.png

决策树示例:草图显示了在属性选择后在具有虚拟编码实例的数据集上运行决策树时出现的问题。http://abload.de/img/sketchziu5s.jpg

4

1 回答 1

1

当您使用 k 个哑元而不是 k-1 个哑元时,输出通常更易于阅读、解释和使用。我认为这就是为什么每个人似乎实际上都在使用 k 假人。但是,是的,因为 k 值总和为 1,因此存在可能导致问题的相关性。但是数据集中的相关性很常见,你永远不会完全摆脱它们!

我相信特征选择和虚拟编码不适合。它等于从属性中删除一些值。为什么要坚持做特征选择?

您确实应该使用加权,或者考虑可以处理此类数据的更高级算法。事实上,虚拟变量可能会造成同样多的麻烦,因为它们是二进制的,哦,这么多算法(例如 k-means)对二进制变量没有多大意义。

至于决策树:不要执行,对您的输出属性进行特征选择......另外,由于决策树已经选择了特征,所以无论如何都做这一切没有意义......把它留给决策树决定使用哪个属性进行拆分。这样,它也可以学习依赖关系。

于 2013-08-26T07:27:50.207 回答