From 855f92672bb90316294b9591d61a4d93385455fe Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 28 Sep 2025 23:06:41 +0200 Subject: [PATCH] perf(qav3): improve _get_n_clusters heuristic MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../user_data/freqaimodels/QuickAdapterRegressorV3.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index eb52e4f..8a4035c 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -861,7 +861,12 @@ class QuickAdapterRegressorV3(BaseRegressionModel): if upper_bound < 2: return 1 lower_bound = min(min_n_clusters, upper_bound) - n_clusters = int(round(np.log2(max(n_uniques, 2)))) + n_uniques_bounded = max(n_uniques, 2) + n_clusters = int( + round( + (np.log2(n_uniques_bounded) + np.sqrt(n_uniques_bounded)) / 2.0 + ) + ) return max(lower_bound, min(n_clusters, upper_bound)) if metric in { -- 2.43.0