1. 13 Jan, 2023 2 commits
  2. 12 Jan, 2023 1 commit
  3. 11 Jan, 2023 1 commit
  4. 04 Jan, 2023 1 commit
  5. 30 Dec, 2022 1 commit
    • Thibault Hallouin's avatar
      refactor determinist Evaluator · b4abca9f
      Thibault Hallouin authored
      including:
      - extracting the element/intermediate/metric calculations from the
        `determinist::Evaluator` class
      - introducing new getter methods in `determinist::Evaluator` class
        that handle the element/intermediate/metric inter-dependencies
        internally to the object
      - removing external inter-dependencies handling from `evald`
      b4abca9f
  6. 27 Dec, 2022 1 commit
  7. 26 Dec, 2022 1 commit
    • Thibault Hallouin's avatar
      propagate templates to probabilist Evaluator class · ee8e2ef0
      Thibault Hallouin authored
      This is required for the bindings, because the 2D views on 4D tensors
      must be on the correct type (i.e. pytensor/rtensor/xtensor). Although,
      casting of the views to become xtensor could have been used instead.
      
      In doing so, there is no source file to be compiled anymore, so this
      becomes a header-only library. But to keep the "public" headers separate
      from the implementation, a subdirectory "detail/" is added.
      ee8e2ef0
  8. 19 Dec, 2022 1 commit
  9. 09 Dec, 2022 1 commit
  10. 20 Oct, 2022 1 commit
    • Thibault Hallouin's avatar
      pave the way for summary statistics on bootstrap samples · d37e69d2
      Thibault Hallouin authored
      Ultimately, the objective is for the user to be able to get the raw
      sampled metric values, or the mean and standard deviation of the sampled
      metric values, or a series of quantiles of the sampled metric values.
      There are still problems with the standard deviation on rtensor, and
      the computation of the quantiles does not work on n-dim expressions yet.
      So the second and third options are not possible yet, so only the raw
      values can be returned. Nonetheless, the machinery and the choice of
      where to introduce the summary functionality could be implemented,
      which is the purpose of this commit. A new parameter of the bootstrap
      experiment called "summary" is added: it can be given a value of 0 (to
      get the raw values). In the future, it would also take a value of 1 for
      mean+std, and 2 for quantiles.
      d37e69d2
  11. 06 Oct, 2022 1 commit
    • Thibault Hallouin's avatar
      implement bootstrapping method for metric uncertainty estimation · 16ce8f4e
      Thibault Hallouin authored
      The bootstrapping method is based on a non-overlapping block sampling
      with replacement, where the blocks are years of data. The number of
      samples and the sample length (i.e the number of year blocks) are both
      customisable.
      
      The method is accessible both for deterministic and probabilistic
      evaluation where a new axis is added. For now, the metrics for all the
      samples are returned, but in the future, some summary statistics would
      be implemented (e.g. quantiles or mean/standard deviation).
      
      /!\ For determinist evaluation, the n-dimensional functionality became
          untenable such that the number of dimensions was fixed and
          restricted to 2D tensors.
      
      New unit tests are included to test both the bootstrapping generator
      and the numerical results obtained with the bootstrapping turned on.
      16ce8f4e
  12. 25 Aug, 2022 1 commit
  13. 11 Jul, 2022 1 commit
  14. 15 Jun, 2022 1 commit
  15. 31 May, 2022 1 commit
  16. 25 May, 2022 1 commit
  17. 24 May, 2022 1 commit
  18. 23 May, 2022 1 commit
    • Thibault Hallouin's avatar
      replace unordered_set by vector to keep insertion order · 95c9f715
      Thibault Hallouin authored
      The order is which elements and dependencies are specified is important
      because some may need to be computed before others (i.e. they are
      themselves dependent). Using a vector (rather than a set) is required
      because while the set is ordered, the order is not controlled by the
      insertion order, but by some other sorting rules.
      95c9f715
  19. 17 May, 2022 1 commit
  20. 11 May, 2022 1 commit
    • Thibault Hallouin's avatar
      wrap calculation of probabilistic scores into a single function · ac411b55
      Thibault Hallouin authored
      The purpose of such refactoring is to allow for a "memoisation" approach
      (i.e. avoid re-computing the same elements/metrics multiple times).
      
      By redefining the API as a one-entry point function `evaluate`
      (as opposed to calling each metric in turn), it makes it possible to
      know in advance the metrics required by the user, and by keeping a
      register (hard coded for now) of what unitary computation elements
      each metric requires, and which metrics are nested in other metrics,
      it is possible to avoid computation repetitions.
      ac411b55
  21. 04 May, 2022 3 commits
  22. 03 May, 2022 1 commit
  23. 28 Apr, 2022 1 commit