Ebisu

Latest version: v2.2.0

Safety actively analyzes 685525 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

38.089740065719965

37.920753773390835

(We actually already figured this out in the JavaScript version: https://github.com/fasiha/ebisu.js/pull/21 and https://github.com/fasiha/ebisu.js/pull/24.)

24.0

2.2.0

Fixes https://github.com/fasiha/ebisu/issues/68: in the binary quiz case, weird things happen in `updateRecall`. Either you get very wrong answers or exceptions are thrown. We can fix this by calculating moments in the log domain.

If you're testing old quizzes, this version will differ for models in the affected regions. Compare:
py
import ebisu

2.1.0

1) Soft-binary fuzzy quizzes

`updateRecall` can now take *floating point* quizzes between 0 and 1 (inclusive) as `successes`, to handle the case when your quiz isn’t quite correct or wasn’t fully incorrect. Varying this number between 0 and 1 will smoothly vary the halflife of the updated model. Under the hood, there's a noisy-Bernoulli statistical model: check for the math [here](https://fasiha.github.io/ebisu/#bonus-soft-binary-quizzes).

2) New function to explicitly rescale model halflives

A new function has been added to the API, `rescaleHalflife`, for those cases when the halflife of a flashcard is just wrong and you need to multiply it by ten (so you see it less often) or divide it by two (so you see it *more* often).

3) Behavioral change to `updateRecall`
`updateRecall` will by default rebalance models, so that updated models will have `α=β` (to within machine precision) and `t` will be the halflife.

(This does have a performance impact, so I may have to flip the default to *not* always rebalance in a future release if this turns out to be problematic.)

(This means running `updateRecall` in 2.1.0 with the same inputs will yield different numbers than 2.0.0. However, the differences are statistically very minor: they both represent very nearly the same probabilistic belief on recall.)

---

Closes long-standing issues [23](https://github.com/fasiha/ebisu/issues/23) and [#31](https://github.com/fasiha/ebisu/issues/31)—thank you to all participants who weighed in, offered advice, and waited patiently.

[See all docstrings](https://github.com/fasiha/ebisu/blob/gh-pages/doc/doc.md).

2.0.0

The API for `updateRecall` has changed because `boolean` results don't make sense for quiz apps that have a sense of "review sessions" in which the same flashcard can be reviewed more than one time, e.g., if a review session consists of conjugating the same verb twice. Therefore, `updateRecall` accepts two integers:
- `successes`, the number of times the user correctly produced the memory encoded in this flashcard, out of
- `total` number of times it was presented to the user.

The old behavior can be recovered by setting `total=1` and `successes=1` upon success and 0 upon failure.

The memory models from previous versions remain fully-compatible with this update.

While this new feature allows more freedom in desining quiz applications, it does open up the possibility of numerical instability when the function receives a very surprising input. Please wrap calls to `updateRecall` in a `try` block to gracefully handle this possibility, and get in touch in case it happens to you a lot.

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.