Machine learning GMM中的负概率
我很困惑。我通过以下MATLAB代码为自己测试了一个程序:Machine learning GMM中的负概率,machine-learning,pattern-matching,speech-recognition,gaussian,speaker,Machine Learning,Pattern Matching,Speech Recognition,Gaussian,Speaker,我很困惑。我通过以下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 7
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);
然而,结果让我感到奇怪,因为特性测试必须分类在特性序列中,而不是特性ubm中。正如您在下面看到的,特征ubm的概率大于特征列车!?!
谁能给我解释一下是什么问题吗?
问题是否与gaussmip和gaussmix MATLAB函数有关
sum(lp_ubm)
ans=
-3.4108e+06
总和(lp_列车)
ans=
-1.8658e+05
正如您在下面看到的,特征ubm的概率大于特征列车
你看到的恰恰相反,尽管ubm的绝对值很大,但你考虑的是负数和
sum(lp_train) > sum(lp_ubm)
母鸡
因此,您的测试块被正确分类为train,而不是ubm。感谢您的回复。即使我把特征列而不是特征列精确地放在测试中,总和(lp列)变成-10.1083!?!为什么?-10与-1e+5相比是非常好的对数概率。它非常接近于最佳可能对数概率0,对应于原始概率1。所以它可以检测到精确的匹配。感谢您的帮助和指导。
P(test|train) > P(test|ubm)