Exemplo n.º 1
0
def generateAvgModel(model, length, genNum=50):
    """Creates an average array for a given model.
    """

    #Number states
    states = len(model.getEmission(0))
    numSensors = int(math.log(states, 2))

    a = numpy.zeros((length, numSensors), float)

    for i in range(genNum):
        tmp = model.sampleSingle(length)

        b = bbdata.uncompressData(tmp, numSensors)
        a += b

    a /= genNum

    return a
Exemplo n.º 2
0
def drawHMMCluster(data, models, numSensors, \
                    writeLocation = "../output/out.png", \
                    spacing = 10, numberBase = 2, \
                    scaling = 5, \
                    cColor = (0, 255, 0), cCluster = (0, 0, 0)):
    """Draw all data associated with a given hidden markov model.  
    Space the data by the value spacing.
    """
    lenInstances = 0

    #Get length of each image.
    for d in data:
        lenInstances += len(d)

    #Make the image
    iLen = lenInstances * scaling + spacing * len(data)
    if iLen == 0:
        iLen = 1
    im = Image.new("RGB", ((numSensors + 1) * scaling + 50, iLen))
    d = ImageDraw.Draw(im)

    currentY = 0

    #Draw the instances
    for i in range(len(data)):
        #Invert the data to an array.
        tmpData = bbdata.uncompressData(data[i], numSensors, numberBase)

        #Caluclate values
        sigma = IntegerRange(0, numberBase**numSensors)
        values = hmmextra.hmmDistAll(data[i], models, sigma)
        values.sort()
        _drawArrayText(d,
                       tmpData,
                       0,
                       currentY,
                       values,
                       scale=scaling,
                       cCluster=cCluster)
        currentY += tmpData.shape[0] * scaling + spacing

    im.save(writeLocation, "PNG")
Exemplo n.º 3
0
def generateAvgModel(model, length, genNum = 50):
    """Creates an average array for a given model.
    """
    
    #Number states
    states = len(model.getEmission(0))
    numSensors = int(math.log(states, 2))

    a = numpy.zeros((length, numSensors), float)
    
    for i in range(genNum):
        tmp = model.sampleSingle(length)
        
        b = bbdata.uncompressData(tmp, numSensors)
        a += b
    
    a /= genNum
    
    return a
            
    
    
    
Exemplo n.º 4
0
def drawHMMCluster(data, models, numSensors, \
                    writeLocation = "../output/out.png", \
                    spacing = 10, numberBase = 2, \
                    scaling = 5, \
                    cColor = (0, 255, 0), cCluster = (0, 0, 0)):
    """Draw all data associated with a given hidden markov model.  
    Space the data by the value spacing.
    """
    lenInstances = 0

    #Get length of each image.
    for d in data:
        lenInstances += len(d)

    #Make the image
    iLen = lenInstances * scaling + spacing * len(data)
    if iLen == 0:
        iLen = 1
    im = Image.new("RGB", ((numSensors + 1) * scaling + 50, iLen))
    d = ImageDraw.Draw(im)

    currentY = 0

    #Draw the instances
    for i in range(len(data)):
        #Invert the data to an array.
        tmpData = bbdata.uncompressData(data[i], numSensors, numberBase)
        
        #Caluclate values
        sigma = IntegerRange(0, numberBase**numSensors)
        values = hmmextra.hmmDistAll(data[i], models, sigma)
        values.sort()
        _drawArrayText(d, tmpData, 0, currentY, values, scale = scaling, cCluster=cCluster)
        currentY += tmpData.shape[0] * scaling + spacing

    im.save(writeLocation, "PNG")
Exemplo n.º 5
0
                #    val, counts = analysis.ratio(sData.values(), fn.models)
                #except Exception, e:
                #    counts = [0] * len(fn.models)
                #    val = [0] * len(fn.models)

                #tmpDoc += counts
        
        
        
        cd, td = bbdata.getdata(oldSplit, newSplit, \
                            comp = compress, \
                            sens = bbdata.allSensors, \
                            vDays = validDays, \
                            readLocation = dataDirectory)

        cd2 = bbdata.uncompressData(cd, 50)
        b = numpy.array(cd2)
        b = numpy.sum(b, axis = 0)
        
        tmpDoc = list(b)
                
        #if sum(tmpDoc) >= minBehaviour:
        #    tdMatrix.append(tmpDoc)
        #    print len(tdMatrix)

        firstRun = False

        tdMatrix.append(tmpDoc)

    sfirst = [s[0] for s in splits]
Exemplo n.º 6
0
        #    val, counts = analysis.ratio(sData.values(), fn.models)
        #except Exception, e:
        #    counts = [0] * len(fn.models)
        #    val = [0] * len(fn.models)

        #tmpDoc += counts



        cd, td = bbdata.getdata(oldSplit, newSplit, \
                            comp = compress, \
                            sens = bbdata.allSensors, \
                            vDays = validDays, \
                            readLocation = dataDirectory)

        cd2 = bbdata.uncompressData(cd, 50)
        b = numpy.array(cd2)
        b = numpy.sum(b, axis=0)

        tmpDoc = list(b)

        #if sum(tmpDoc) >= minBehaviour:
        #    tdMatrix.append(tmpDoc)
        #    print len(tdMatrix)

        firstRun = False

        tdMatrix.append(tmpDoc)

    sfirst = [s[0] for s in splits]