evaluate_class_gmmT_evaluate_class_gmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm (算子)

名称

evaluate_class_gmmT_evaluate_class_gmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm — 通过高斯混合模型评估特征向量。

签名

evaluate_class_gmm( : : GMMHandle, Features : ClassProb, Density, KSigmaProb)

Herror T_evaluate_class_gmm(const Htuple GMMHandle, const Htuple Features, Htuple* ClassProb, Htuple* Density, Htuple* KSigmaProb)

void EvaluateClassGmm(const HTuple& GMMHandle, const HTuple& Features, HTuple* ClassProb, HTuple* Density, HTuple* KSigmaProb)

HTuple HClassGmm::EvaluateClassGmm(const HTuple& Features, double* Density, double* KSigmaProb) const

static void HOperatorSet.EvaluateClassGmm(HTuple GMMHandle, HTuple features, out HTuple classProb, out HTuple density, out HTuple KSigmaProb)

HTuple HClassGmm.EvaluateClassGmm(HTuple features, out double density, out double KSigmaProb)

def evaluate_class_gmm(gmmhandle: HHandle, features: Sequence[float]) -> Tuple[Sequence[float], float, float]

描述

evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm computes three different probability values for a feature vector FeaturesFeaturesFeaturesFeaturesfeaturesfeatures with the Gaussian Mixture Model (GMM) GMMHandleGMMHandleGMMHandleGMMHandleGMMHandlegmmhandle

The a-posteriori probability of class i for the sample FeaturesFeaturesFeaturesFeaturesfeaturesfeatures(x) is computed as and returned for each class in ClassProbClassProbClassProbClassProbclassProbclass_prob. The formulas for the calculation of the center density function p(x|j) are described with create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmmcreate_class_gmm

The probability density of the feature vector is computed as a sum of the posterior class probabilities and is returned in DensityDensityDensityDensitydensitydensity. Here, Pr(i) are the prior classes probabilities as computed by train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmmDensityDensityDensityDensitydensitydensity can be used for novelty detection, i.e., to reject feature vectors that do not belong to any of the trained classes. However, since DensityDensityDensityDensitydensitydensity depends on the scaling of the feature vectors and since DensityDensityDensityDensitydensitydensity is a probability density, and consequently does not need to lie between 0 and 1, the novelty detection can typically be performed more easily with KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_prob (see below).

A k-sigma error ellipsoid is defined as a locus of points for which In the one dimensional case this is the interval . For any 1D Gaussian distribution, it is true that approximately 68% of the occurrences of the random variable are within this range for k=1, approximately 95% for k=2, approximately 99% for k=3, etc. This probability is called k-sigma probability and is denoted by P[k]. P[k] can be computed numerically for univariate as well as for multivariate Gaussian distributions, where it should be noted that for the same values of k, (here N and (N+1) denote dimensions). For Gaussian mixture models the k-sigma probability is computed as: where . are weighted with the class priors and then normalized. The maximum value of all classes is returned in KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_prob, such that

KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_prob can be used for novelty detection, as it indicates how well a feature vector fits into the distribution of the class it is assigned to. Typically, feature vectors having values below 0.0001 should be rejected. Note that the rejection threshold defined by the parameter RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold in classify_image_class_gmmclassify_image_class_gmmClassifyImageClassGmmClassifyImageClassGmmClassifyImageClassGmmclassify_image_class_gmm refers to the KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_prob values.

Before calling evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm, the GMM must be trained with train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmm

The position of the maximum value of ClassProbClassProbClassProbClassProbclassProbclass_prob is usually interpreted as the class of the feature vector and the corresponding value as the probability of the class. In this case, classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmmclassify_class_gmm should be used instead of evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm, because classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmmclassify_class_gmm directly returns the class and corresponding probability.

执行信息

参数

GMMHandleGMMHandleGMMHandleGMMHandleGMMHandlegmmhandle (输入控制)  class_gmm HClassGmm, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

GMM 句柄。

FeaturesFeaturesFeaturesFeaturesfeaturesfeatures (输入控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Feature vector.

ClassProbClassProbClassProbClassProbclassProbclass_prob (输出控制)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

A-posteriori probability of the classes.

DensityDensityDensityDensitydensitydensity (输出控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Probability density of the feature vector.

KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_prob (输出控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Normalized k-sigma-probability for the feature vector.

结果

如果参数有效,算子 evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。

可能的前趋

train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmm, read_class_gmmread_class_gmmReadClassGmmReadClassGmmReadClassGmmread_class_gmm

替代

classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmmclassify_class_gmm

另见

create_class_gmmcreate_class_gmmCreateClassGmmCreateClassGmmCreateClassGmmcreate_class_gmm

参考文献

Christopher M. Bishop: “Neural Networks for Pattern Recognition”; Oxford University Press, Oxford; 1995.
Mario A.T. Figueiredo: “Unsupervised Learning of Finite Mixture Models”; IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 24, No. 3; March 2002.

模块

基础