Class Ranker

  • All Implemented Interfaces:
    Serializable, RankedOutputSearch, StartSetHandler, OptionHandler, RevisionHandler

    public class Ranker
    extends ASSearch
    implements RankedOutputSearch, StartSetHandler, OptionHandler
    Ranker :

    Ranks attributes by their individual evaluations. Use in conjunction with attribute evaluators (ReliefF, GainRatio, Entropy etc).

    Valid options are:

     -P <start set>
      Specify a starting set of attributes.
      Eg. 1,3,5-7.
      Any starting attributes specified are
      ignored during the ranking.
     
     -T <threshold>
      Specify a theshold by which attributes
      may be discarded from the ranking.
     
     -N <num to select>
      Specify number of attributes to select
     
    Version:
    $Revision$
    Author:
    Mark Hall (mhall@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Constructor Detail

      • Ranker

        public Ranker()
        Constructor
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing this search method
        Returns:
        a description of the search suitable for displaying in the explorer/experimenter gui
      • numToSelectTipText

        public String numToSelectTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setNumToSelect

        public void setNumToSelect​(int n)
        Specify the number of attributes to select from the ranked list. -1 indicates that all attributes are to be retained.
        Specified by:
        setNumToSelect in interface RankedOutputSearch
        Parameters:
        n - the number of attributes to retain
      • getNumToSelect

        public int getNumToSelect()
        Gets the number of attributes to be retained.
        Specified by:
        getNumToSelect in interface RankedOutputSearch
        Returns:
        the number of attributes to retain
      • getCalculatedNumToSelect

        public int getCalculatedNumToSelect()
        Gets the calculated number to select. This might be computed from a threshold, or if < 0 is set as the number to select then it is set to the number of attributes in the (transformed) data.
        Specified by:
        getCalculatedNumToSelect in interface RankedOutputSearch
        Returns:
        the calculated number of attributes to select
      • thresholdTipText

        public String thresholdTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setThreshold

        public void setThreshold​(double threshold)
        Set the threshold by which the AttributeSelection module can discard attributes.
        Specified by:
        setThreshold in interface RankedOutputSearch
        Parameters:
        threshold - the threshold.
      • getThreshold

        public double getThreshold()
        Returns the threshold so that the AttributeSelection module can discard attributes from the ranking.
        Specified by:
        getThreshold in interface RankedOutputSearch
        Returns:
        a threshold by which to discard attributes
      • generateRankingTipText

        public String generateRankingTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setGenerateRanking

        public void setGenerateRanking​(boolean doRank)
        This is a dummy set method---Ranker is ONLY capable of producing a ranked list of attributes for attribute evaluators.
        Specified by:
        setGenerateRanking in interface RankedOutputSearch
        Parameters:
        doRank - this parameter is N/A and is ignored
      • getGenerateRanking

        public boolean getGenerateRanking()
        This is a dummy method. Ranker can ONLY be used with attribute evaluators and as such can only produce a ranked list of attributes
        Specified by:
        getGenerateRanking in interface RankedOutputSearch
        Returns:
        true all the time.
      • startSetTipText

        public String startSetTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setStartSet

        public void setStartSet​(String startSet)
                         throws Exception
        Sets a starting set of attributes for the search. It is the search method's responsibility to report this start set (if any) in its toString() method.
        Specified by:
        setStartSet in interface StartSetHandler
        Parameters:
        startSet - a string containing a list of attributes (and or ranges), eg. 1,2,6,10-15.
        Throws:
        Exception - if start set can't be set.
      • getStartSet

        public String getStartSet()
        Returns a list of attributes (and or attribute ranges) as a String
        Specified by:
        getStartSet in interface StartSetHandler
        Returns:
        a list of attributes (and or attribute ranges)
      • setOptions

        public void setOptions​(String[] options)
                        throws Exception
        Parses a given list of options.

        Valid options are:

         -P <start set>
          Specify a starting set of attributes.
          Eg. 1,3,5-7.
          Any starting attributes specified are
          ignored during the ranking.
         
         -T <threshold>
          Specify a theshold by which attributes
          may be discarded from the ranking.
         
         -N <num to select>
          Specify number of attributes to select
         
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class ASSearch
        Parameters:
        options - the list of options as an array of strings
        Throws:
        Exception - if an option is not supported
      • getOptions

        public String[] getOptions()
        Gets the current settings of ReliefFAttributeEval.
        Specified by:
        getOptions in interface OptionHandler
        Overrides:
        getOptions in class ASSearch
        Returns:
        an array of strings suitable for passing to setOptions()
      • search

        public int[] search​(ASEvaluation ASEval,
                            Instances data)
                     throws Exception
        Kind of a dummy search algorithm. Calls a Attribute evaluator to evaluate each attribute not included in the startSet and then sorts them to produce a ranked list of attributes.
        Specified by:
        search in class ASSearch
        Parameters:
        ASEval - the attribute evaluator to guide the search
        data - the training instances.
        Returns:
        an array (not necessarily ordered) of selected attribute indexes
        Throws:
        Exception - if the search can't be completed
      • rankedAttributes

        public double[][] rankedAttributes()
                                    throws Exception
        Sorts the evaluated attribute list
        Specified by:
        rankedAttributes in interface RankedOutputSearch
        Returns:
        an array of sorted (highest eval to lowest) attribute indexes
        Throws:
        Exception - of sorting can't be done.
      • toString

        public String toString()
        returns a description of the search as a String
        Overrides:
        toString in class Object
        Returns:
        a description of the search