Example #1
0
    def __init__(self, histogram_type, lowerBounding=False, logger=None):
        self.initialized = False
        self.HistogramType = histogram_type
        self.lowerBounding = lowerBounding
        self.MUSE_Bool = False

        logger.Log(self.__dict__, level=0)
        self.logger = logger

        self.sfa = SFA(histogram_type,
                       LB=self.lowerBounding,
                       logger=self.logger)
Example #2
0
    def createWords(self, samples):
        if self.signature == None:
            self.signature = SFA("EQUI_DEPTH")
            self.signature.fitWindowing(samples, self.windowLength, self.maxF, self.symbols, self.normMean,True)

        words = []
        for i in range(samples["Samples"]):
            sfaWords = self.signature.transformWindowing(samples[i])
            words_small = []
            for word in sfaWords:
                words_small.append(self.createWord(word, self.maxF, int2byte(self.symbols)))
            words.append(words_small)

        return words
Example #3
0
    def createWords(self, samples, index, bar=None):
        if self.signature[index] == None:
            self.signature[index] = SFA("INFORMATION_GAIN", True, False)
            self.signature[index].fitWindowing(samples,
                                               self.windowLengths[index],
                                               self.maxF, self.symbols,
                                               self.normMean, False)
            # self.signature[index].printBins()

        words = []
        for i in range(samples["Samples"]):
            words.append(self.signature[index].transformWindowingInt(
                samples[i], self.maxF))

        self.words[index] = words
        if bar != None:
            bar.update(index)
Example #4
0
    def createWords(self, samples, index, data):
        if self.signature[index] == None:
            self.signature[index] = [None for _ in range(samples['Dimensions'])]
            for i in range(samples['Dimensions']):
                self.signature[index][i] = SFA(self.histogramType, self.lowerBounding, logger = self.logger, mftUseMaxOrMin=False)
                self.signature[index][i].mv_fitWindowing(samples, self.windowLengths[index], self.maxF, self.alphabetSize, self.normMean, self.lowerBounding, dim = i)
                self.signature[index][i].printBins(self.logger)

        words = []
        for m in range(samples["Samples"]):
            for n in range(samples["Dimensions"]):
                if len(samples[m][n].data) >= self.windowLengths[index]:
                    words.append(self.signature[index][n].transformWindowingInt(samples[m][n], self.maxF))
                else:
                    words.append([])

        self.logger.Log("Generating %s Words for Norm=%s and Window=%s" % (data, self.normMean, self.windowLengths[index]))
        self.words[index] = words
Example #5
0
 def lookup(self, windowLength, wordLength, symbols, sequence, val):
     normMean = True
     key = (windowLength, wordLength, symbols)
     if key not in self.sfa:
         sfa = SFA("EQUI_DEPTH")
         sfa.fitWindowing(self.raw, windowLength, wordLength, symbols,
                          normMean, True)
         self.sfa[key] = []
         for i in range(self.raw["Samples"]):
             sfa_sr = []
             wordList = sfa.transformWindowing(self.raw[i])
             for word in wordList:
                 sfa_sr.append(self.sfaToDWord(word, symbols))
             #print(str(i) + "-th transformed time series SFA word " + "\t" + sfaToWordList(wordList))
             self.sfa[key].append(sfa_sr)
     for i in range(self.raw["Samples"]):
         for j in range(len(self.sfa[key][i])):
             if sequence in self.sfa[key][i][j]:
                 self.acscores[i, j:(j + windowLength)] += val
Example #6
0
    def createWords(self, samples, index, bar=None):
        if self.signature[index] == None:
            self.signature[index] = SFA(self.histogramType, False,
                                        self.lowerBounding, False)
            self.signature[index].mv_fitWindowing(samples,
                                                  self.windowLengths[index],
                                                  self.maxF, self.alphabetSize,
                                                  self.normMean, False)
            # self.signature[index].printBins()

        words = []
        for m in range(samples["Samples"]):
            for n in range(samples["Dimensions"]):
                if len(samples[m][n].data) >= self.windowLengths[index]:
                    words.append(self.signature[index].transformWindowingInt(
                        samples[m][n], self.maxF))
                else:
                    words.append([])

        self.words[index] = words

        if bar != None:
            bar.update(index)
def sfaToWord(word):
    word_string = ""
    for w in word:
        word_string += chr(w + 97)
    return word_string


def sfaToWordList(wordList):
    list_string = ""
    for word in wordList:
        list_string += sfaToWord(word)
        list_string += "; "
    return list_string


train, test, train_labels, test_labels = load("CBF", "\t")

sfa = SFA("EQUI_DEPTH")

sfa.fitWindowing(train, train_labels, windowLength, wordLength, symbols,
                 normMean, True)

sfa.printBins()

for i in range(test.shape[0]):
    wordList = sfa.transformWindowing(test.iloc[i, :])
    print(
        str(i) + "-th transformed time series SFA word " + "\t" +
        sfaToWordList(wordList))
Example #8
0
                   (FIXED_PARAMETERS['dataset'], scoreShotgunEnsemble))

    if FIXED_PARAMETERS['test'] == 'Shotgun':
        logger.Log("Test: Shotgun")
        from src.classification.ShotgunClassifier import *
        shotgun = ShotgunClassifier(FIXED_PARAMETERS, logger)
        scoreShotgun = shotgun.eval(train, test)[0]
        logger.Log("%s: %s" % (FIXED_PARAMETERS['dataset'], scoreShotgun))

    ##=========================================================================================
    ## SFA Word Tests
    ##=========================================================================================
    if FIXED_PARAMETERS['test'] == 'SFAWordTest':
        logger.Log("Test: SFAWordTest")
        from src.transformation.SFA import *
        sfa = SFA(FIXED_PARAMETERS["histogram_type"], logger=logger)
        sfa.fitTransform(train, FIXED_PARAMETERS['wordLength'],
                         FIXED_PARAMETERS['symbols'],
                         FIXED_PARAMETERS['normMean'])
        logger.Log(sfa.__dict__)

        for i in range(test["Samples"]):
            wordList = sfa.transform2(test[i].data, "null", str_return=True)
            logger.Log("%s-th transformed TEST time series SFA word \t %s " %
                       (i, wordList))

    if FIXED_PARAMETERS['test'] == 'SFAWordWindowingTest':
        logger.Log("Test: SFAWordWindowingTest")
        from src.transformation.SFA import *

        sfa = SFA(FIXED_PARAMETERS["histogram_type"], logger=logger)