我正在使用 WEKA 处理 KDD99 数据集。数据集中存在三种类型的属性,即名义属性、二进制属性和数值属性。但在 WEKA 中,它也将二进制数据视为数字数据。
我尝试使用 Unsupervised-attribute-Normalize 工具来标准化数据。然而,它也会规范化二进制数据。我这里有两个问题。
我需要标准化二进制属性吗?因为二进制数据不是连续的。
如果我不需要规范化二进制属性,在 WEKA 中,如何在规范化工具中选择属性?因为标准化工具始终适用于所有数字属性(包括二进制属性)。
谢谢!
最佳答案
Weka 已将输入文件中的二进制属性解释为数字,因为它们的值都是数字(即 0 和 1),但如果您要使用可以处理名义属性的分类器,您可能需要转换二进制属性改为名义上的。
您可以使用 weka.filters.unsupervised.attribute.Discretize
过滤器来执行此操作。只需指定二进制属性的数字索引并将 bin 数量指定为 2。
这将为您提供标称值标签为 (-inf-0.5]
和 (0.5-inf)
的属性,但如果您希望将它们视为 0
和 1
您可以使用 weka.filters.unsupervised.attribute.RenameNominalValues
重命名这些值。
关于machine-learning - 在 Weka 中 - 不规范所有数字属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51894550/