假设我们有以下数据集:
X1: {4,7,0,1}
X2: {4,3,2,1}
X3: {6,6,6,6}
我想删除任何具有值为> 5
的属性的实例,在此示例中应删除X1和X3。我有超过500个属性,我试图使用:
SubsetByExpression -E "(ATT1 < 6) or ... or (ATT500 < 6)"
确实过滤了大部分实例,但仍然有一些实例的值大于5(我不确定为什么它删除了一些并保留了其他实例)。
是否有其他更合适的过滤器可供使用或以其他方式在WEKA内完成此任务?
更新
这是一个具体的例子。 ARFF文件的内容:
@relation Test
@attribute word_1 NUMERIC
@attribute word_2 NUMERIC
@attribute word_3 NUMERIC
@attribute word_4 NUMERIC
@data
4,7,0,1
4,3,2,1
6,6,6,6
0,5,1,4
我想删除所有具有值为6或更大值的属性的实例,因此应删除第1行和第3行。如果我使用这个过滤器:
SubsetByExpression -E "(ATT1 < 6) or (ATT2 < 6) or (ATT3 < 6) or (ATT4 < 6)"
只删除了一个实例,即第3个实例,但第1个实例仍在那里。
我使用的版本是:3.6.2
答案 0 :(得分:0)
如果您将表达式更改为:
SubsetByExpression -E“(ATT1&lt; 6)和(ATT2&lt; 6)以及(ATT3&lt; 6)和(ATT4&lt; 6),你得到了理想的结果。
我相信你当前的陈述说你应该保留实例,只要一个属性值小于6。这个新陈述说所有属性值都应该小于6