object Probability extends Error
The Probability
object provides methods for operating on univariate and
bivariate probability distributions of discrete random variables 'X' and 'Y'.
A probability distribution is specified by its probability mass functions (pmf)
stored either as a "probability vector" for a univariate distribution or
a "probability matrix" for a bivariate distribution.
joint probability matrix: pxy(i, j) = P(X = x_i, Y = y_j) marginal probability vector: px(i) = P(X = x_i) conditional probability matrix: px_y(i, j) = P(X = x_i|Y = y_j)
In addition to computing joint, marginal and conditional probabilities, methods for computing entropy and mutual information are also provided. Entropy provides a measure of disorder or randomness. If there is little randomness, entropy will close to 0, while when randomness is high, entropy will be close to, e.g., 'log2 (px.dim)'. Mutual information provides a robust measure of dependency between random variables (contrast with correlation).
- See also
scalation.stat.StatVector
- Alphabetic
- By Inheritance
- Probability
- Error
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
centropy(px: VectoD, qx: VectoD): Double
Given probability vectors 'px' and 'qx', compute the "cross entropy".
Given probability vectors 'px' and 'qx', compute the "cross entropy".
- px
the first probability vector
- qx
the second probability vector (requires qx.dim >= px.dim)
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
condProbX_Y(pxy: MatriD, py_: VectoD = null): MatriD
Given a joint probability matrix 'pxy', compute the "conditional probability" for random variable 'X' given random variable 'Y', i.e, P(X = x_i|Y = y_j).
Given a joint probability matrix 'pxy', compute the "conditional probability" for random variable 'X' given random variable 'Y', i.e, P(X = x_i|Y = y_j).
- pxy
the joint probability matrix
- py_
the marginal probability vector for Y
-
def
condProbY_X(pxy: MatriD, px_: VectoD = null): MatriD
Given a joint probability matrix 'pxy', compute the "conditional probability" for random variable 'Y' given random variable 'X', i.e, P(Y = y_j|X = x_i).
Given a joint probability matrix 'pxy', compute the "conditional probability" for random variable 'Y' given random variable 'X', i.e, P(Y = y_j|X = x_i).
- pxy
the joint probability matrix
- px_
the marginal probability vector for X
-
def
count(x: VectoD, vl: Int, idx_: IndexedSeq[Int], cont: Boolean, thres: Double): Int
Count the total number of occurrence in vector 'x' of value 'vl', e.g., 'x' is column 2 (Humidity), 'vl' is 1 (High) matches 7 rows.
Count the total number of occurrence in vector 'x' of value 'vl', e.g., 'x' is column 2 (Humidity), 'vl' is 1 (High) matches 7 rows. This method works for vectors with integer or continuous values.
- x
the feature/column vector (e.g., column j of matrix)
- vl
one of the possible branch values for feature x (e.g., 1 (High))
- idx_
the index positions within x (if null, use all index positions)
- cont
whether feature/variable x is to be treated as continuous
- thres
the splitting threshold for features/variables treated as continuous
-
def
entropy(pxy: MatriD, px_y: MatriD): Double
Given a joint probability matrix 'pxy' and a conditional probability matrix 'py_x', compute the "conditional entropy" of random variable 'X' given random variable 'Y'.
Given a joint probability matrix 'pxy' and a conditional probability matrix 'py_x', compute the "conditional entropy" of random variable 'X' given random variable 'Y'.
- pxy
the joint probability matrix
- px_y
the conditional probability matrix
-
def
entropy(pxy: MatriD): Double
Given a joint probability matrix 'pxy', compute the "joint entropy" of random variables 'X' and 'Y'.
Given a joint probability matrix 'pxy', compute the "joint entropy" of random variables 'X' and 'Y'.
- pxy
the joint probability matrix
-
def
entropy(px: VectoD, b: Int): Double
Given a probability vector 'px', compute the " base-k entropy" of random variable 'X'.
Given a probability vector 'px', compute the " base-k entropy" of random variable 'X'.
- px
the probability vector
- b
the base for the logarithm
- See also
http://en.wikipedia.org/wiki/Entropy_%28information_theory%29
-
def
entropy(nu: VectoI): Double
Given a frequency vector 'nu', compute the "entropy" of random variable 'X'.
Given a frequency vector 'nu', compute the "entropy" of random variable 'X'.
- nu
the frequency vector
- See also
http://en.wikipedia.org/wiki/Entropy_%28information_theory%29
-
def
entropy(px: VectoD): Double
Given a probability vector 'px', compute the "entropy" of random variable 'X'.
Given a probability vector 'px', compute the "entropy" of random variable 'X'.
- px
the probability vector
- See also
http://en.wikipedia.org/wiki/Entropy_%28information_theory%29
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
flaw(method: String, message: String): Unit
- Definition Classes
- Error
-
def
frequency(x: VectoD, y: VectoI, k: Int, vl: Int, idx_: IndexedSeq[Int], cont: Boolean, thres: Double): (Double, VectoI)
Count the frequency of occurrence in vector 'x' of value 'vl' for each of 'y's classification values, e.g., 'x' is column 2 (Humidity), 'vl' is 1 (High)) and 'y' can be 0 (no) or 1 (yes).
Count the frequency of occurrence in vector 'x' of value 'vl' for each of 'y's classification values, e.g., 'x' is column 2 (Humidity), 'vl' is 1 (High)) and 'y' can be 0 (no) or 1 (yes). Also, determine the fraction of training cases where the feature has this value (e.g., fraction where Humidity is High = 7/14). This method works for vectors with integer or continuous values.
- x
the feature/column vector (e.g., column j of matrix)
- y
the response/classification vector
- k
the maximum value of y + 1
- vl
one of the possible branch values for feature x (e.g., 1 (High))
- idx_
the index positions within x (if null, use all index positions)
- cont
whether feature/variable x is to be treated as continuous
- thres
the splitting threshold for features/variables treated as continuous
-
def
frequency(x: VectoI, y: VectoI, k: Int, vl: Int, idx_: IndexedSeq[Int]): (Double, VectoI)
Count the frequency of occurrence in vector 'x' of value 'vl' for each of 'y's classification values, e.g., 'x' is column 2 (Humidity), 'vl' is 1 (High)) and 'y' can be 0 (no) or 1 (yes).
Count the frequency of occurrence in vector 'x' of value 'vl' for each of 'y's classification values, e.g., 'x' is column 2 (Humidity), 'vl' is 1 (High)) and 'y' can be 0 (no) or 1 (yes). Also, determine the fraction of training cases where the feature has this value (e.g., fraction where Humidity is High = 7/14).
- x
the feature/column vector (e.g., column j of matrix)
- y
the response/classification vector
- k
the maximum value of y + 1
- vl
one of the possible branch values for feature x (e.g., 1 (High))
- idx_
the index positions within x (if null, use all index positions)
-
def
frequency(y: VectoI, k: Int, idx_: IndexedSeq[Int] = null): VectoI
Count the frequency of occurrence of each distinct value within integer vector 'y', (e.g., result 'nu' = (5, 9) didn't play 5, played 9).
Count the frequency of occurrence of each distinct value within integer vector 'y', (e.g., result 'nu' = (5, 9) didn't play 5, played 9). Restriction: 'y' may not contain negative integer values.
- y
the feature/columne vector of integer values whose frequency counts are sought
- k
the maximum value of y + 1
- idx_
the index positions within y (if null, use all index positions)
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isProbability(pxy: MatriD): Boolean
Determine whether the matrix 'pxy' is a legitimate joint "probability matrix".
Determine whether the matrix 'pxy' is a legitimate joint "probability matrix". The elements of the matrix must be non-negative and add to one.
- pxy
the probability matrix
-
def
isProbability(px: VectoD): Boolean
Determine whether the vector 'px' is a legitimate "probability vector".
Determine whether the vector 'px' is a legitimate "probability vector". The elements of the vector must be non-negative and add to one.
- px
the probability vector
-
def
jointProbXY(px: VectoD, py: VectoD): MatriD
Given two independent random variables 'X' and 'Y', compute their "joint probability", which is the outer product of their probability vectors 'px' and 'py', i.e., P(X = x_i, Y = y_j).
-
def
logProb(px: VectoD): VectoD
Given a probability vector 'px', compute the "log-probability".
Given a probability vector 'px', compute the "log-probability". Requires each probability to be non-zero.
- px
the probability vector
-
def
margProbX(pxy: MatriD): VectoD
Given a joint probability matrix 'pxy', compute the "marginal probability" for random variable 'X', i.e, P(X = x_i).
Given a joint probability matrix 'pxy', compute the "marginal probability" for random variable 'X', i.e, P(X = x_i).
- pxy
the probability matrix
-
def
margProbY(pxy: MatriD): VectoD
Given a joint probability matrix 'pxy', compute the "marginal probability" for random variable 'Y', i.e, P(Y = y_j).
Given a joint probability matrix 'pxy', compute the "marginal probability" for random variable 'Y', i.e, P(Y = y_j).
- pxy
the probability matrix
-
def
muInfo(pxy: MatriD): Double
Given a joint probability matrix 'pxy', compute the mutual information for random variables 'X' and 'Y'.
Given a joint probability matrix 'pxy', compute the mutual information for random variables 'X' and 'Y'.
- pxy
the probability matrix
-
def
muInfo(pxy: MatriD, px: VectoD, py: VectoD): Double
Given a joint probability matrix 'pxy', compute the mutual information for random variables 'X' and 'Y'.
Given a joint probability matrix 'pxy', compute the mutual information for random variables 'X' and 'Y'.
- pxy
the probability matrix
- px
the marginal probability vector for X
- py
the marginal probability vector for Y
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nentropy(px: VectoD): Double
Given a probability vector 'px', compute the "normalized entropy" of random variable 'X'.
Given a probability vector 'px', compute the "normalized entropy" of random variable 'X'.
- px
the probability vector
- See also
http://en.wikipedia.org/wiki/Entropy_%28information_theory%29
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
rentropy(px: VectoD, qx: VectoD): Double
Given probability vectors 'px' and 'qx', compute the "relative entropy".
Given probability vectors 'px' and 'qx', compute the "relative entropy".
- px
the first probability vector
- qx
the second probability vector (requires qx.dim >= px.dim)
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toProbability(nu: MatriI, n: Int): MatriD
Given a frequency matrix, convert it to a probability matrix.
Given a frequency matrix, convert it to a probability matrix.
- nu
the frequency matrix
- n
the total number of instances/trials collected
-
def
toProbability(nu: MatriI): MatriD
Given a frequency matrix, convert it to a probability matrix.
Given a frequency matrix, convert it to a probability matrix.
- nu
the frequency matrix
-
def
toProbability(nu: VectoI, n: Int): VectoD
Given a frequency vector, convert it to a probability vector.
Given a frequency vector, convert it to a probability vector.
- nu
the frequency vector
- n
the total number of instances/trials collected
-
def
toProbability(nu: VectoI): VectoD
Given a frequency vector, convert it to a probability vector.
Given a frequency vector, convert it to a probability vector.
- nu
the frequency vector
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated