Class MLPlan4BigFileInput

  • All Implemented Interfaces:
    java.lang.Iterable<org.api4.java.algorithm.events.IAlgorithmEvent>, java.util.concurrent.Callable<weka.classifiers.Classifier>, java.util.Iterator<org.api4.java.algorithm.events.IAlgorithmEvent>, org.api4.java.algorithm.IAlgorithm<java.io.File,​weka.classifiers.Classifier>, org.api4.java.common.control.ICancelable, org.api4.java.common.control.ILoggingCustomizable

    public class MLPlan4BigFileInput
    extends ai.libs.jaicore.basic.algorithm.AAlgorithm<java.io.File,​weka.classifiers.Classifier>
    implements org.api4.java.common.control.ILoggingCustomizable
    This is a version of ML-Plan that tries to cope with medium sized data in the sense of big files. That is, the data is still enough to be organized in a single file such that no streaming is required. The data is, however, in general too large to be entirely loaded into memory. We use simple sampling to create a relatively small subset of the data, then run info gain, and then ML-Plan with learning curve prediction.
    • Constructor Summary

      Constructors 
      Constructor Description
      MLPlan4BigFileInput​(java.io.File input)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      weka.classifiers.Classifier call()  
      java.lang.String getLoggerName()  
      org.api4.java.algorithm.events.IAlgorithmEvent nextWithException()  
      void receiveClassifierCreatedEvent​(ai.libs.mlplan.core.events.SupervisedLearnerCreatedEvent e)  
      void receiveExtrapolationFinishedEvent​(ai.libs.jaicore.ml.functionprediction.learner.learningcurveextrapolation.LearningCurveExtrapolatedEvent e)  
      void receiveMCCVFinishedEvent​(ai.libs.jaicore.ml.core.evaluation.evaluator.events.MCCVSplitEvaluationEvent e)  
      void setLoggerName​(java.lang.String loggerName)  
      • Methods inherited from class ai.libs.jaicore.basic.algorithm.AAlgorithm

        activate, announceTimeoutDetected, avoidReinterruptionOnShutdownOnCurrentThread, cancel, checkAndConductTermination, checkTermination, computeTimeoutAware, getActivationTime, getConfig, getId, getInput, getListeners, getNumCPUs, getRemainingTimeToDeadline, getState, getTimeout, getTimeoutPrecautionOffset, hasNext, hasThreadBeenInterruptedDuringShutdown, interruptThreadAsPartOfShutdown, isCanceled, isShutdownInitialized, isStopCriterionSatisfied, isTimeouted, iterator, next, post, registerActiveThread, registerListener, resolveShutdownInterruptOnCurrentThread, setConfig, setDeadline, setMaxNumThreads, setNumCPUs, setState, setTimeout, setTimeout, setTimeoutPrecautionOffset, shutdown, terminate, unregisterActiveThread, unregisterThreadAndShutdown
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
      • Methods inherited from interface java.util.Iterator

        forEachRemaining, remove
    • Constructor Detail

      • MLPlan4BigFileInput

        public MLPlan4BigFileInput​(java.io.File input)
    • Method Detail

      • nextWithException

        public org.api4.java.algorithm.events.IAlgorithmEvent nextWithException()
                                                                         throws java.lang.InterruptedException,
                                                                                org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                                                                                org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException,
                                                                                org.api4.java.algorithm.exceptions.AlgorithmException
        Specified by:
        nextWithException in interface org.api4.java.algorithm.IAlgorithm<java.io.File,​weka.classifiers.Classifier>
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
        org.api4.java.algorithm.exceptions.AlgorithmException
      • receiveClassifierCreatedEvent

        public void receiveClassifierCreatedEvent​(ai.libs.mlplan.core.events.SupervisedLearnerCreatedEvent e)
      • receiveExtrapolationFinishedEvent

        public void receiveExtrapolationFinishedEvent​(ai.libs.jaicore.ml.functionprediction.learner.learningcurveextrapolation.LearningCurveExtrapolatedEvent e)
      • receiveMCCVFinishedEvent

        public void receiveMCCVFinishedEvent​(ai.libs.jaicore.ml.core.evaluation.evaluator.events.MCCVSplitEvaluationEvent e)
      • call

        public weka.classifiers.Classifier call()
                                         throws java.lang.InterruptedException,
                                                org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException,
                                                org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException,
                                                org.api4.java.algorithm.exceptions.AlgorithmException
        Specified by:
        call in interface java.util.concurrent.Callable<weka.classifiers.Classifier>
        Specified by:
        call in interface org.api4.java.algorithm.IAlgorithm<java.io.File,​weka.classifiers.Classifier>
        Throws:
        java.lang.InterruptedException
        org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledException
        org.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
        org.api4.java.algorithm.exceptions.AlgorithmException
      • setLoggerName

        public void setLoggerName​(java.lang.String loggerName)
        Specified by:
        setLoggerName in interface org.api4.java.common.control.ILoggingCustomizable
        Overrides:
        setLoggerName in class ai.libs.jaicore.basic.algorithm.AAlgorithm<java.io.File,​weka.classifiers.Classifier>
      • getLoggerName

        public java.lang.String getLoggerName()
        Specified by:
        getLoggerName in interface org.api4.java.common.control.ILoggingCustomizable
        Overrides:
        getLoggerName in class ai.libs.jaicore.basic.algorithm.AAlgorithm<java.io.File,​weka.classifiers.Classifier>