diff --git a/geval.cabal b/geval.cabal index 92f2910..515655e 100644 --- a/geval.cabal +++ b/geval.cabal @@ -1,5 +1,5 @@ name: geval -version: 1.15.0.0 +version: 1.15.0.1 synopsis: Machine learning evaluation tools description: Please see README.md homepage: http://github.com/name/project diff --git a/src/GEval/Core.hs b/src/GEval/Core.hs index 9fc0a55..c675bd0 100644 --- a/src/GEval/Core.hs +++ b/src/GEval/Core.hs @@ -559,7 +559,7 @@ gevalCore' MAE _ = gevalCoreWithoutInput outParser outParser itemAbsoluteError a gevalCore' SMAPE _ = gevalCoreWithoutInput outParser outParser smape averageC (* 100.0) where outParser = getValue . TR.double - smape (exp, out) = (abs (exp-out)) / ((abs exp) + (abs out)) + smape (exp, out) = (abs (exp-out)) `safeDoubleDiv` ((abs exp) + (abs out)) gevalCore' Pearson _ = gevalCoreByCorrelationMeasure pearson gevalCore' Spearman _ = gevalCoreByCorrelationMeasure spearman diff --git a/test/Spec.hs b/test/Spec.hs index 051013a..f3d7429 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -86,7 +86,7 @@ main = hspec $ do runGEvalTest "mae-simple" `shouldReturnAlmost` 1.5 describe "SMAPE" $ do it "simple test" $ - runGEvalTest "smape-simple" `shouldReturnAlmost` 54.2222222222222222 + runGEvalTest "smape-simple" `shouldReturnAlmost` 45.1851851851852 describe "Spearman's rank correlation coefficient" $ do it "simple test" $ do runGEvalTest "spearman-simple" `shouldReturnAlmost` (- 0.5735) diff --git a/test/smape-simple/smape-simple-solution/test-A/out.tsv b/test/smape-simple/smape-simple-solution/test-A/out.tsv index 14fce23..9c8e935 100644 --- a/test/smape-simple/smape-simple-solution/test-A/out.tsv +++ b/test/smape-simple/smape-simple-solution/test-A/out.tsv @@ -3,3 +3,4 @@ -2.5 3 0.3 +0.0 diff --git a/test/smape-simple/smape-simple/test-A/expected.tsv b/test/smape-simple/smape-simple/test-A/expected.tsv index f6cf468..8e97c1e 100644 --- a/test/smape-simple/smape-simple/test-A/expected.tsv +++ b/test/smape-simple/smape-simple/test-A/expected.tsv @@ -3,3 +3,4 @@ 0.0 3 1.2 +0.0