-
Notifications
You must be signed in to change notification settings - Fork 35
pymultifit
presubmission
#221
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
Comments
Thanks for submitting your package! It's a great tool, but at this point, I wonder if it is within the scope of pyOpenSci. You have written that
You have stated that your package has better usability and performance; I've checked your package's documentation (https://pymultifit.readthedocs.io/index.html#), and you don't provide examples of how to use your package - thus, I wasn't able to compare functionalities. Could you prepare some comparisons of overlapping functionalities as the code examples? It could be a part of your |
Thank you for reaching out. I apologize for my oversight of incomplete documentation before presumission. Currently the documentation of the package is in development in the |
In this situation, please let me know when the docs build is ready! |
I will, and once again, thank you for your time and consideration @SimonMolinsky |
Thank you for the wait; the documentation is now up with API references, tutorials, and benchmarks for speed and accuracy with |
Thanks for the updates. Give me a few days, and I will come back with the final decision! |
That'd be great. |
@syedalimohsinbukhari could you check your documentation on Read the Docs? I got the 404 error when using this link: https://pymultifit.readthedocs.com/latest/ |
The documentation is up and working on https://pymultifit.readthedocs.io/latest, not on the .com version. I don't know how I messed up io with com, but I'll correct it rightaway EDIT The link is now corrected in the README.md file |
Hi! I've checked the benchmarks and tutorials, and a few comments from me:
Change the placeholder named
I have the last two questions:
|
Hi, Thanks for taking the time to check it out. I will surely include the summary on the benchmarking pages and remove that placeholder mark.
From my own understanding, the reason for the decrease in computational time from My reasoning for this answer comes from slower/comparable computation times with Beta/ArcSine/SkewNormal distributions that required extensive checks/calling other distributions in order to match the values by Scipy that incurred heavy overheads. For example, BetaDistribution -> beta_pdf_ uses various masks for different values of alpha and beta parameters Also, SkewNormalDistribution -> skew_normal_pdf_ internally calls gaussian_pdf_ and gaussian_cdf_ functions
Yes, I do. |
Considering your input, your package has the potential to be a great tool in the You might submit I'm still slightly unsure about the overlap between your package and Again, feel free to submit your package! I will close this thread when you submit the package. Have a nice day! |
Thank you for getting back, and thank you for your assessment. I will submit the package, but I just want to be clear as to what you mean by the overlap between |
I meant the capabilities (not functionalities and their API implementation). |
Submitting Author: Syed Ali Mohsin Bukhari (@syedalimohsinbukhari)
Package Name:
pymultifit
One-Line Description of Package: A python library for fitting data with multiple models.
Repository Link (if existing): https://github.com/syedalimohsinbukhari/pyMultiFit
EiC: Szymon Moliński (@SimonMolinsky)
Code of Conduct & Commitment to Maintain Package
Description
pymultifit
is built primarily to solve one problem, to fit multiple models (and mixture models) to a given data. Be it multiple Gaussians, multiple Laplacians, or a mixture of such models, this package aims to deal with multi-model data fitting. The package also provides easy-to-useBaseDistribution
andBaseFitter
classes for respective user-defined functions.Community Partnerships
We partner with communities to support peer review with an additional layer of
checks that satisfy community requirements. If your package fits into an
existing community please check below:
Scope
Please indicate which category or categories this package falls under:
Domain Specific
This library falls under the "data processing/munging" category as it takes the given data and tries to fit the given model(s) to the data via minimization processes. It also allows the user to extract the parameters for further analysis of the data fitters via helpful functions. Visualization is done internally for the fitted model with options of separable views on total data fitting and individual fits via the
fitter
module. On the other hand, thedistribution
module providespdf
,cdf
, andstats
functionality for any user-defined or pre-built distribution selected.Researchers, data scientists, and statisticians who work with datasets requiring multi-model fitting for robust analysis and modeling.
Apart from
scipy
,lmfit
, andscikit-learn
the general purpose scientific packages, there exists PyAutoFit, a Python-based probabilistic programming language built on Bayesian inference. Another notable library is Mixture-Models, which specializes in advanced optimization techniques for fitting various families of mixture models, including Gaussian mixture models and their variants. Both libraries are powerful tools for specific use cases, and I recently came to know about them during my search of existing options.While these libraries offer robust solutions for hierarchical modeling (
PyAutoFit
) or a diverse array of pre-defined mixture models (Mixture-Models
),pyMultiFit
distinguishes itself through its simplicity of use and its focus on simplicity of use. Specifically, it is designed to provide a lightweight and user-friendly framework for fitting multi-model data, including custom mixture models (for example,gaussian
+laplace
+line
).pymultifit
also provides easy-to-use base classes that can be modified for any distribution/fitter purposes.One of the more prominent features of
pyMultiFit
is theBaseFitter
template class that provides custom fitting to any definable function with minimal boilerplate code. All the plotting and boundary functionalities are handled inside the template class so that the user can focus solely on running through multiple models quickly without thinking about how to manage multiple models of the same type or even of different types.Additionally, the generators template function provides the user with an N-model data generator function with added noise capability to mimic real-life scenarios of whatever distribution the user might want.
P.S. Have feedback/comments about our review process? Leave a comment here
The text was updated successfully, but these errors were encountered: