TODOS
Changes in version 2022.7.21
- init max_zero_var=0 to avoid valgrind msg.
Changes in version 2022.7.19
- New log-linear cum_median function.
- New NEWS format to please CRAN.
- rm deprecated binary_function in PiecewiseFunction.h.
Changes in version 2022.7.13
- binseg: constant factor speed improvements, mostly by going back to
storing params in class members rather than unordered_map.
Changes in version 2022.4.14
- Function re-naming.
- New QP solver for tree viz.
- Changes in version 2022.4.13
- New R function get_best_optimal implements dynamic programming for
finding the tree with smallest number of splits for a given set of
input sizes (N.data, min.segment.length,
- C++ depth_first method computes fast best case number of splits,
optimal when computing full path, heuristic when segments < data.
Changes in version 2022.4.6
- complexity funs handle min segment length.
- operator< now correctly breaks ties: previously used segment size
(end-start), now use max distance from start and end, to encourage
equal splits and best case time complexity.
Changes in version 2022.4.4
- new l1 and laplace loss functions.
Changes in version 2022.3.30
- comparisons vignette.
- max_zero_var computed based on the max estimated variance of all
single data points, which should be zero, but are sometimes small
non-zero values (for example 1e-15 or 1e-13) due to numerical
issues. mean_zero_var used in meanvar_norm loss function to
determine if cost is finite. Segments with an infinite cost best
split are not stored in the container for later splitting.
Changes in version 2022.3.29
- meanvar_norm distribution: generalize C++ code to more than one
segment-specific parameter.
Changes in version 2022.3.24
- container.str can be list (slow) or multimap (fast).
Changes in version 2022.3.22
- warning and suggestion to use weights for runs of identical data.
- R code binseg(min.segment.length=3) etc uses min_segment_length
parameter in C++ code.
Changes in version 2022.3.11
- new binseg function with distribution=poisson or mean_norm, weight.vec.
Changes in version 2022.1.24
- remove random_set_vec test.rev example which failed on M1.
Changes in version 2021.11.3
- binseg_normal_cv does model selection via most frequent number of
segments with minimum validation error (over several random splits).
Changes in version 2021.11.2
- break ties in Segment operator< by size (split larger segments first).
- binseg_normal gains args is.validation.vec, position.vec in order to
support efficient cross-validation. it now returns list with new
component subtrain.borders (predicted changepoint positions).
- get_splits* functions for comparing empirical to best/worst case.
Changes in version 2021.1.6
- More comments in binseg_normal.cpp to help potential GSOC students.
Changes in version 2020.10.7
- Comment binseg_normal.cpp to explain optimal_cost computation.
- Use C++ multiset with operator< instead of multimap/vector.
- Use cumsum C++ vector for constant time mean/cost computation for any
split.
- Store cost of segments before/after split, pass the cost values to
maybe_add to avoid having to recompute them.
- Computation works for only one data point.
Changes in version 2020.9.15
- remove unused C++ errors.
- test coef method.
Changes in version 2020.9.3
- Bugfix for negative means, docs.
- predict/plot methods, copy code from example.
Changes in version 2019.9.20
- Initial implementation.