gpt4 book ai didi

matlab - 在 Matlab 中用于分类的 gmdistribution

转载 作者:行者123 更新时间:2023-12-01 13:26:41 26 4
gpt4 key购买 nike

假设我有两个使用

获得的 gmdistibution 模型
modeldata1=gmdistribution.fit(data1,1);
modeldata2=gmdistribution.fit(data2,1);

现在我有一个未知的“数据”观察,我想看看它属于 data1 还是 data2

根据我对这些函数的理解,使用 posterior、cluster 或 pdf 命令的 nlogn 输出不是一个好的衡量标准,因为我正在将“数据”与两个不同的分布进行比较。

我应该使用什么度量或输出来查找什么是 p(data|modeldata1) 和 p(data|modeldata2)

非常感谢,

最佳答案

如果我没理解错的话,您想将一个新的未知数据点分配给第 1 类或第 2 类,并使用 gmdistribution.fit 找到的每个类的描述符(在本例中为均值向量和协方差矩阵)。

看到这个新的数据点,我们称它为 x,你应该问问自己什么是p(modeldata1 | x) 和 p(modeldata2 | x) 以及其中任何一个是您应该将 x 分配给的最高值。

那么如何找到这些呢?您只需应用贝叶斯规则并选择其中最大的一个:

p(modeldata1 | x) = p(x|modeldata1)p(modeldata1)/p(x)
p(modeldata1 | x) = p(x|modeldata2)p(modeldata2)/p(x)

这里不需要计算 p(x),因为它在每个方程中都是相同的。

所以,现在你通过每个类的训练点数(或使用一些给定的信息)估计先验 p(modeldata1) 和 p(modeldata2),然后计算

p(x|modeldata1)=1/((2pi)^d/2 * sqrt(det(Sigma1)))*exp(0.5*(x-mu1)/Sigma1*(x-mu1))

其中 d 是数据的维度,Sigma 是协方差矩阵,mu 是均值向量。这就是您要求的 p(data|modeldata1)。 (请记住在进行分类时还要使用 p(modeldata1) 和 p(modeldata2))。

我知道这有点不清楚,但希望它能帮助您朝着正确的方向迈出一步。

编辑:就我个人而言,我找到了如下所示的可视化(摘自 Theodoridis 和 Koutroumbas 的模式识别)。这里有两个具有一些先验和不同协方差矩阵的高斯混合。蓝色区域是您选择一个类别的地方,而灰色区域是您选择另一个类别的地方。 enter image description here

关于matlab - 在 Matlab 中用于分类的 gmdistribution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9951156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com