GMModel - 如何使用它来预测标签的数据?

时间:2015-12-06 19:45:54

标签: matlab machine-learning statistics gaussian

我使用fitgmdist创建了一个GMModel。我们的想法是在数据上生成两个高斯分布,并用它来预测它们的标签。如何确定未来的数据点是否适合其中一个分布?我误解了GMModel的目的吗?

clear;
load C:\Users\Daniel\Downloads\data1 data;


% Mixed Gaussian
GMModel = fitgmdist(data(:, 1:4),2)

可生产

GMModel = 

Gaussian mixture distribution with 2 components in 4 dimensions
Component 1:
Mixing proportion: 0.509709
Mean:    2.3254   -2.5373    3.9288    0.4863

Component 2:
Mixing proportion: 0.490291
Mean:    2.5161   -2.6390    0.8930    0.4833

编辑:

clear;
load C:\Users\Daniel\Downloads\data1 data;



% Mixed Gaussian
GMModel = fitgmdist(data(:, 1:4),2);


P = posterior(GMModel, data(:, 1:4));
X = round(P)

blah = X(:, 1)
dah = data(:, 5)

Y = max(mean(blah == dah), mean(~blah == dah))

1 个答案:

答案 0 :(得分:1)

我不明白为什么你绕过后验值。这是我在拟合混合模型后会做的事情。

P = posterior(GMModel, data(:, 1:4)); [~,Y] = max(P,[],2);

现在Y包含标签,该标签是数据所属的高斯的最大值(MAP)。重要的是在评估分类错误之前对齐标签。由于可能发生重新编号,即,真实中的高斯分量1可能是所产生的聚类中的分量2,等等。这可能就是为什么除了其他微妙的问题之外,你的准确度从51%精度到95%不等。