Skip to content
Snippets Groups Projects
Commit 9fb5f67a authored by Simon Belak's avatar Simon Belak
Browse files

Correctly handle infinities

parent c2be489a
Branches
Tags
No related merge requests found
......@@ -395,9 +395,8 @@
lambda 0.1
regularize (fn [penalty]
(fn [ssr]
(if (or (Double/isNaN ssr)
(Double/isInfinite ssr))
Double/MAX_VALUE
(if (Double/isNaN ssr)
Double/POSITIVE_INFINITY
(+ ssr (* lambda penalty)))))
best-fit (transduce
identity
......@@ -422,9 +421,10 @@
(+ a (* b (Math/log x)))))
(regularize 1)))})
(fn [fits]
(let [model (key (apply min-key val fits))]
{:model model
:params (features model)})))
(let [[model score] (apply min-key val fits)]
(when (Double/isFinite score)
{:model model
:params (features model)}))))
series)
resolution (infer-resolution query series)
series (if resolution
......@@ -432,8 +432,10 @@
series)]
(merge {:resolution resolution
:series series
:linear-regression (zipmap [:offset :slope]
linear-regression)
:linear-regression (when (every? #(Double/isFinite %)
linear-regression)
(zipmap [:offset :slope]
linear-regression))
:best-fit best-fit
:growth-series (when resolution
(->> series
......
......@@ -120,6 +120,15 @@
(-> (->features {:base_type :type/NeverBeforeSeen} numbers)
:type)])
(expect
[nil nil]
((juxt :best-fit :linear-regression)
(->features [{:base_type :type/DateTime}
{:base_type :type/Number}]
[[(make-sql-timestamp 2015 6 1) 0]
[(make-sql-timestamp 2015 6 2) 1000000]
[(make-sql-timestamp 2015 6 3) Double/MAX_VALUE]])))
(expect
[:some
:some
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment