我使用 fitgmdist 制作了一个 GMModel。这个想法是在数据上产生两个高斯分布,并用它来预测它们的标签。我如何确定 future 的数据点是否适合这些分布之一?我是否误解了 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))
最佳答案
我不明白为什么你要舍入后验值。这是拟合混合模型后我要做的事情。
P = 后验(GMModel, 数据(:, 1:4));
[~,Y] = max(P,[],2);
现在 Y 包含标签,该标签是数据根据最大后验 (MAP) 属于哪个高斯分布的索引。重要的是在评估分类错误之前对齐标签。由于可能会发生重新编号,即真实中的高斯分量 1 可能是生成的聚类中的分量 2,依此类推。除了其他微妙的问题之外,可能这就是为什么您的准确度从 51% 到 95% 不等。
关于matlab - GMModel - 如何使用它来预测标签的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121836/