GMM中的负概率

我很困惑。我按照以下MATLAB代码测试了一个程序:

feature_train=[1 1 2 1.2 1 1 700 709 708 699 678]; No_of_Clusters = 2;No_of_Iterations = 10;[m,v,w]=gaussmix(feature_train,[],No_of_Iterations,No_of_Clusters);feature_ubm=[1000 1001 1002 1002 1000 1060 70 79 78 99 78 23 32 33 23 22 30]; No_of_Clusters = 3;No_of_Iterations = 10;[mubm,vubm,wubm]=gaussmix(feature_ubm,[],No_of_Iterations,No_of_Clusters);feature_test=[2 2 2.2 3 1 600 650 750 800 658];[lp_train,rp,kh,kp]=gaussmixp(feature_test,m,v,w);  [lp_ubm,rp,kh,kp]=gaussmixp(feature_test,mubm,vubm,wubm);  

然而,结果让我感到困惑,因为feature_test必须被分类到feature_train而不是feature_ubm中。正如你所看到的,feature_ubm的概率竟然比feature_train高!?!谁能帮我解释一下这是什么问题?这个问题是否与MATLAB中的gaussmip和gaussmix函数有关?

sum(lp_ubm)

ans =

-3.4108e+06

sum(lp_train)

ans =

-1.8658e+05


回答:

正如你所看到的,feature_ubm的概率竟然比feature_train高!?!

你看到的恰恰相反,尽管ubm的绝对值很大,但你考虑的是负数,并且

 sum(lp_train) > sum(lp_ubm)

因此

 P(test|train) > P(test|ubm)

所以你的测试数据被正确地分类为train,而不是ubm。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注