Este operador construye nuevos atributos a partir de los atributos del Conjunto de Ejemplos de entrada (ExampleSet) y constantes arbitrarias. Los nombres de los nuevos atributos y sus descripciones de construcción se definen en el parámetro funtions. Los nombres de los atributos se pueden utilizar como bvariables en la descripción de construcciones. Cuando se evalúan las descripciones sobre cada ejemplo durante la aplicación de este operador, estas variables serán asignadas con los pesos de los atributos de los ejemplos.
Tener en cuenta que hay algunas restricciones para los nombres de los atributos para permitir que este
operador trabaje correctamente:
- No están permitidos los nombres de atributos que contienen paréntesis.
- No están permitidos los nombres de atributos que contienen espacios en blanco.
- Tampoco están permitidos los nombres de atributos con nombres de función u operador.
- Las constantes estándares (ver más adelante) se pueden utilizar, los nombres de atributos con nombres como “e” o “pi” no se permiten.
Si estas condiciones no se cumplen, se deben cambiar los nombres de antemano, por ejemplo con el operador Rename. Al cambiar varios atributos siguiendo un esquema determinado, puede resultar útil el operador Rename by Replacing.
Expresiones soportadas
Las siguientes operaciones están soportadas:
- Adición: +
- Sustracción: -
- Multiplicación: *
- División: /
- Potencia: ^
- Módulo: %
- Menor que: <
- Mayor que: >
- Menor o Igual: <=
- Mayor o Igual: >=
- Igual: ==
- No Igual: !=
- Not Booleano: !
- And Booleano: &&
- Or Booleano: ||
Las siguientes funciones logarítmicas y exponenciales están soportadas:
- Logaritmo Natural: ln(x)
- Logaritmo Base 10: log(x)
- Logaritmo Dualis (Base 2): ld(x)
- Exponencial (e^x): exp(x)
- Potencia: pow(x,y)
Las siguientes funciones trigonométricas están soportadas:
- Seno: sin(x)
- Coseno: cos(x)
- Tangente: tan(x)
- Arco Seno: asin(x)
- Arco Coseno: acos(x)
- Arco Tangente: atan(x)
- Arco Tangente (con 2 parámetros): atan2(x,y)
- Seno Hiperbólico: sinh(x)
- Coseno Hiperbólico: cosh(x)
- Tangente Hiperbólica: tanh(x)
- Seno Hiperbólico Inverso: asinh(x)
- Coseno Hiperbólico Inverso: acosh(x)
- Tangente Hiperbólica Inversa: atanh(x)
Las siguientes funciones estadísticas están soportadas:
- Redondeo: round(x)
- Redondeo a p decimales: round(x,p)
- Piso: floor(x)
- Techo: ceil(x)
- Media: avg(x,y,z...)
- Mínimo: min(x,y,z...)
- Máximo: max(x,y,z...)
Las siguientes funciones misceláneas están soportadas:
- If-Then-Else: if(cond, evaluación-verdadero, evaluación-falso)
- Valor Absoluto: abs(x)
- Raíz Cuadrada: sqrt(x)
- Signo (devuelve el signo de un número): sgn(x)
- Número Aleatorio (entre 0 y 1): rand()
- Módulo (x % y): mod(x,y)
- Suma de k Números: sum(x,y,z...)
- Coeficientes Binomiales: binom(n, i)
- Número a Cadena: str(x)
- Cadena a Número: parse(x)
- Subcadena: cut(x, start, len)
Las siguientes funciones relacionadas a procesos están soportadas:
- Recuperar el valor de un parámetro: param("operator", "parameter")
Junto a los atributos y las operaciones y funciones antes mencionadas, este operador también soporta las constantes pi y e si esto se especifica por el parámetro correspondiente “use standard constants” (por defecto: true). También se pueden utilizar cadenas en las fórmulas (por ejemplo, en una fórmula ifcondicional), pero los valores de cadena tienen que estar encerrados entre comillas dobles (").
Ejemplos
a1+sin(a2*a3)
if (att1>5, att2*att3,-abs(att1))