Question

I am so confused. I have tested a program for myself by following MATLAB code :

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);  

However, the result is wondering me because the feature_test must be classified in feature_train not feature_ubm. As you see below the probability of feature_ubm is more than feature_train!?! Can anyone explain for me what is the problem ? Is the problem related to gaussmip and gaussmix MATLAB functions ?

sum(lp_ubm)

ans =

-3.4108e+06

sum(lp_train)

ans =

-1.8658e+05

Was it helpful?

Solution

As you see below the probability of feature_ubm is more than feature_train!?!

You see exactly the opposite, despite the absolute value of ubm is big, you are considering negative numbers and

 sum(lp_train) > sum(lp_ubm)

hense

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

So your test chunk is correctly classified as train, not as ubm.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top