使用高斯混合模型的二元分类

Posted

技术标签:

【中文标题】使用高斯混合模型的二元分类【英文标题】:Binary Classification by using Gaussian Mixture Model 【发布时间】:2013-03-14 04:38:38 【问题描述】:

我想为决策边界实现 T=Log( f ( x | client) ) - Log( f ( x | impostor) )。我的训练和测试特征是 20*12。 我已经应用了voicebox matlab 工具箱。我编写了以下 MATLAB 代码:

if max(lp_client)- max(lp_impostor) >0.35
   disp('accept');
else
   disp('reject');
end

我应该使用对数概率的平均值还是对数概率的最大值?

【问题讨论】:

问题标题与内容相比过于宽泛。 【参考方案1】:

由于估计的概率性质,您应该使用 lp_client 的总和。如果您有一系列独立事件(此模型中通常假设特征独立),则其概率是每个事件的概率的乘积:

P (Seq | X) = P(feat1 | x) * P(feat2 | X) ...

或者在日志域中

logP (Seq | X) = logP (feat1 | x) + logP(feat2 | X)

其实

logP (x | client) = sum (lp_client)

logP(x | impostor) = sum (lp_impostor)

【讨论】:

感谢您的回复,如果我想用 1024 混合构建通用背景模型 (UBM),我是否应该像下面的代码一样在 1 个 GMM 中通过所有功能训练 GMM? 'UBM=[training_features1;...;training_features1024]' '[m_ubm,v_ubm,w_ubm]=gaussmix(UBM,[],No_of_Iterations,No_of_Clusters); '

以上是关于使用高斯混合模型的二元分类的主要内容,如果未能解决你的问题,请参考以下文章

使用高斯混合模型和 scikit learn 进行多类分类

如何用高斯混合模型 GMM 做聚类

高斯混合模型

EM-高斯混合模型

EM-高斯混合模型

如何使用高斯混合模型按波长分割图像?