【问题标题】:In Weka - not normalize all the numeric attribute在 Weka - 不规范化所有数字属性
【发布时间】:2019-01-24 10:43:33
【问题描述】:
我正在使用 WEKA 处理 KDD99 数据集。数据集中有三种类型的属性,即名义型、二进制型和数值型。但在 WEKA 中,它也将二进制数据视为数字。
我尝试使用 Unsupervised-attribute-Normalize 工具来规范化数据。但是,它也会对二进制数据进行规范化。我有两个问题。
是否需要规范化二进制属性?因为二进制数据是不连续的。
如果我不需要在 WEKA 中规范化二进制属性,如何在 Normalize 工具中选择属性?因为 Normalize 工具始终适用于所有数值属性(包括二进制属性)。
谢谢!
【问题讨论】:
标签:
machine-learning
weka
normalization
feature-selection
normalize
【解决方案1】:
Weka 已将输入文件中的二进制属性解释为数字,因为它们的值都是数字(即 0 和 1),但如果您要使用可以处理名义属性的分类器,您可能需要转换二进制属性改为名义上的。
您可以使用weka.filters.unsupervised.attribute.Discretize 过滤器来做到这一点。只需指定二进制属性的数字索引并将箱数指定为 2。
这将为您提供标称值标签为(-inf-0.5] 和(0.5-inf) 的属性,但如果您希望将它们视为0 和1,您可以使用weka.filters.unsupervised.attribute.RenameNominalValues 重命名这些值。