public class TimeSeriesBagOfFeaturesLearningAlgorithm extends ASimplifiedTSCLearningAlgorithm<java.lang.Integer,TimeSeriesBagOfFeaturesClassifier>
| Modifier and Type | Class and Description |
|---|---|
static interface |
TimeSeriesBagOfFeaturesLearningAlgorithm.ITimeSeriesBagOfFeaturesConfig |
| Modifier and Type | Field and Description |
|---|---|
static boolean |
USE_BIAS_CORRECTION
Indicator whether Bessel's correction should in feature generation.
|
| Constructor and Description |
|---|
TimeSeriesBagOfFeaturesLearningAlgorithm(TimeSeriesBagOfFeaturesLearningAlgorithm.ITimeSeriesBagOfFeaturesConfig config,
TimeSeriesBagOfFeaturesClassifier classifier,
TimeSeriesDataset data)
Constructor for a TSBF training algorithm.
|
| Modifier and Type | Method and Description |
|---|---|
TimeSeriesBagOfFeaturesClassifier |
call()
Training procedure construction a Time Series Bag-of-Features (TSBF)
classifier using the given input data.
|
static int[][] |
discretizeProbs(int numBins,
double[][] probs)
Function discretizing probabilities into bins.
|
static ai.libs.jaicore.basic.sets.Pair<int[][][],int[][]> |
formHistogramsAndRelativeFreqs(int[][] discretizedProbs,
int[] targets,
int numInstances,
int numClasses,
int numBins)
Function calculating the histograms as described in the paper's section 2.2
("Codebook and Learning").
|
static double[][][][] |
generateFeatures(double[][] data,
int[][] subsequences,
int[][][] intervals)
Function generating the features for the internal probability measurement
model based on the given
subseries and their corresponding
intervals. |
static double[][] |
generateHistogramInstances(int[][][] histograms,
int[][] relativeFreqsOfClasses)
Generates a matrix consisting of the histogram values for each instance out
of the given
histograms and the relative frequencies of classes
for each instance. |
ai.libs.jaicore.basic.sets.Pair<int[][],int[][][]> |
generateSubsequencesAndIntervals(int r,
int d,
int lMin,
int T)
Method randomly determining the subsequences and their intervals to be used
for feature generation of the instances.
|
TimeSeriesBagOfFeaturesLearningAlgorithm.ITimeSeriesBagOfFeaturesConfig |
getConfig() |
static double[][] |
measureOOBProbabilitiesUsingCV(double[][] subSeqValueMatrix,
int[] targetMatrix,
int numProbInstances,
int numFolds,
int numClasses,
weka.classifiers.trees.RandomForest rf)
Function measuring the out-of-bag (OOB) probabilities using a cross
validation with
numFolds many folds. |
ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent |
nextWithException() |
void |
registerListener(java.lang.Object listener) |
getClassifieractivate, announceTimeoutDetected, avoidReinterruptionOnShutdownOnCurrentThread, cancel, checkAndConductTermination, checkTermination, computeTimeoutAware, getActivationTime, getId, getInput, getLoggerName, getNumCPUs, getRemainingTimeToDeadline, getState, getTimeout, getTimeoutPrecautionOffset, hasNext, hasThreadBeenInterruptedDuringShutdown, interruptThreadAsPartOfShutdown, isCanceled, isShutdownInitialized, isStopCriterionSatisfied, isTimeouted, iterator, next, post, registerActiveThread, resolveShutdownInterruptOnCurrentThread, setConfig, setLoggerName, setMaxNumThreads, setNumCPUs, setState, setTimeout, setTimeout, setTimeoutPrecautionOffset, shutdown, terminate, unregisterActiveThread, unregisterThreadAndShutdownpublic static final boolean USE_BIAS_CORRECTION
public TimeSeriesBagOfFeaturesLearningAlgorithm(TimeSeriesBagOfFeaturesLearningAlgorithm.ITimeSeriesBagOfFeaturesConfig config, TimeSeriesBagOfFeaturesClassifier classifier, TimeSeriesDataset data)
public TimeSeriesBagOfFeaturesClassifier call() throws ai.libs.jaicore.basic.algorithm.exceptions.AlgorithmException
ai.libs.jaicore.basic.algorithm.exceptions.AlgorithmExceptionpublic ai.libs.jaicore.basic.sets.Pair<int[][],int[][][]> generateSubsequencesAndIntervals(int r,
int d,
int lMin,
int T)
r - The number of possible intervals in a time seriesd - The number of intervals for each subsequencelMin - The minimum subsequence lengthT - The length of the time seriespublic static double[][][][] generateFeatures(double[][] data,
int[][] subsequences,
int[][][] intervals)
subseries and their corresponding
intervals. The features are built using the
TimeSeriesFeature implementation. As a result, a tensor consisting of
the generated features for each interval in each subsequence for each
instance is returned (4 dimensions).data - The data used for feature generationsubsequences - The subsequences used for feature generation (the start and end
[exclusive] index is stored for each subsequence)intervals - The intervals of each subsequence used for the feature generation
(the start and end [exclusive] index is stored for each interval)public static double[][] generateHistogramInstances(int[][][] histograms,
int[][] relativeFreqsOfClasses)
histograms and the relative frequencies of classes
for each instance. The histogram values for each instance, class and bin are
concatenated. Furthermore, the relative frequencies are also added to the
instance's features.histograms - The histograms for each instance (number of instances x number of
classes - 1 x number of bins)relativeFreqsOfClasses - The relative frequencies of the classes for each instance
(previously extracted from each subseries instance per origin
instance; dimensionality is number of instances x number of
classes)public static double[][] measureOOBProbabilitiesUsingCV(double[][] subSeqValueMatrix,
int[] targetMatrix,
int numProbInstances,
int numFolds,
int numClasses,
weka.classifiers.trees.RandomForest rf)
throws TrainingException
numFolds many folds. For each fold, the data
given by subSeqValueMatrix is split into a training and test
set. The test set's probabilities are then derived by a trained Random Forest
classifier.subSeqValueMatrix - Input data used to derive the OOB probabilitiestargetMatrix - The target values of the input datanumProbInstances - Number of instances for which the probabilities should be derivednumFolds - Number of folds used for the measurementnumClasses - Number of total classesrf - Random Forest classifier which is retrained in each foldsubSeqValueMatrixTrainingException - Thrown when the classifier rf could not be trained
in any foldpublic static ai.libs.jaicore.basic.sets.Pair<int[][][],int[][]> formHistogramsAndRelativeFreqs(int[][] discretizedProbs,
int[] targets,
int numInstances,
int numClasses,
int numBins)
discretizedProbs. Furthermore, the relative frequencies of the
classes are collected. As the result, a pair of the generated histograms for
all instances and the corresponding normalized relative class frequencies is
returned.discretizedProbs - The discretized (binned) probabilities of all instance's subseries
rows (the number of rows must be divisible by the number of total
instances)targets - The targets corresponding to the discretized probabilitiesnumInstances - The total number of instances (must be <= the number of rows in
discretizedProbsnumClasses - The total number of classesnumBins - The number of bins using within the discretizationnumInstances in total) and the corresponding relative
frequencies (normalized)public static int[][] discretizeProbs(int numBins,
double[][] probs)
numBins. The result is a matrix with the same
dimensionality as probs storing the identifier of the
corresponding bins.numBins - Number of bins, determines the probability steps for each binprobs - Matrix storing the probabilities of each row for each class
(columns)probs
with the discrete bin identifierpublic void registerListener(java.lang.Object listener)
registerListener in interface ai.libs.jaicore.basic.algorithm.IAlgorithm<TimeSeriesDataset,TimeSeriesBagOfFeaturesClassifier>registerListener in class ai.libs.jaicore.basic.algorithm.AAlgorithm<TimeSeriesDataset,TimeSeriesBagOfFeaturesClassifier>public ai.libs.jaicore.basic.algorithm.events.AlgorithmEvent nextWithException()
public TimeSeriesBagOfFeaturesLearningAlgorithm.ITimeSeriesBagOfFeaturesConfig getConfig()
getConfig in interface ai.libs.jaicore.basic.algorithm.IAlgorithm<TimeSeriesDataset,TimeSeriesBagOfFeaturesClassifier>getConfig in class ai.libs.jaicore.basic.algorithm.AAlgorithm<TimeSeriesDataset,TimeSeriesBagOfFeaturesClassifier>