Auto Ease Factor
As add-ons are programs downloaded from the internet, they are potentially malicious. You should only download add-ons you trust.
- 2.1.0 (updated 2020-11-01)
To download this add-on, please copy and paste the following code into Anki 2.1:
If you were linked to this page from the internet, please open Anki on your computer, go to the Tools menu and then Add-ons>Browse & Install to paste in the code.
All Anki 2.1.x Add-Ons Contact Author
Am I right with my assumption that using your addon with both Anki installations won't work for me, because both instances of the addon would collect data independently? :(
So for some reason the due date isn't constant, and it definitely should be.
Edit: I take everything back. It's because Anki has a "Fuzz_Modifier".
I never had so much fun reviewing anki cards. It literally feels so much better and now it feels like i do the cards with purpose its insane.
i cant thank the author enough seriously
EDIT: i've got a question , i've put the ease factor on 3000 at max but one of my cards just got 310% is this a bug or intentional?
I have erased YesNo from __init__.py because I want to continue using ReMemorize. ReMemorize is a big time saver.
I suggest adding a convenient config option to (dis-/re-en-)able YesNo.
edit: Thanks, it works for me.
edit 2: Having only two rating possibilities is a benefit nevertheless – it saves time and working memory.
edit 3: To answer another reviewer's question about ReMemorize (and "ReMemorize buttons"): There is not much difference compared to usage without Auto Ease. You could think that you get crazy high eases, but this is not the case: Even when you schedule a card by "36500" (36500 days into the future), this is treated like a normal "Easy (4)" grading as far as ease is concerned. To summarize, the add-ons don't change the relationship between next interval and ease.
edit 4: I use an upper ease limit of 400% and a lower limit of 160%.Even cards that I have been reviewing since 3 years ago usually don't go above 400. As said in the description, the upper limit reduces error. The lower limit keeps me out of ease hell and identifies bad cards as leeches earlier.
Try setting "two_button_mode" to false in the config. Let me know if that works for you!
Curious how would the add-on perform in custom study decks?
Will the reviews in the custom study deck influence the calculation that this add-on does?
It ADJUSTS the INTERVAL of EACH card = Each card hardness is stimulated in UNIQUE INTERVALS for Ultimate Performance!!
If you don't quite adjust your intervals by hand this is a very useful AUTOMATED way to do it.
IF YOU DON'T DO ANYTHING AT ALL = WASTING A LOT OF YOUR PRECIOUS TIME!!
I just wish they would make it easier to port this to Anki mobile, as I do at least half of my reviews there... I will pray.
(1) It seems ctrl-Z to undo, might not undo the effects of this? For example, a card had 1.5 year jump (I thought) if I said yes, I accidentally hit no, ctrl-z to undo and go back and noticed the yes interval was now 1.6 years. Apologies if I just saw it wrong.
(2) Does setting a New Interval matter? I have it set to 80% because I don't want to completely start over on a card if I get it wrong. Should New Interval be set to something specific and/or will it affect this addon's worth and effect?
(1) There was some odd behavior with undo in an earlier version, but after an update last month and focused testing, it should behave consistently. If you see something like this again, please let me know, raise an issue on GitHub, especially if you can find a way to duplicate it. (Even when there was a bug, the differences were pretty small percentages, so any adjustments should become really minor over time.)
(2) I've played with a few different new intervals, 4% to 80%, and haven't come up with a perfect number. I think 80% is reasonable though. Sometimes you miss a card that's on the tip of your tongue, and really a 100% interval would be fine. Sometimes you completely forget it, and really need to go back to learning from scratch. There's not a perfect way to handle both cases, but small numbers can really up your workload. So long as you don't find a bunch of cards perpetually stuck in relearning, >50% might be the right approach.
1) if i use to reschedule my cards, the addon will work fine ? for example if i add some cards that i already know well just because i want to have them in my collection, and i reschedule them to be reviewed in a few months, how will the addon behave?
2) if i use an addon that add more buttons (rememorize buttons) that add for example easier, easiest ecc. with intervals up to 10x the easy interval (that i often use for situation such as above) will the addon go crazy or it will be fine?
3) should i change my deck options to match the addon functioning (aside interval modifier)? for example are long learning steps still needed? Right now i have 15 60 1440 for new cards and 25 1440, would it be better to avoid learning steps bigger than a day (that as far as i know have the only meaning of avoiding ease hell) or is it ok?
4) if i deactivate yesorno and keep 4 buttons, would i defeat the meaning of the addon? Or is it still fine? in this case what would be the difference compared to not having the addon?
Thank you very much!
The review stats are untouched, just the ease factor, so the only risk is that some cards might end up in ease hell because of that. You could either export your current ease factors using deck options, or use an add on like Rising Orange's Reset-Ease-Automatically to bring all your ease values back into a more normal range:
> 2) rememorize... I've heard some people say the YesOrNo add on doesn't play nice with ReMemorize, so you'd disable that. I think ReMemorize scheduling will work when you say 10x, but then next time you review if you hit a more normal button, my add-on will calculate the ease based on the performance and the average intervals... the combo is not really well tested, so I'm not 100% sure how it ends up, but I think they could be compatible.
> 3) deck options
People will have different opinions here. I just put learning and relearning steps for the first day, then let the algorithm take over right away. (ejs originally wrote the algorithm, and he had learning steps out to like a month). I just want as much performance-based feedback as early as possible. The advantage of shorter cycles is that the algorithm gets more feedback really quickly and helps the intervals climb faster. But if they work for you, and you don't feel like cards are constantly bouncing back to relearning after waiting a week, they might be completely fine.
4) if i deactivate yesorno and keep 4 buttons, would i defeat the meaning of the addon?
As I see it, the primary benefit of the add on is that performance based feedback means you don't have to think about the difference between hard/good/easy. You just know it or you don't. If you use those buttons perfectly consistently, the add-on won't have that much advantage, they'll both find the right ease factor after a while.
However if you ever hit Again too many times and have a really hard time judging when to hit Easy to climb out of Ease hell... this algorithm does prevent that by automatically scaling your ease factor to recent streaks. It will crash your ease factor when you get some errors, but every success will pull it back up, so you don't have to worry about getting stuck in short cycles forever.
So if you wanted to keep lots of buttons, the addon can still help you guard against ease hell. It will also still accelerate your super easy cards to have really long intervals so they don't bog down your deck. But it's not going to be quite as useful as taking the plunge and just ditching the mental load of multiple buttons completely. It's a judgment call, play around with it, but there's a high temptation to over-optimize Anki. If you get a process that pretty much works for you, go with it for a while, the most important thing is just doing your reps.
Thanks for the feedback and interesting questions! Best of luck!
Super promising! Is it possibile to know how the addon behave when you split your reviews between mobile and pc? Or if you have two different pc where you do anki (both with the addon)? Would it break it?
EDIT: thank you very much for the answer! I suggest you to make a FAQ with this kind of answers :)
If you use mobile, there's a risk -- it's like the algorithm will be frozen the whole time you're on mobile, but will fix itself next time you review on PC.
Most times that won't make a huge difference, but the worst case scenario is if you suddenly failed a card a couple times on PC, then only reviewed on mobile after that for a long time. The algorithm normally drops your ease really low, then rubberbands it back up as you succeed. If you transition from PC to mobile, you could get in a version of mobile ease hell because the algorithm isn't there to tell it to recover.
There's a workaround -- if you just log in on PC and use the new deck menu option to "Adjust Ease Factors to Performance." It will put everything back on track, so you don't even have to necessarily review on PC at all anymore, so long as you run the algorithm across the deck periodically. (More often would be better, of course, but even if you only do this once every few days, you might still be fine.)
EDIT: Nice FAQ. Maybe I'll pull something like this together on GitHub, but until then, I added a couple answers. Thanks!
Like others, from a theoretical perspective I wish I could exclude (or underweight) the card learning process relative to reviews, but I'm not actually sure how much difference this would make in practice. To clarify this, for example, assume I don't care if I fail cards 50% of the time in the learning phase, as long as I pass cards 85% of the time in the review phase. Having the algorithm aim for an average of 85% pass rate across both learning and reviews means that I will (in this example) be reviewing cards too often, with >85% review pass rates compensating for <85% learning pass rates. My apologies if I've misunderstood how the algorithm works, this just appears to be the case from my stats after a few weeks of use.
Thanks so much for making this. It is, but for a purely ideological difference, perfect.
In the meantime, I found the button styling from AnKing works really well with my add on. Not really the same, I know, but worth checking out in its own right:
Another option -- you can disable the two button mode in my add on in config. My add-on will treat both "Good" and "Easy" the same if you do that, that might let you use both for now, just with a few redundant buttons.
I don't really agree with learning steps mattering for ease factor determination though. What is even the reason for having learning steps if they act like normal reviews in all but name? I wish that part was at least optional.
The original rationale for considering learning steps is that it's really hard for the algorithm to get enough data to make smart decisions from reviews alone.
You're right, that does reduce the distinction between learning and review. I've basically just accepted that, and I just have one or two learning steps now and then hand it over to the algorithm to take it from there. But ejs, the original author, used more like a full month of learning steps, so his version didn't use the algorithm until very late in a card's life. Very different philosophy! It's not my path, but I respect that approach.
So... even though I worry about the limited data you'd get, requests to limit it to reviews only are pretty common, so hopefully I can add that feature soon. (It's a little complex, and I want to get it right, so bear with me, but I am prioritizing it.)
It will be a little bit dangerous for people to limit the data that much, so I might put up a big warning, but I'm all for people playing around with different options to find the path that works best for them.
There's been some discussion on GitHub about only applying this to certain modes. I'm not sure how quickly I'll be able to implement that, but I bumped it up to priority, it's a popular request.
Also should I tick enable the scheduler while i have this on?
This add-on is more about making sure the intervals are correct during normal reviews, so after any individual rep the ease factor is adjusted so that the next review will be spaced appropriately--sooner if you missed the rep, later if you passed. I've tested with both the v2 scheduler and the older scheduler, so either should work with this add-on.
(The original comment also pointed out an issue, and noted that Issues weren't enabled on GitHub. Issues are enabled there now, thank you for catching that!)
For other commenters, there's some additional discussion over on GitHub now, welcome any feedback here or there.
Excellent idea from the original author, and thanks to the current one for keeping it up-to-date and therefore useable!
Is it possible to set different desired succes rates for different decks?