case class MultiPredictionBaggedResult(predictions: Seq[PredictionResult[Double]], NibIn: Vector[Vector[Int]], bias: Option[Seq[Double]] = None, rescale: Double = 1.0, disableBootstrap: Boolean = false) extends BaggedResult[Double] with RegressionResult with Product with Serializable
Container with model-wise predictions and logic to compute variances and training row scores
These calculations are implemented using matrix arithmetic to make them more performant when the number of predictions is large. This obfuscates the algorithm significantly, however. To see what is being computed, look at SinglePredictionBaggedResult, which is more clear. These two implementations are tested for consistency.
- predictions
for each constituent model
- NibIn
the sample matrix as (N_models x N_training)
- bias
model to use for estimating bias
- Alphabetic
- By Inheritance
- MultiPredictionBaggedResult
- Serializable
- Product
- Equals
- RegressionResult
- BaggedResult
- PredictionResult
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new MultiPredictionBaggedResult(predictions: Seq[PredictionResult[Double]], NibIn: Vector[Vector[Int]], bias: Option[Seq[Double]] = None, rescale: Double = 1.0, disableBootstrap: Boolean = false)
- predictions
for each constituent model
- NibIn
the sample matrix as (N_models x N_training)
- bias
model to use for estimating bias
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- lazy val Nib: Vector[Vector[Int]]
- lazy val NibIJMat: DenseMatrix[Double]
- val NibIn: Vector[Vector[Int]]
- lazy val NibJMat: DenseMatrix[Double]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val bias: Option[Seq[Double]]
- lazy val biasCorrection: Seq[Double]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- val disableBootstrap: Boolean
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- lazy val expected: Seq[Double]
- lazy val expectedMatrix: Seq[Seq[Double]]
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def getBias(): Option[Seq[Double]]
**EXPERIMENTAL** Get the estimated bias of each prediction, if possible
**EXPERIMENTAL** Get the estimated bias of each prediction, if possible
The bias is signed and can be subtracted from the prediction to improve accuracy. See https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
It is unclear if this method will be a stable member of the interface. It should be reviewed before the next formal release.
- Definition Classes
- RegressionResult
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getExpected(): Seq[Double]
Return the ensemble average
Return the ensemble average
- returns
expected value of each prediction
- Definition Classes
- MultiPredictionBaggedResult → PredictionResult
- def getGradient(): Option[Seq[Vector[Double]]]
Average the gradients from the models in the ensemble
Average the gradients from the models in the ensemble
- returns
the gradient of each prediction as a vector of doubles
- Definition Classes
- BaggedResult → PredictionResult
- def getImportanceScores(): Option[Seq[Seq[Double]]]
Get the training row scores for each prediction
Get the training row scores for each prediction
- returns
sequence (over predictions) of sequence (over training rows) of importances
- Definition Classes
- MultiPredictionBaggedResult → PredictionResult
- def getInfluenceScores(actuals: Seq[Any]): Option[Seq[Seq[Double]]]
Return IJ scores
Return IJ scores
- actuals
to assess the improvement or damage against
- returns
training row scores of each prediction
- Definition Classes
- MultiPredictionBaggedResult → PredictionResult
- def getQuantile(quantile: Double, observational: Boolean = true): Option[Seq[Double]]
- Definition Classes
- RegressionResult
- def getQuantileMean(quantile: Double): Option[Seq[Double]]
Get a quantile from the distribution of predicted means, if possible
Get a quantile from the distribution of predicted means, if possible
The distribution for which these quantiles are computed should have zero-mean (i.e. no bias)
- quantile
to get, taken between 0.0 and 1.0 (i.e. not a percentile)
- Definition Classes
- RegressionResult
- def getStdDevMean(): Option[Seq[Double]]
Get the standard deviation of the distribution of predicted mean observations, if possible
Get the standard deviation of the distribution of predicted mean observations, if possible
The variation is due to the finite size of the training data, which can be thought of as being sampled from some training data distribution. This statistic is related to the variance in the bias-variance trade-off https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
- Definition Classes
- MultiPredictionBaggedResult → RegressionResult
- def getStdDevObs(): Option[Seq[Double]]
Get the standard deviation of the distribution of predicted observations, if possible
Get the standard deviation of the distribution of predicted observations, if possible
Observations of the predicted variable are expected to have a stddev that matches this value. This statistic is related to the https://en.wikipedia.org/wiki/Prediction_interval It does not include estimated bias, even if the regression result contains a bias estimate.
- Definition Classes
- MultiPredictionBaggedResult → RegressionResult
- def getTotalError(): Option[Seq[Double]]
Get the expected error of the predicted mean observations, if possible
Get the expected error of the predicted mean observations, if possible
The mean of a large sample of repeated observations are expected to have a root mean squared error of the mean that matches this value. This statistic is related to the https://en.wikipedia.org/wiki/Confidence_interval This statistic includes the contribution of the estimated bias. E.g., for a normal distribution of predicted means, the total error is sqrt(bias**2 + variance)
- Definition Classes
- RegressionResult
- def getTotalErrorObs(): Option[Seq[Double]]
Get the expected error of the observations, if possible
Get the expected error of the observations, if possible
This statistic is related to the https://en.wikipedia.org/wiki/Prediction_interval This statistic includes the contribution of the estimated bias. E.g., for a normal distribution of predicted means, the total error is sqrt(bias**2 + variance).
- Definition Classes
- RegressionResult
- def getTotalErrorQuantile(quantile: Double): Option[Seq[Double]]
Get a quantile from the distribution of predicted means, if possible
Get a quantile from the distribution of predicted means, if possible
The distribution for which these quantiles are computed could be biased, e.g. if the bias is estimated but not corrected.
- quantile
to get, taken between 0.0 and 1.0 (i.e. not a percentile)
- Definition Classes
- RegressionResult
- def getTotalErrorQuantileObs(quantile: Double): Option[Seq[Double]]
Get a quantile from the distribution of predicted observations, if possible
Get a quantile from the distribution of predicted observations, if possible
Observations of the predicted variable are inferred to have a distribution with this quantile. This statistic is related to the https://en.wikipedia.org/wiki/Prediction_interval getObsQuantile(0.5) is a central statistic for the estimated bias, if the bias is estimated but not corrected.
- quantile
to get, taken between 0.0 and 1.0 (i.e. not a percentile)
- Definition Classes
- RegressionResult
- def getUncertainty(observational: Boolean): Option[Seq[Any]]
For the sake of parity, we were using this method
For the sake of parity, we were using this method
- observational
whether the uncertainty should account for observational uncertainty
- returns
uncertainty of each prediction
- Definition Classes
- MultiPredictionBaggedResult → RegressionResult → PredictionResult
- def influences(meanPrediction: Vector[Double], actualPrediction: Vector[Double], modelPredictions: Seq[Seq[Double]], NibJ: DenseMatrix[Double], NibIJ: DenseMatrix[Double]): Seq[Vector[Double]]
Compute the IJ training row scores for a prediction
Compute the IJ training row scores for a prediction
- meanPrediction
over the models
- modelPredictions
prediction of each model
- NibJ
sampling matrix for the jackknife-after-bootstrap estimate
- NibIJ
sampling matrix for the infinitesimal jackknife estimate
- returns
the score of each training row as a vector of doubles
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def numPredictions: Int
The number of inputs that have been predicted on (NOT the number of bagged models).
The number of inputs that have been predicted on (NOT the number of bagged models).
- Definition Classes
- MultiPredictionBaggedResult → BaggedResult
- val predictions: Seq[PredictionResult[Double]]
- Definition Classes
- MultiPredictionBaggedResult → BaggedResult
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val rescale: Double
- def scores(meanPrediction: Vector[Double], modelPredictions: Seq[Seq[Double]], NibJ: DenseMatrix[Double], NibIJ: DenseMatrix[Double]): Seq[Vector[Double]]
Compute the IJ training row scores for a prediction
Compute the IJ training row scores for a prediction
- meanPrediction
over the models
- modelPredictions
prediction of each model
- NibJ
sampling matrix for the jackknife-after-bootstrap estimate
- NibIJ
sampling matrix for the infinitesimal jackknife estimate
- returns
the score of each training row as a vector of doubles
- lazy val scores: Seq[Vector[Double]]
- lazy val stdDevMean: Seq[Double]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- lazy val varObs: Seq[Double]
- def variance(meanPrediction: Vector[Double], modelPredictions: Seq[Seq[Double]], NibJ: DenseMatrix[Double], NibIJ: DenseMatrix[Double]): Seq[Double]
Compute the variance of a prediction as the average of bias corrected IJ and J variance estimates
Compute the variance of a prediction as the average of bias corrected IJ and J variance estimates
- meanPrediction
over the models
- modelPredictions
prediction of each model
- NibJ
sampling matrix for the jackknife-after-bootstrap estimate
- NibIJ
sampling matrix for the infinitesimal jackknife estimate
- returns
the estimated variance
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()