Class WekaBootstrapping

  • All Implemented Interfaces:
    AdditionalInformationHandler, CleanUpHandler, Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, Randomizable, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, VariableChangeListener, Actor, ErrorHandler, InputConsumer, OutputProducer, Serializable, Comparable

    public class WekaBootstrapping
    extends AbstractTransformer
    implements Randomizable
    Performs bootstrapping on the incoming evaluation and outputs a spreadsheet where each row represents the results from bootstrapping sub-sample.

    Input/output:
    - accepts:
       weka.classifiers.Evaluation
       adams.flow.container.WekaEvaluationContainer
    - generates:
       adams.data.spreadsheet.SpreadSheet


    Container information:
    - adams.flow.container.WekaEvaluationContainer: Evaluation, Model, Prediction output, Original indices

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: WekaBootstrapping
     
    -annotation <adams.core.base.BaseAnnotation> (property: annotations)
        The annotations to attach to this actor.
        default: 
     
    -skip <boolean> (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded 
        as it is.
        default: false
     
    -stop-flow-on-error <boolean> (property: stopFlowOnError)
        If set to true, the flow execution at this level gets stopped in case this 
        actor encounters an error; the error gets propagated; useful for critical 
        actors.
        default: false
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing 
        actor handler must have this enabled as well.
        default: false
     
    -seed <long> (property: seed)
        The seed for generating the random sub-samples.
        default: 1
     
    -num-subsamples <int> (property: numSubSamples)
        The number of random sub-samples to generate.
        default: 10
        minimum: 1
     
    -percentage <double> (property: percentage)
        The percentage of the sub-sample size (between 0 and 1).
        default: 0.66
        minimum: 1.0E-4
        maximum: 1.0
     
    -statistic <Number correct|Number incorrect|Number unclassified|Percent correct|Percent incorrect|Percent unclassified|Kappa statistic|Mean absolute error|Root mean squared error|Relative absolute error|Root relative squared error|Correlation coefficient|SF prior entropy|SF scheme entropy|SF entropy gain|SF mean prior entropy|SF mean scheme entropy|SF mean entropy gain|KB information|KB mean information|KB relative information|True positive rate|Num true positives|False positive rate|Num false positives|True negative rate|Num true negatives|False negative rate|Num false negatives|IR precision|IR recall|F measure|Matthews correlation coefficient|Area under ROC|Area under PRC|Weighted true positive rate|Weighted false positive rate|Weighted true negative rate|Weighted false negative rate|Weighted IR precision|Weighted IR recall|Weighted F measure|Weighted Matthews correlation coefficient|Weighted area under ROC|Weighted area under PRC|Unweighted Macro F measure|Unweighted Micro F measure|Bias|R^2> [-statistic ...] (property: statisticValues)
        The evaluation values to extract and turn into a spreadsheet.
        default: 
     
    -class-index <adams.data.weka.WekaLabelIndex> (property: classIndex)
        The index of class label (eg used for AUC).
        default: first
        example: An index is a number starting with 1; apart from label names (case-sensitive), the following placeholders can be used as well: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); label names can be surrounded by double quotes.
     
    -percentile <adams.core.base.BaseDouble> [-percentile ...] (property: percentiles)
        The percentiles to calculate for the errors (0-1; 0.95 is 95th percentile
        ).
        default: 
     
    -error-calculation <ACTUAL_MINUS_PREDICTED|PREDICTED_MINUS_ACTUAL|BOTH|ABSOLUTE> (property: errorCalculation)
        Determines how to calculate the error.
        default: ACTUAL_MINUS_PREDICTED
     
    -with-replacement <boolean> (property: withReplacement)
        If enabled, predictions are drawn using with replacement (i.e., duplicates 
        are possible).
        default: true
     
    Version:
    $Revision$
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Seed

        protected long m_Seed
        the random number seed.
      • m_NumSubSamples

        protected int m_NumSubSamples
        the number of random sub-samples to generate.
      • m_Percentage

        protected double m_Percentage
        the size for the sub-samples (0-1).
      • m_ClassIndex

        protected WekaLabelIndex m_ClassIndex
        the index of the class label.
      • m_Percentiles

        protected BaseDouble[] m_Percentiles
        the percentiles to output (0-1).
      • m_WithReplacement

        protected boolean m_WithReplacement
        whether to use with replacement or not.
    • Constructor Detail

      • WekaBootstrapping

        public WekaBootstrapping()
    • Method Detail

      • setSeed

        public void setSeed​(long value)
        Sets the seed value.
        Specified by:
        setSeed in interface Randomizable
        Parameters:
        value - the seed
      • getSeed

        public long getSeed()
        Returns the seed value.
        Specified by:
        getSeed in interface Randomizable
        Returns:
        the seed
      • seedTipText

        public String seedTipText()
        Returns the tip text for this property.
        Specified by:
        seedTipText in interface Randomizable
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setNumSubSamples

        public void setNumSubSamples​(int value)
        Sets the number sub-samples to generate.
        Parameters:
        value - the number of sub-samples
      • getNumSubSamples

        public int getNumSubSamples()
        Returns the number of sub-samples to generate.
        Returns:
        the number of sub-samples
      • numSubSamplesTipText

        public String numSubSamplesTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPercentage

        public void setPercentage​(double value)
        Sets the percentage (0-1).
        Parameters:
        value - the percentage
      • getPercentage

        public double getPercentage()
        Returns the percentage (0-1).
        Returns:
        the percentage
      • percentageTipText

        public String percentageTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStatisticValues

        public void setStatisticValues​(EvaluationStatistic[] value)
        Sets the values to extract.
        Parameters:
        value - the value
      • getStatisticValues

        public EvaluationStatistic[] getStatisticValues()
        Returns the values to extract.
        Returns:
        the value
      • statisticValuesTipText

        public String statisticValuesTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setClassIndex

        public void setClassIndex​(WekaLabelIndex value)
        Sets the index of class label index (1-based).
        Parameters:
        value - the label index
      • getClassIndex

        public WekaLabelIndex getClassIndex()
        Returns the current index of class label (1-based).
        Returns:
        the label index
      • classIndexTipText

        public String classIndexTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPercentiles

        public void setPercentiles​(BaseDouble[] value)
        Sets the percentiles to calculate for the errors.
        Parameters:
        value - the percentiles (0-1; 0.95 is 95th percentile)
      • getPercentiles

        public BaseDouble[] getPercentiles()
        Returns the percentiles to calculate for the errors.
        Returns:
        the percentiles (0-1; 0.95 is 95th percentile)
      • percentilesTipText

        public String percentilesTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setErrorCalculation

        public void setErrorCalculation​(WekaBootstrapping.ErrorCalculation value)
        Sets how to calculate the errors for the percentiles.
        Parameters:
        value - the type
      • errorCalculationTipText

        public String errorCalculationTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setWithReplacement

        public void setWithReplacement​(boolean value)
        Sets whether to draw predictions using replacement.
        Parameters:
        value - true if with replacement
      • getWithReplacement

        public boolean getWithReplacement()
        Returns whether to draw predictions using replacement.
        Returns:
        true if with replacement
      • withReplacementTipText

        public String withReplacementTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • accepts

        public Class[] accepts()
        Returns the class that the consumer accepts.
        Specified by:
        accepts in interface InputConsumer
        Returns:
        the Class of objects that can be processed
      • generates

        public Class[] generates()
        Returns the class of objects that it generates.
        Specified by:
        generates in interface OutputProducer
        Returns:
        the Class of the generated tokens
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class AbstractActor
        Returns:
        null if everything is fine, otherwise error message