8000 sign error when using fmin_cobyla optimizer for gaussian processes · Issue #3180 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content
sign error when using fmin_cobyla optimizer for gaussian processes #3180
Closed
@filthysocks

Description

@filthysocks

Hello,

the gaussian process are by default fitted using the fmin_cobyal optimizer. The optimizer is started from various random inital conditions to avoid local extrema. The problem is, the worst of those extrema is chosen in the end.

optimal_minus_rlf_value, optimal_par = self.reduced_likelihood_function(theta=optimal_theta)
# sign error 
# reduced_likelihood_function return the likelihood
# not the negative likelihood
optimal_rlf_value = - optimal_minus_rlf_value(theta=optimal_theta)

The reason it did not show up in the unit test is, that they been to easy. Even the worst local maximum was good enough to pass the test. I added a test which is more "tough" and manage to prove the current solution wrong.
Here is the solution to the unit test plotted with the current implementation:
gp_org
and fixed:
gp_with_fix

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0