From ded303765cf9c3ffa298adb6d37c847be71f321a Mon Sep 17 00:00:00 2001 From: MilesCranmer Date: Tue, 1 Feb 2022 19:39:00 -0500 Subject: [PATCH] Fix DomainError in pareto curve; fixes #67 --- Project.toml | 2 +- src/HallOfFame.jl | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 36c24bc3..fcdc4e14 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "SymbolicRegression" uuid = "8254be44-1295-4e6a-a16d-46603ac705cb" authors = ["MilesCranmer "] -version = "0.7.5" +version = "0.7.6" [deps] Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b" diff --git a/src/HallOfFame.jl b/src/HallOfFame.jl index 321094cf..6c371162 100644 --- a/src/HallOfFame.jl +++ b/src/HallOfFame.jl @@ -97,7 +97,8 @@ function string_dominating_pareto_curve(hallOfFame, baselineMSE, complexity = countNodes(member.tree) curMSE = (member.score - complexity * options.parsimony) * baselineMSE delta_c = complexity - lastComplexity - delta_l_mse = log(curMSE/lastMSE) + ZERO_POINT = 1f-10 + delta_l_mse = log(abs(curMSE/lastMSE) + ZERO_POINT) score = convert(Float32, -delta_l_mse/delta_c) output *= @sprintf("%-10d %-8.3e %-8.3e %-s\n" , complexity, curMSE, score, stringTree(member.tree, options, varMap=dataset.varMap)) lastMSE = curMSE