-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow user to toggle between noise-free and noisy observations #9
Comments
Additionally, a nice feature along these lines would be to implement (6) pivoting to stabilize Cholesky decomposition and automatically omit data points that are too close to each other. I have a simple Python implementation that does this, and it works very nicely. There is a LAPACK version of the Cholesky algorithm with pivoting (dpstrf), but it is more recent and thus is not supported in Scipy at the moment. So this will involve writing the glue code that is needed to use the LAPACK routine and ensuring that we have an appropriate LAPACK version. |
Better handling of the noise term has been added on a feature branch and will be merged into devel -- the code exposes an option to set the jitter parameter to either zero (fit the data exactly), a fixed noise level (the case where the observations have a known uncertainty level), or the adaptive approach implemented previously. This feature is needed to do the MICE procedure for experimental design, as the procedure adds a fixed noise level to smooth the observations to stabilize the MICE criterion. |
Pivoted Cholesky decomposition now implemented with tests on a topic branch. Should be able to merge into devel once I can look it over again. |
This has been mostly addressed in PR #81. Still need to work on the pivoted Cholesky factorization. |
At present, the code assumes the inputs/targets are noise-free, and attempts to exactly interpolate between them. If this cannot be done due to a nearly singular covariance matrix, the method adds an increasing noise term to the diagonal successively until the matrix can be inverted. One improvement to this would be to allow the user to choose between several options: (1) noise-free, do not add noise if matrix is singular and raise an exception, (2) noise-free, add noise only as needed to stabilize the matrix inversion [this is the current behavior], (3) noise-free but let noise be a hyperparameter to be optimized [likely to be similar to the current behavior but included as an option to give user more control], (4) noisy observations with a single noise level specified by the user and not changed during hyperparameter optimization, and (5) noisy observations with the noise value potentially different for each target value but still not changed during hyperparameter optimization.
The text was updated successfully, but these errors were encountered: