This repository was archived by the owner on Apr 29, 2025. It is now read-only.
Open
Conversation
Begins solution for #100 with an initial solution. Also adds various supporting features to ProfileProperty and PropertyDict.
Changes to the bayes testing in order to accomidate the change of the fitting to interpolate outside of the fitting process.
This includes a test for a new "feature_domain" property. This property is used to enable the testing of interpolated values prior to attempting to perform a fit.
This is done if errors are available. In either case weighting has a two norm of 1. Also updates modelling to not depend on properties having a length to use scalar properties.
Also allow PropertyDict.subset to take a single name since this is a potentially common occurance and if not handled correctly can provide strange results. Options were to throw an error or to correctly implement it.
This allows users to configure or adjust parameters prior to performing the fits. Adjusts the tests to match.
Also removed "unusable" guess function which would not work with the composite modelling used during fitting.
Owner
|
@ConnorPigg please let me know when you think this PR is ready to be reviewed and I'll take a look |
Also fixed the probability when there is only one depth.
Also addresses additional documenation changes for PR.
Also closes #102 by allowing global minimization method choice.
This closes #102 by providing tests for using it.
Previously rewrote tests to exclude interpolation so undoing that change. Also, include testing the centering aspect of the model.
However no testing has been completed and the "legacy" multiproperty fitting has not been removed. Initial use with `fitting_both.py` script indicates successful fitting.
Replaces references to the MultiPropertyModel class for the new model creation. Adjustments to the test to reflect the change in model creation interface. Tests for acceptance of general models and tests for parameter naming are still to be completed.
This goes beyond the integration tests already present to test specific expected behavior for the added general modelling.
This is to reflect that functions should not be directly passed through to this parameter. It is expected that functions are first converted to lmfit.Model classes or instances.
When Model instances are passed instead of classes, the object was not properly handled which lead to each "use" of that model template to overwrite the previous uses.
Attempt to be more "pythonic" by using try accept. Avoids using `isinstance` to check types. Generalizes accepted types to single object or iterables not just lists.
PropertyDict no longer expects `None` for names to resturn self. Instead, expect user to pass self.keys() for a complete subset.
Adds optional filtering when taking a subset of PropertyDict. Adds periods to documentation. Change calls of `super` to use no arguments. Attempt to optimize property interpolation by only creating the interpolator once instead of on each call.
This leads to reliability that failed tests are not due to just randomness. This raises the issue that the occasional failures from the randomness should be classified, fixed, and have dedicated tests. Hypothesis tests may be useful for this.
Allow user settings for interpolators to persist through property data modification by changing how interpolators are created. These settings are now saved into an attribute of the property.
This is to enforce structure probabilities sum to 1. Also rewrote global minimization testing to actually make sense.
Restructure modelling to focus on linear "mx + b" models. Change to using proportions that are converted to probabilies for interpretation. Remove tabulated only modeling and instead allow choice of tabulated modelling in the restructured modelling options.
Updates were to improve clarity.
This involves being more verbose and adding tests for these parameter hints. To simplify this, this changes the tabulated model to use the same parameter names to simplify the logic to hard coded parameter names.
The `use_tabulated` was not being passed down from create to depth to the building block functions.
The difference places restrictions on the composite to not allow simultaneous centering and interpolation to different qvalues. The restriction is in place because from the experimental feature vector it is difficult to determine what section should be used as the new qvalues. Therefore require user to interpolate before and simply allow centering in composite.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #100, Closes #103, and closes #99 by refactoring fitting to allow fitting to a tree that contains multiple properties.