build_gabin_population function

Initialize populations in genetic algorithms

Initialize populations in genetic algorithms

Build an initial population set for genetic algorithms

build_gabin_population(x, ...) log_gabin_population(x, ...)

Arguments

  • x: a numeric vector coercible into a stats::ts object
  • ...: arguments passed to methods

Returns

A function that can be passed to the population argument of GA::ga() (through segment_ga())

Details

Genetic algorithms require a method for randomly generating initial populations (i.e., a first generation). The default method used by GA::ga() for changepoint detection is usually GA::gabin_Population(), which selects candidate changepoints uniformly at random with probability 0.5. This leads to an initial population with excessively large candidate changepoint sets (on the order of n/2n/2), which makes the genetic algorithm slow.

  • build_gabin_population() takes a ts object and runs several fast changepoint detection algorithms on it, then sets the initial probability to 3 times the average value of the size of the changepoint sets returned by those algorithms. This is a conservative guess as to the likely size of the optimal changepoint set.
  • log_gabin_population() takes a ts object and sets the initial probability to the natural logarithm of the length of the time series.

Examples

# Build a function to generate the population f <- build_gabin_population(CET) # Segment the time series using the population generation function segment(CET, method = "ga", population = f, maxiter = 5) f <- log_gabin_population(CET) segment(CET, method = "ga", population = f, maxiter = 10)

See Also

GA::gabin_Population(), segment_ga()