class InternalModelNode[T <: PredictionResult[Any]] extends ModelNode[T]
Internal node in the decision tree
- T
type of the output
- Alphabetic
- By Inheritance
- InternalModelNode
- ModelNode
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new InternalModelNode(split: Split, left: ModelNode[T], right: ModelNode[T], outputDimension: Int, trainingWeight: Double)
- split
to decide which branch to take
- left
branch node
- right
branch node
- outputDimension
dimension of model output, used for Shapley computation 1 for single-task regression, or equal to the number of classification categories.
- trainingWeight
weight of training data in subtree (i.e. size of unweighted training set)
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getTrainingWeight(): Double
Weight of training data in subtree, specifically the number of data for unweighted training sets
Weight of training data in subtree, specifically the number of data for unweighted training sets
- returns
total weight of training weight in subtree
- Definition Classes
- InternalModelNode → ModelNode
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- 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 shapley(input: Vector[AnyVal], omitFeatures: Set[Int] = Set()): Option[DenseMatrix[Double]]
Compute Shapley feature attributions for a given input in this node's subtree
Compute Shapley feature attributions for a given input in this node's subtree
- input
for which to compute feature attributions.
- returns
array of vector-valued attributions for each feature One Vector[Double] per feature, each of length equal to the output dimension.
- Definition Classes
- InternalModelNode → ModelNode
- def shapleyRecurse(input: Vector[AnyVal], omitFeatures: Set[Int], featureWeights: Map[Int, FeatureWeightFactor]): DenseMatrix[Double]
On the way down: append this node to the set of features that have been encountered in this path through the decision tree unless this feature is in the omitted features list.
On the way down: append this node to the set of features that have been encountered in this path through the decision tree unless this feature is in the omitted features list.
On the way up: sum the contributions from the two children of this node. If the feature that this node splits on is in the omitted features list, then multiply the contributions by the share of the training data that went to each child in lieu of including the feature on the way down.
- input
for which to compute feature attributions.
- featureWeights
Map from feature index to FeatureWeightFactor, which stores the weight of the child of the split when the feature is known vs unknown
- returns
matrix of attributions for each feature and output One row per feature, each of length equal to the output dimension. The output dimension is 1 for single-task regression, or equal to the number of classification categories.
- Definition Classes
- InternalModelNode → ModelNode
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def transform(input: Vector[AnyVal]): (T, TreeMeta)
Just propagate the prediction call through the appropriate child
Just propagate the prediction call through the appropriate child
- input
to predict for
- returns
prediction
- Definition Classes
- InternalModelNode → ModelNode
- 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()