Package weka.core

Class AttributeExpression

  • All Implemented Interfaces:
    java.io.Serializable, RevisionHandler

    public class AttributeExpression
    extends java.lang.Object
    implements java.io.Serializable, RevisionHandler
    A general purpose class for parsing mathematical expressions involving attribute values. Values can be provided in an array or in an Instance. Values are accessed in the expression by prefixing their index (starting at 1) with the character 'a'.
     Example expression: a1^2*a5/log(a7*4.0) 
    Supported opperators: +, -, *, /, ^, log, abs, cos, exp, sqrt, floor, ceil, rint, tan, sin, (, ).
    Version:
    $Revision: 5989 $
    Author:
    Mark Hall
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void convertInfixToPostfix​(java.lang.String infixExp)
      Converts a string containing a mathematical expression in infix form to postfix form.
      void evaluateExpression​(double[] vals)
      Evaluate the expression using the supplied array of attribute values.
      double evaluateExpression​(Instance instance)
      Evaluate the expression using the supplied Instance.
      java.lang.String getPostFixExpression()
      Return the postfix expression
      java.lang.String getRevision()
      Returns the revision string.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • AttributeExpression

        public AttributeExpression()
    • Method Detail

      • convertInfixToPostfix

        public void convertInfixToPostfix​(java.lang.String infixExp)
                                   throws java.lang.Exception
        Converts a string containing a mathematical expression in infix form to postfix form. The result is stored in the vector m_postfixExpVector
        Parameters:
        infixExp - the infix expression to convert
        Throws:
        java.lang.Exception - if something goes wrong during the conversion
      • evaluateExpression

        public double evaluateExpression​(Instance instance)
                                  throws java.lang.Exception
        Evaluate the expression using the supplied Instance. Assumes that the infix expression has been converted to postfix and stored in m_postFixExpVector
        Parameters:
        instance - the Instance containing values to apply the expression to
        Throws:
        java.lang.Exception - if something goes wrong
      • evaluateExpression

        public void evaluateExpression​(double[] vals)
                                throws java.lang.Exception
        Evaluate the expression using the supplied array of attribute values. The result is stored in the last element of the array. Assumes that the infix expression has been converted to postfix and stored in m_postFixExpVector
        Parameters:
        vals - the values to apply the expression to
        Throws:
        java.lang.Exception - if something goes wrong
      • getPostFixExpression

        public java.lang.String getPostFixExpression()
        Return the postfix expression
        Returns:
        the postfix expression as a String
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getRevision

        public java.lang.String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface RevisionHandler
        Returns:
        the revision