def test():
    numSamples = 15000
    meanVector = np.array([1., -1., 0.])
    covMatrix = np.array([[2., 0.1, 0.], [0.1, 1.5, -0.1], [0., -0.1, 0.01]])
    sampler = CorrelatedGaussianSampler(meanVector=meanVector,
                                        covMatrix=covMatrix)
    sampledVectors = []
    for i in range(numSamples):
        sampledVector = sampler.sampleOneVector()
        sampledVectors.append(sampledVector)
    
    # find the mean vector
    print vecMean(sampledVectors)

    # find the covariance matrix
    print covMat(sampledVectors)
def test():
    numSamples = 15000
    meanVector = np.array([1., -1., 0.])
    covMatrix = np.array([[2., 0.1, 0.], [0.1, 1.5, -0.1], [0., -0.1, 0.01]])
    sampler = CorrelatedGaussianSampler(meanVector=meanVector,
                                        covMatrix=covMatrix)
    sampledVectors = []
    for i in range(numSamples):
        sampledVector = sampler.sampleOneVector()
        sampledVectors.append(sampledVector)

    # find the mean vector
    print vecMean(sampledVectors)

    # find the covariance matrix
    print covMat(sampledVectors)
Пример #3
0
 def importVectors(self, vectors):
     self.trainVectors = vectors
     self.covMatrix = covMat(vectors)
     self.vecMean = vecMean(vectors)
     
     # PCA
     u, s, v = np.linalg.svd(self.covMatrix)
     self.diagCovVal = s
     self.U = v
     self.invU = np.linalg.inv(v)
Пример #4
0
    def importVectors(self, vectors):
        self.trainVectors = vectors
        self.covMatrix = covMat(vectors)
        self.vecMean = vecMean(vectors)

        # PCA
        u, s, v = np.linalg.svd(self.covMatrix)
        self.diagCovVal = s
        self.U = v
        self.invU = np.linalg.inv(v)
Пример #5
0
def testrun():
    #meanVector = np.array([1., -1.])
    #covMatrix = np.array([[1., 0], [0, 2.]])
    meanVector = np.array([1., -1., 0.])
    covMatrix = np.array([[2., 0.1, 0.], [0.1, 1.5, -0.1], [0., -0.1, 0.01]])
    ndim = len(meanVector)

    
    f = partial(unnormalizedMultivariateGaussianDist,
                meanVec = meanVector,
                covMat = covMatrix)
    # for testing and comparison purpose
    invCovMat = np.linalg.inv(covMatrix)
    f = lambda vec: np.exp(-0.5*np.matrix(vec-meanVector)*np.matrix(invCovMat)*np.transpose(np.matrix(vec-meanVector)))

    chain = MarkovChainByGibbsSampling(f, 15000, ndim)
    
    print vecMean(chain)
    
    print covMat(chain)