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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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