我在openCV中使用EM模型,并且遇到了来自EM :: train的对数似然值输出的困难。我在单独(但相关)的数据上训练EM模型,并且对数似然值与数据的绝对值相关联,即当训练值大于100时,EM :: train返回强正对数似然值,当返回的训练值小于一个大的负值,我的理解是这对于EM的工作方式没有任何意义。 训练模型的代码部分如下,以防我犯了任何愚蠢的错误(我对opencv很新)std :: cout确认当训练值大于100且小于1时,值大于1 -1当训练值小于1时。
我的问题类似于这篇文章: OpenCV: Output of the predict function of Expectation Maximization 除非没有实现类似DPGMM之类的东西,否则无法使用对数似然。
非常感谢,
萨姆
{
double logs =0;
cv::EM model (g,1,parameters);
model.train(sample_input.col(i),log_likelihoods);
for(int j = 0; j < number_selected; j++ )
{
logs += log_likelihoods.at<double>(j);
std::cout << log_likelihoods.at<double>(j) <<' ';
}
mean_of_logs[i] += 0.1*logs;
reduced_models.push_back(model);
}