我使用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))
答案 0 :(得分:1)
我不明白为什么你绕过后验值。这是我在拟合混合模型后会做的事情。
P = posterior(GMModel, data(:, 1:4));
[~,Y] = max(P,[],2);
现在Y包含标签,该标签是数据所属的高斯的最大值(MAP)。重要的是在评估分类错误之前对齐标签。由于可能发生重新编号,即,真实中的高斯分量1可能是所产生的聚类中的分量2,等等。这可能就是为什么除了其他微妙的问题之外,你的准确度从51%精度到95%不等。