Closed kirianguiller closed 1 year ago
Ahh, right, so the issue is that this JavaScript repo implements Ebisu v2.0 (https://github.com/fasiha/ebisu.js/blob/gh-pages/package.json#L3) and doesn't yet have the updates that the Python version of Ebisu introduced in 2.1, see https://github.com/fasiha/ebisu/blob/gh-pages/CHANGELOG.md#210-soft-binary-quizzes-and-halflife-rescaling
rescaleHalflife
, and updateModel
automatically rebalances to the new halflife.So this repo (and ebisu-java) still works fine, just without these these features. Forgive me, this isn't the first time I release a new version of Python Ebisu and then it takes me a few weeks/months to release a new JS version 😭.
Do you need the new 2.1 features? If so I can prioritize updating this repo to 2.1.
Indeed, these 2.1 features would be useful for our project.
I was thinking about, if we use ebisujs 2.0 at the moment in our app, our t from [a,b;t] will not represent the half-life. So I was concern about when version 2.1 is released (or 3.X directly), would it be possible to "convert" 2.0 models to 2.1 models (that directly have half-time in it). It seems that it's what "tback" could do from updateRecall(prior, successes, total, tnow, rebalance=True, tback=None, q0=None) (first would need to compute the halftime with modelToPercentileDecay and then force it in updateRecall by specifying the tback as the halftime (and by having rebalance=True, which is the default behavior anyway atm)).
Is it the best way for converting 2.0 to 2.1 models ? Thanks !
would it be possible to "convert" 2.0 models to 2.1 models
Yes @kirianguiller! An easy way to do this with 2.1 is to use the rescaleHalflife function which will by default return the model for the halflife. (It's intended to rescale that halflife but the default scaling is 1.0.
Converting version 2.x to 3 models will be interesting.
Hope this helps! My goal is to finish adding unit tests to Ebisu 3 before New Year's!
Fixed by #19, just published v2.1. Sorry for the delay!
Hey everyone,
This morning I did some testing on the updateRecall function, and I was really surprised on the behavior. The function outputs are both not logical and different from the python API.
Javascript
Input
Here the
ebisuIssue.js
script :output
and here is the output :
Problems
Python
For comparaison, here what we should find with python
input
output
Their might be a problem in the code somewhere
PS :
predictRecall()
is behaving the same on both python and javascript, so the problem is probably only in the code ofupdateRecall()