classify_class_gmmT_classify_class_gmmClassifyClassGmmClassifyClassGmmclassify_class_gmm分类类高斯混合模型(算子)
名称
classify_class_gmmT_classify_class_gmmClassifyClassGmmClassifyClassGmmclassify_class_gmm — 通过高斯混合模型计算特征向量的类。
签名
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)可能具有实际意义,尤其当预期类别间存在显著重叠时。
DensityDensityDensityDensitydensitydensity 和 KSigmaProbKSigmaProbKSigmaProbKSigmaProbKSigmaProbksigma_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.
模块
基础