Closed AlCap23 closed 1 year ago
The base functionality should be relatively stable now ( give or take ).
Using the InternalDataDrivenProblem
all preprocessing steps are handled within CommonSolve.init
.
All problems are lifted
with a basis, within SymbolicRegression this can be used to precompute features.
Normalisation and Data Split is sourced out to StatsBase and MLUtils.
Preprocessing of the fit targets can be handled before the split via get_fit_targets
, which allows to dispatch for Koopman Generators
The structural information about control and implicit variables is stored in the InternalDataDrivenProblem
and can be used from Koopman and ImplicitSparseRegression algorithms
The Basis
now has a dedicated Struct for their generated functions , DataDrivenFunction
, which allows for better behaviour and no anonymous functions
The Basis
know about controls and implicits -> dispatch pattern
The Dataset bug has been fixed
Parameters and variables get now created in accordance to MTK
The DataDrivenResult
extends StatsBase functionality for AIC, BIC etc.
The main API solve(problem, [basis], alg; options)
is relatively untouched. I need to convert possible kwargs to DataDrivenCommonOptions
, but this is it.
These are hard, but necessary changes and probably a step in the right direction ( hence v1.0 from here on )
Note All invalidations come from Deps here. I might descent into madness to investigate this further
Strange note:
When running the pendulum tests locally, I get the expected result from Pkg.test() iff I include the info print. If not, the test fail. This seems super strange. If I include it, everything works out. Maybe I should wrap everything inside a safetestset. Lets see what the CI holds here.
Edit: I relaxed it a little. Might be the RNG.
Additionally, Implicit now works reliable and rejects results without implicit variable dependencies. This discards results like 1 = sin^2 + cos^2.
LGTM. Will merge in approx. 8 hrs.
Supersedes #355 and probably #363 .
Add subpackages for
~~ OccamNet - This will be an individual PR given that I adapt for Lux.jl~~