使用高斯混合模型的二元分类
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); '以上是关于使用高斯混合模型的二元分类的主要内容,如果未能解决你的问题,请参考以下文章