2

我在 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 除了没有实现像 aa 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);
}
4

0 回答 0