c

io.citrine.lolo.bags

MultiPredictionBaggedResult

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

Linear Supertypes
Serializable, Product, Equals, RegressionResult, BaggedResult[Double], PredictionResult[Double], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MultiPredictionBaggedResult
  2. Serializable
  3. Product
  4. Equals
  5. RegressionResult
  6. BaggedResult
  7. PredictionResult
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. 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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. lazy val Nib: Vector[Vector[Int]]
  5. lazy val NibIJMat: DenseMatrix[Double]
  6. val NibIn: Vector[Vector[Int]]
  7. lazy val NibJMat: DenseMatrix[Double]
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. val bias: Option[Seq[Double]]
  10. lazy val biasCorrection: Seq[Double]
  11. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  12. val disableBootstrap: Boolean
  13. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. lazy val expected: Seq[Double]
  15. lazy val expectedMatrix: Seq[Seq[Double]]
  16. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  17. 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
  18. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. def getExpected(): Seq[Double]

    Return the ensemble average

    Return the ensemble average

    returns

    expected value of each prediction

    Definition Classes
    MultiPredictionBaggedResultPredictionResult
  20. 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
    BaggedResultPredictionResult
  21. 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
    MultiPredictionBaggedResultPredictionResult
  22. 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
    MultiPredictionBaggedResultPredictionResult
  23. def getQuantile(quantile: Double, observational: Boolean = true): Option[Seq[Double]]
    Definition Classes
    RegressionResult
  24. 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
  25. 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
    MultiPredictionBaggedResultRegressionResult
  26. 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
    MultiPredictionBaggedResultRegressionResult
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
    MultiPredictionBaggedResultRegressionResultPredictionResult
  32. 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

  33. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  34. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  35. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  36. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  37. 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
    MultiPredictionBaggedResultBaggedResult
  38. val predictions: Seq[PredictionResult[Double]]
  39. def productElementNames: Iterator[String]
    Definition Classes
    Product
  40. val rescale: Double
  41. 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

  42. lazy val scores: Seq[Vector[Double]]
  43. lazy val stdDevMean: Seq[Double]
  44. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  45. lazy val varObs: Seq[Double]
  46. 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

  47. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  48. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  49. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from RegressionResult

Inherited from BaggedResult[Double]

Inherited from PredictionResult[Double]

Inherited from AnyRef

Inherited from Any

Ungrouped