来自MathExpression的 javadoc
“A”字母是指正在处理的属性的值。其他属性值(仅限数字)可以通过变量 A1、A2、A3、... 访问
您的过滤器适用于数据集的所有属性。如果我加载虹膜数据集并应用以下过滤器。
weka.filters.unsupervised.attribute.MathExpression -E log(A)。
您的属性,sepallength 值更改如下。
Before Filter After Filter
Minimum 4.3 Minimum 1.459
Maximum 7.9 Maximum 2.067
Mean 5.843 Mean 1.755
StdDev 0.828 StdDev 0.141
另外,如果您查看 javadoc,则没有 ifelse 函数,而是 ifelse 函数。因此你应该写类似
ifelse ( (A == 2 || A == 0), 1,0 )
此过滤器也适用于所有属性。如果您只想更改一个属性并根据其他属性值进行更改;那么您需要使用“忽略范围选项”并使用 A1、A2 来引用其他属性值。
如果您需要添加新属性,请使用AddExpression。
通过将数学表达式应用于现有属性来创建新属性的实例过滤器。