Rejuvenate particles from the dynaTree posterior

Share:

Description

Re-pass the X-y pairs in the object in a random (or specified) order to temporarily double the size of the particle set

Usage

1
2
3
## S3 method for class 'dynaTree'
rejuvenate(object, odr = order(runif(length(object$y))),
     verb = round(length(object$y)/10))

Arguments

object

a "dynaTree"-class object built by dynaTree

odr

an integer vector of length(object$y) specifying the order in which the object$X-object$y paris should be processed for the rejuvenated particles

verb

a positive scalar integer indicating how many time steps (iterations) should pass before a progress statement is printed to the console; a value of verb = 0 is quiet

Details

The rejuvenate function causes the particle set to temporarily double, to have size 2 * object$N. The new object$N particles represent a discrete approximation to the dynaTree posterior under the ordering specified by odr, which may be random. Subsequent calls to update.dynaTree cause the particle set to revert back to object$N particles as only that many are obtained from the particle learning resample step.

This function can be particularly useful in online learning contexts, where retire.dynaTree is used to retain information on discarded data, especially when the data is discarded historically to deal with drifting concepts. Since the new, rejuvenated, particles are based only on the active data, object$X-object$y pairs (and not the retired data via informative leaf priors), subsequent update.dynaTree steps allow the data to dictate if old (informative prior) or new (default prior) particles are best for the new concept

Value

The returned list is the same as dynaTree – i.e., a "dynaTree"-class object but with 2 * object$N particles. Note that object$N is not updated to reflect this fact, but the C-side object will indeed have a double particle set. Repeated calls to rejuvenate will cause the particle set to double again.

Note

The object (object) must contain a pointer to a particle cloud (object$num) which has not been deleted by deletecloud. In particular, it cannot be an object returned from dynaTrees

Author(s)

Robert B. Gramacy rbgramacy@chicagobooth.edu,
Matt Taddy taddy@chicagobooth.edu, and
Christoforos Anagnostopoulos christoforos.anagnostopoulos06@imperial.ac.uk

References

Taddy, M.A., Gramacy, R.B., and Polson, N. (2011). “Dynamic trees for learning and design” Journal of the American Statistical Association, 106(493), pp. 109-123; arXiv:0912.1586

Anagnostopoulos, C., Gramacy. R.B. (2013) “Information-Theoretic Data Discarding for Dynamic Trees on Data Streams.” Entropy, 15(12), 5510-5535; arXiv:1201.5568

Carvalho, C., Johannes, M., Lopes, H., and Polson, N. (2008). “Particle Learning and Smoothing”. Discussion Paper 2008-32, Duke University Dept. of Statistical Science.

http://bobby.gramacy.com/r_packages/dynaTree/

See Also

dynaTree, alcX.dynaTree, entropyX.dynaTree, update.dynaTree, retire.dynaTree

Examples

1
2
## see retire.dynaTree for a combined example
## illustrating rejuvenation