An EitherAuditor encodes the idea of success or failure.
Diagnostic information about failures encountered.
Diagnostic information about failures encountered. This structure can be thought
of as a flattened tree of failures. The tree is pruned one of two ways, it is
either prune at the root, or pruned at the the first submodel successes
encountered. The tree is pruned at the root if the auditor is created via
EitherAuditor[A](aggregateDiagnostics = false)
.
If the auditor is created via EitherAuditor[A](aggregateDiagnostics = true)
,
or simply EitherAuditor[A]
, then the trees are pruned at successes. For
instance, imagine a model, model 1
, that has submodels 2
and 5
.
Submodel 2
has submodels 3
and 4
; submodel 5
has submodels 6
and 7
.
Let's say the following submodels fail: 1, 2, 4, 6, 7. Then, information would
be aggregated as follows:
// ORIGINAL | PRUNED | SIMPLIFIED // ===================================================================== // | | // 1:F +-- 2:F +-- 3:S | 1 +-- 2 +-- / | 1 --- 2 + // | | | | | | | // | +-- 4:F | | +-- 4 | +-- 4 // | | | | // +-- 5:S +-- 6:F | +-- / +-- / | // | | | | // +-- 7:F | +-- / | DFS preorder: 1, 2, 4 // | | // =====================================================================
Notice because submodel 5
succeeds, error information about submodels
6
and 7
is disregarded because submodel 5
could recover from its
submodels' errors.
So, in the event that diagnostics are aggregated, only information about
submodels 1
, 2
, 4
should be contained in the EitherAuditorError
returned by the EitherAuditor.
a non-empty list of ModelIdentity instances of submodels that failed to produce a prediction. Since the top-level model must fail in order for an EitherAuditorError to be returned, this is a non-empty list. This non-empty list is in DFS preorder.
messages indicating errors encountered.
names of variables with missing data encountered in the model computation.
Created by ryan on 1/30/17.
Created by ryan.deak on 5/9/17.
An EitherAuditor encodes the idea of success or failure. In the case of failure, (meaning a model could not produce a prediction) diagnostic information is encoded in the form of an EitherAuditorError. No diagnostic information is emitted when a "successful" prediction is produced, even if compromises were made in order to produce the prediction or problems like missing data were encountered.
To construct an EitherAuditor, use the
apply
factory methods in the companion object.Created by ryan.deak on 10/2/17.
the type of value returned in the success case.