Skip to content

Commit a5778f3

Browse files
authored
Fix/FSRS-6 doesn't give <1d intervals & use log loss instead of RMSE(bins) (#3948)
* Fix/FSRS-6 doesn't give <1d intervals https://forums.ankiweb.net/t/anki-25-05-beta-1/59710/8?u=l.m.sherlock * use log loss instead of rmse to determine use which parameters
1 parent 0321c26 commit a5778f3

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

rslib/src/scheduler/answering/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ impl Collection {
468468
self.get_config_bool(BoolKey::FsrsShortTermWithStepsEnabled);
469469
let fsrs_allow_short_term = if fsrs_enabled {
470470
let params = config.fsrs_params();
471-
if params.len() == 19 {
471+
if params.len() >= 19 {
472472
params[17] > 0.0 && params[18] > 0.0
473473
} else {
474474
false

rslib/src/scheduler/fsrs/params.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ impl Collection {
116116
})?;
117117
progress_thread.join().ok();
118118
if let Ok(fsrs) = FSRS::new(Some(current_params)) {
119-
let current_rmse = fsrs.evaluate(items.clone(), |_| true)?.rmse_bins;
119+
let current_log_loss = fsrs.evaluate(items.clone(), |_| true)?.log_loss;
120120
let optimized_fsrs = FSRS::new(Some(&params))?;
121-
let optimized_rmse = optimized_fsrs.evaluate(items.clone(), |_| true)?.rmse_bins;
122-
if current_rmse <= optimized_rmse {
121+
let optimized_log_loss = optimized_fsrs.evaluate(items.clone(), |_| true)?.log_loss;
122+
if current_log_loss <= optimized_log_loss {
123123
if num_of_relearning_steps <= 1 {
124124
params = current_params.to_vec();
125125
} else {

0 commit comments

Comments
 (0)