-
-
Notifications
You must be signed in to change notification settings - Fork 139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Produce workload graph for an individual #596
Comments
@Expertium, do you have the code to draw the workload graph? |
I do, but beware that for large decks and large values of "Days to simulate" it will take a lot of time to generate the graph, even if we limit the range to 0.7-0.99 instead of 0.5-0.99. EDIT: the upper limit for the y axis was hard-coded, I made it adaptable. I also changed the lower limit of the x axis from 0.5 to 0.7 and added text to make it more clear what the horizontal dashed lines mean. |
Plotting a graph from Sherlock's data.zip Here's the code. However, with the way I defined the green area, it may be possible for the output of "Compute optimal retention" to fall within the yellow area. EDIT: there are still some edge cases. Give me some more time. |
By the way, "Compute optimal retention" doesn't minimize the workload, rather, it maximizes the sum of all probabilities of recall of all cards. In simple terms, it maximizes knowledge acquisition within given time constraints. |
ah thank you, I took that understanding from what someone said on reddit. That sounds more sensible. I've realised the values I'm getting from compute optimal retention were because I had a large deck size (explaining the difference between what I'm managing to do, and what the algorithm spit out). I was entering a deck size figure by what I'd expect my deck size to be by the time of exams, as it can't account for a varying deck size. Maybe I'm more interested in having the compute optimal retention feature gain like a linear interpolation feature where there is the option to linearly interpolate between current deck size, end deck size using the number of days of study. My retention for an hours worth of Anki per day in 180 days rapidly declines between 1000 deck size and 2000 deck size from around 90% retention to more the higher 70s. (but I think that might be due to in part not accounting for the cards that have already matured etc) |
Thanks! My two arithmetic decks (where I fail a card if I didn't answer it quick enough) got graphs where 98-99% is best, so the whole graph is red. Compared to the values stored in Anki, Anki's Evaluate shows that optimizer's RMSE is usually a little higher, and Log Loss a little lower. (corrected: usually, not always) |
Can you show that graph here? |
Huh. I guess the default values of "Days to simulate" and other stuff just aren't very good for you. |
So it still depends on the choice of time of study? Past year: imp 0 veryimp mathbas 12%.apkg: imp post math-bas 14%.apkg: |
Would it be possible to set the default number of cards, to the number of cards the user currently has in their deck? I imagine that might be a more sensible default than 10k. |
Actually, the current implementation is configurable: https://github.com/open-spaced-repetition/fsrs-optimizer/blob/bddc4fe67184fdcfaf79284b0e5430a11fcb3c31/src/fsrs_optimizer/fsrs_optimizer.py#L1220-L1227 |
But I don't see those options in fsrs4anki_optimizer.ipynb. |
You can pass the arguments into the function in fsrs4anki_optimizer.ipynb. |
That's not obvious. Maybe you should add text explaining that, and an example? You can't expect most people to know that. |
I will do it tomorrow. |
|
1800 seconds = 30 minutes, 1800 minutes won't fit in a day. |
Ok, my bad. I looked at the code again, and it appears to be in seconds. But I'm still pretty sure that it's per all cards, not just one card. |
I was talking about the time per review that I multiplied by the number of reviews (since Anki rounds per-day stats down to 0). |
Ah, so you're plotting a graph for a "What if I only learn 1 card per day?" scenario? I don't think this feature is intended to be used that way, but ok. |
Yes, I introduce 1 new card per day in that deck. It's not 1 review per day. As I understand it,
|
I don't think simulator obeys new card's limits, actually. But I'm not sure. |
Ah, that one. Yeah, I was looking at the one that is used for calculating optimal retention |
Simulator needs a switch to disable Anki simulation. Still not sure what to do about the existing review cards, since they are causing the most workload in the decks where I am not learning new cards. For the above deck of 569 cards, with 1 new card/day in 600 days and pretty much no review limits (100 reps, 60 seconds), I got
114÷600= |
Please open a new issue to submit feature request. |
Which module is related to your feature request?
Scheduler, Optimizer, or Simulator?
Simulator I guess?
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
The optimal retention calculator spits out a single number, mine being 0.75/0.76 depending on how parameters are varied. I'm preparing for exams so can't afford a retention that low but would still be interested in a graph of how my workload goes up as desired retention is varied.
Describe the solution you'd like
A clear and concise description of what you want to happen.
The ideal solution would be a button under compute optimal retention that pops up with a graph.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Maybe instead of purely minimising workload, (ie finding the minimum point on that graph), it takes into account retention. For example, if 90% retention is only 5% more work than 75% retention, but you get questions wrong 2/5ths as often, then that is much better. I think it's possible to write an equation that also optimises while considering that.
Additional context
Add any other context or screenshots about the feature request here.
The graph in the tutorial I'm referencing
The text was updated successfully, but these errors were encountered: