classify_class_gmmT_classify_class_gmmClassifyClassGmmClassifyClassGmmclassify_class_gmm分类类高斯混合模型(算子)

名称

classify_class_gmmT_classify_class_gmmClassifyClassGmmClassifyClassGmmclassify_class_gmm — 通过高斯混合模型计算特征向量的类。

签名

classify_class_gmm( : : GMMHandle, Features, Num : ClassID, ClassProb, Density, KSigmaProb)

Herror T_classify_class_gmm(const Htuple GMMHandle, const Htuple Features, const Htuple Num, Htuple* ClassID, Htuple* ClassProb, Htuple* Density, Htuple* KSigmaProb)

void ClassifyClassGmm(const HTuple& GMMHandle, const HTuple& Features, const HTuple& Num, HTuple* ClassID, HTuple* ClassProb, HTuple* Density, HTuple* KSigmaProb)

HTuple HClassGmm::ClassifyClassGmm(const HTuple& Features, Hlong Num, HTuple* ClassProb, HTuple* Density, HTuple* KSigmaProb) const

static void HOperatorSet.ClassifyClassGmm(HTuple GMMHandle, HTuple features, HTuple num, out HTuple classID, out HTuple classProb, out HTuple density, out HTuple KSigmaProb)

HTuple HClassGmm.ClassifyClassGmm(HTuple features, int num, out HTuple classProb, out HTuple density, out HTuple KSigmaProb)

def classify_class_gmm(gmmhandle: HHandle, features: Sequence[float], num: int) -> Tuple[Sequence[int], Sequence[float], Sequence[float], Sequence[float]]

def classify_class_gmm_s(gmmhandle: HHandle, features: Sequence[float], num: int) -> Tuple[int, Sequence[float], Sequence[float], Sequence[float]]

描述

classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmmclassify_class_gmm 使用高斯混合模型(GMM)GMMHandleGMMHandleGMMHandleGMMHandleGMMHandlegmmhandle 计算特征向量 FeaturesFeaturesFeaturesFeaturesfeaturesfeatures 的最佳 NumNumNumNumnumnum 个类别,并将类别结果存储在 ClassIDClassIDClassIDClassIDclassIDclass_id 中,对应类别的概率存储在 ClassProbClassProbClassProbClassProbclassProbclass_prob 中。调用 classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmmclassify_class_gmm 前,必须通过 train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmm 进行训练。

classify_class_gmmclassify_class_gmmClassifyClassGmmClassifyClassGmmClassifyClassGmmclassify_class_gmm 对应于对 evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm 的调用,并额外包含提取最佳 NumNumNumNumnumnum 个类别的步骤。正如 evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm 所描述的,GMM 的输出值可解释为各类别出现的概率。然而在此处,后验概率 ClassProbClassProbClassProbClassProbclassProbclass_prob 需进一步归一化处理:ClassProbClassProbClassProbClassProbclassProbclass_prob = p(i|x)/p(x),其中 p(i|x) 和 p(x) 由 evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm 指定。多数情况下,仅需设置 NumNumNumNumnumnum = 1 即可判断最佳类别的概率是否足够高。在某些应用中,考虑次优类别(NumNumNumNumnumnum = 2)可能具有实际意义,尤其当预期类别间存在显著重叠时。

DensityDensityDensityDensitydensitydensityKSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_prob 通过 evaluate_class_gmmevaluate_class_gmmEvaluateClassGmmEvaluateClassGmmEvaluateClassGmmevaluate_class_gmm 进行解释。

执行信息

参数

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

GMM 句柄。

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

特征向量。

NumNumNumNumnumnum (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

需确定的最佳类别数量。

默认值: 1

建议值: 1, 2, 3, 4, 5

ClassIDClassIDClassIDClassIDclassIDclass_id (输出控制)  integer(-array) HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

使用 GMM 对特征向量进行分类的结果。

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

类别的后验概率。

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

特征向量的概率密度。

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

特征向量的归一化 k-sigma 概率。

结果

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

可能的前趋

train_class_gmmtrain_class_gmmTrainClassGmmTrainClassGmmTrainClassGmmtrain_class_gmm, read_class_gmmread_class_gmmReadClassGmmReadClassGmmReadClassGmmread_class_gmm

替代

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

模块

基础