我在matlab中使用GMM进行数据分类。
问题与此问题类似:probability with Guassian mixture Model
我有以下数据集:
trainData1; % dataset for class 1
trainData2; % dataset for class 2
testData; % test dataset
获取GMM模型:
GMM_class1=gmdistribution.fit(trainData1,12,'CovType','diagonal');
GMM_class2=gmdistribution.fit(trainData2,12,'CovType','diagonal');
获取每个类的测试数据集的log-likeihood:
[posteriorTest_Train1,nlogL_1]=posterior(GMM_class1,testData);
[posteriorTest_Train2,nlogL_2]=posterior(GMM_class2,testData);
要分类,我这样做:
if nlogL_1 < nlogL_2
% testData belongs to class 1
else
% testData belongs to class 2
end
拜托,我想知道我是否正确地做了。
问候。
答案 0 :(得分:0)
这不是我理解的gmm。 如果您打算对项目是属于1级还是2级进行分类, 然后我会做以下几点。
GMM_class = gmdistribution.fit(trainData,2,'CovType','diagonal');
posteriorTest = posterior(GMM_class,testData);
然后你可以执行if语句来判断测试数据是属于1类还是2类。