本文整理汇总了Python中pysgpp.DataVector.componentwise_mult方法的典型用法代码示例。如果您正苦于以下问题:Python DataVector.componentwise_mult方法的具体用法?Python DataVector.componentwise_mult怎么用?Python DataVector.componentwise_mult使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pysgpp.DataVector
的用法示例。
在下文中一共展示了DataVector.componentwise_mult方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __computeRanking
# 需要导入模块: from pysgpp import DataVector [as 别名]
# 或者: from pysgpp.DataVector import componentwise_mult [as 别名]
def __computeRanking(self, v, A, b):
"""
Compute ranking for variance estimation
\argmax_{i \in \A} | v (2 Av - vb) |
@param v: DataVector, coefficients of known grid points
@param A: DataMatrix, stiffness matrix
@param b: DataVector, squared expectation value contribution
@return: numpy array, contains the ranking for the given samples
"""
# update the ranking
av = DataVector(A.getNrows())
av.setAll(0.0)
# = Av
for i in xrange(A.getNrows()):
for j in xrange(A.getNcols()):
av[i] += A.get(i, j) * v[j]
av.mult(2.) # = 2 * Av
b.componentwise_mult(v) # = v * b
av.sub(b) # = 2 * Av - v * b
w = DataVector(v)
w.componentwise_mult(av) # = v * (2 * Av - v * b)
w.abs() # = | v * (2 * Av - v * b) |
return w.array()
示例2: estimate
# 需要导入模块: from pysgpp import DataVector [as 别名]
# 或者: from pysgpp.DataVector import componentwise_mult [as 别名]
def estimate(self, vol, grid, alpha, f, U, T):
r"""
Extraction of the expectation the given sparse grid function
interpolating the product of function value and pdf.
\int\limits_{[0, 1]^d} f(x) * pdf(x) dx
"""
# first: discretize f
fgrid, falpha, discError = discretize(grid, alpha, f, self.__epsilon,
self.__refnums, self.__pointsNum,
self.level, self.__deg, True)
# extract correct pdf for moment estimation
vol, W, pdfError = self.__extractDiscretePDFforMomentEstimation(U, T)
D = T.getTransformations()
# compute the integral of the product
gs = fgrid.getStorage()
acc = DataVector(gs.size())
acc.setAll(1.)
tmp = DataVector(gs.size())
for i, dims in enumerate(W.getTupleIndices()):
sgdeDist = W[i]
# accumulate objects needed for computing the bilinear form
gpsi, basisi = project(fgrid, dims)
gpsj, basisj = project(sgdeDist.grid, range(len(dims)))
A = self.__computeMassMatrix(gpsi, basisi, gpsj, basisj, W, D)
# A = ScipyQuadratureStrategy(W, D).computeBilinearForm(fgrid)
self.mult(A, sgdeDist.alpha, tmp)
acc.componentwise_mult(tmp)
moment = falpha.dotProduct(acc)
return vol * moment, discError[1] + pdfError
示例3: testOps
# 需要导入模块: from pysgpp import DataVector [as 别名]
# 或者: from pysgpp.DataVector import componentwise_mult [as 别名]
def testOps(self):
from pysgpp import DataVector
# sum
self.assertAlmostEqual(self.d_rand.sum(), sum(self.l_rand_total))
# sqr
d = DataVector(self.d_rand)
d.sqr()
for i in xrange(self.N):
self.assertEqual(self.d_rand[i]**2, d[i])
# abs
d = DataVector(self.d_rand)
d.abs()
for i in xrange(self.N):
self.assertEqual(abs(self.d_rand[i]), d[i])
# componentwise_mult
d = DataVector(self.d_rand)
# d2 = DataVector(self.nrows, self.ncols)
d2 = DataVector(self.N)
for i in xrange(self.N):
d2[i] = i
d.componentwise_mult(d2)
for i in xrange(self.N):
self.assertEqual(self.d_rand[i]*i, d[i])
# componentwise_div
d = DataVector(self.d_rand)
for i in xrange(self.N):
d2[i] = i+1
d.componentwise_div(d2)
for i in xrange(self.N):
self.assertEqual(self.d_rand[i]/(i+1), d[i])
示例4: mean
# 需要导入模块: from pysgpp import DataVector [as 别名]
# 或者: from pysgpp.DataVector import componentwise_mult [as 别名]
def mean(self, grid, alpha, U, T):
r"""
Extraction of the expectation the given sparse grid function
interpolating the product of function value and pdf.
\int\limits_{[0, 1]^d} f_N(x) * pdf(x) dx
"""
# extract correct pdf for moment estimation
vol, W = self._extractPDFforMomentEstimation(U, T)
D = T.getTransformations()
# compute the integral of the product
gs = grid.getStorage()
acc = DataVector(gs.size())
acc.setAll(1.)
tmp = DataVector(gs.size())
err = 0
# run over all dimensions
for i, dims in enumerate(W.getTupleIndices()):
dist = W[i]
trans = D[i]
# get the objects needed for integration the current dimensions
gpsi, basisi = project(grid, dims)
if isinstance(dist, SGDEdist):
# if the distribution is given as a sparse grid function we
# need to compute the bilinear form of the grids
# accumulate objects needed for computing the bilinear form
gpsj, basisj = project(dist.grid, range(len(dims)))
# compute the bilinear form
bf = BilinearGaussQuadratureStrategy()
A, erri = bf.computeBilinearFormByList(gpsi, basisi,
gpsj, basisj)
# weight it with the coefficient of the density function
self.mult(A, dist.alpha, tmp)
else:
# the distribution is given analytically, handle them
# analytically in the integration of the basis functions
if isinstance(dist, Dist) and len(dims) > 1:
raise AttributeError('analytic quadrature not supported for multivariate distributions')
if isinstance(dist, Dist):
dist = [dist]
trans = [trans]
lf = LinearGaussQuadratureStrategy(dist, trans)
tmp, erri = lf.computeLinearFormByList(gpsi, basisi)
# print error stats
# print "%s: %g -> %g" % (str(dims), err, err + D[i].vol() * erri)
# import ipdb; ipdb.set_trace()
# accumulate the error
err += D[i].vol() * erri
# accumulate the result
acc.componentwise_mult(tmp)
moment = alpha.dotProduct(acc)
return vol * moment, err
示例5: Regressor
# 需要导入模块: from pysgpp import DataVector [as 别名]
# 或者: from pysgpp.DataVector import componentwise_mult [as 别名]
class Regressor(Learner):
## Errors per basis function
errors = None
## Error vector
error = None
##constructor
def __init__(self):
super(Regressor,self).__init__()
##calculate L2-norm of error
# @return: last L2-norm of error
def getL2NormError(self):
return sqrt(self.error.sum())
## calculate max error
# @return: max error
def getMaxError(self):
return sqrt(self.error.max())
## calculate min error
# @return: min error
def getMinError(self):
return sqrt(self.error.min())
## Evaluate regression MSE
#
# @param data: DataContainer dataset
# @param alpha: DataVector alpha-vector
# @return: mean square error
def evalError(self, data, alpha):
size = data.getPoints().getNrows()
if size == 0: return 0
self.error = DataVector(size)
self.specification.getBOperator(data.getName()).mult(alpha, self.error)
self.error.sub(data.getValues()) # error vector
self.error.sqr() # entries squared
errorsum = self.error.sum()
mse = errorsum / size # MSE
# calculate error per basis function
self.errors = DataVector(len(alpha))
self.specification.getBOperator(data.getName()).multTranspose(self.error, self.errors)
self.errors.componentwise_mult(alpha)
return mse
##Update different statistics about training progress
# @param alpha: DataVector alpha-vector
# @param trainSubset: DataContainer with training data
# @param testSubset: DataContainer with validation data, default value: None
def updateResults(self, alpha, trainSubset, testSubset = None):
self.knowledge.update(alpha)
#eval Error for training data and append it to other in this iteration
self.trainAccuracy.append(self.evalError(trainSubset, alpha))
i = float(len(self.trainAccuracy))
#eval error for test data and append it to other in this iteration
if testSubset != None:
self.testAccuracy.append(self.evalError(testSubset, alpha))
self.testingOverall.append(sum(self.testAccuracy)/i)
self.trainingOverall.append(sum(self.trainAccuracy)/i)
self.numberPoints.append(self.grid.getSize())
##Refines grid with the number of points as specified in corresponding TrainingSpecification object
def refineGrid(self):
self.notifyEventControllers(LearnerEvents.REFINING_GRID)
pointsNum = self.specification.getNumOfPointsToRefine( self.grid.createGridGenerator().getNumberOfRefinablePoints() )
self.grid.createGridGenerator().refine( SurplusRefinementFunctor(self.errors, pointsNum, self.specification.getAdaptThreshold()) )