-
Notifications
You must be signed in to change notification settings - Fork 17
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
Vacancy: Request for new collaborators #323
Comments
I wouldn't mind doing some light maintenance such as keeping (conda) releases up-to-date etc. Also, it looks like the test arent passing, we should probably have a look at fixing those. |
I can do code reviews, those don't take me too much time in general. |
As a second note, I can't review my own PRs :) |
This is an awesome project. From what I can see it is still suffering from lack of contributors ? |
Hi Maxime, Unfortunately, yes. I for one would be very happy with your involvement. Although I have time for code review, I don't really have the time to do a lot of programming myself. Is there any aspect that interests you in particular? Any feature you're missing? For example, the tests could use some love (read overhaul); there's a strange separation between normal and ODE models; there's probably a few new minimizers in Scipy that could/should be wrapped; I'd like Objectives to be symbolic rather than hardcoded; and there's probably a couple open issues that would improve the user experience... Peter |
One thing that was slightly painful was that I couldn't find a nice way to interface with sympy's matrices : something along the line of {Y : A * X + B} (but maybe I missed it). Is this more or less what the "Indexed Variables" is about ? I'll take a look at some of your suggestions, which feel like a good way to familiarize myself with the codebase. |
@tBuLi will know about those specific trains of thought :) And yes, I do expect langrange multipliers to improve performance for constrained fits, since constrained optimizations are hard. |
My main issue is that I have a lot of difficulty understanding what's going on in symfit's internals, party because of (dark) magic and project structure, and party because there is a requirement for models to be analytical. I think relaxing that constraint (ie determination of jacobians analytically for models) could help a lot in simplifying things, using numerical approaches by default and only solving analytically in special cases. For example, I wanted to add expectation-maximization likelihood fitting to symfit, because I needed it for a project, but it was easier for me to start from scratch rather then plug into existing symfit infrastructure. I have now implemented this in slimfit 2.0. The feature set there is way less extensive, and the expectation-maximization is a bit of a mess, but there is a gain in flexibility as symbols can be any shape and thus you can use For example, you can define models like this: from slimfit.operations import MatMul
from sympy import symbols, Matrix
from slimfit.np_funcs import logaddexp2
import numpy as np
x, a, b, c = symbols('x a b c')
m = Matrix([[
b*c,
2*b**c,
5,
]])
expr = MatMul(logaddexp2(a, m), x)[:, ::5]
expr
>>> MatMul(np.logaddexp2(a, Matrix([[b*c, 2*b**c, 5]]), ), x)[:, ::5] You can the immediately call this kind of expression if you give it data with compatible shapes: data = {'x': np.random.rand(3, 100)}
params = {'a': np.random.rand(1, 3), 'b': 3., 'c': 2.}
expr(**data, **params).shape
>>>(1, 20) Fitting also works, if you define parameters with these shapes, but its not very clever, there is no inspection the model and then selecting the appropriate solver. Everything just goes into My aim with this project is mainly to satisfy my own selfish fitting needs. But if it can help anyone else or improve |
I think it would be good for this project to invite some extra hands on deck. Both @pckroon's and my own agenda or filling up with more and more with other responsibilities, meaning we have less time to actively manage this project.
But I wouldn't want it to stop just because of that. So we are hereby inviting other volunteers to become a collaborator to this project. This can be anything from making PRs to open issues, or even people to help merge PR's etc.
Because github does not allow PM's, let me know if you would like to help by replying to this issue.
The text was updated successfully, but these errors were encountered: