From 74a603e61bb4dfbb22c443635ffef6e42a3ae3c5 Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Sun, 24 Mar 2024 16:28:15 +0800 Subject: [PATCH] use rmse in comparing parameters (#3087) --- rslib/src/scheduler/fsrs/weights.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rslib/src/scheduler/fsrs/weights.rs b/rslib/src/scheduler/fsrs/weights.rs index 98bb1cee1..28f586a05 100644 --- a/rslib/src/scheduler/fsrs/weights.rs +++ b/rslib/src/scheduler/fsrs/weights.rs @@ -93,10 +93,12 @@ impl Collection { } }); let fsrs = FSRS::new(Some(current_weights))?; + let current_rmse = fsrs.evaluate(items.clone(), |_| true)?.rmse_bins; let mut weights = fsrs.compute_parameters(items.clone(), fsrs_items < 1000, Some(progress2))?; - let metrics = fsrs.universal_metrics(items, &weights, |_| true)?; - if metrics.0 <= metrics.1 { + let optimized_fsrs = FSRS::new(Some(&weights))?; + let optimized_rmse = optimized_fsrs.evaluate(items.clone(), |_| true)?.rmse_bins; + if current_rmse <= optimized_rmse { weights = current_weights.to_vec(); }