Skip to content
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

ENH: distribute python wheels #108

Open
kaczmarj opened this issue Jan 17, 2018 · 3 comments
Open

ENH: distribute python wheels #108

kaczmarj opened this issue Jan 17, 2018 · 3 comments

Comments

@kaczmarj
Copy link

Hello,

Would it be possible for skggm to distribute Python wheel files? Wheels do not require compilation when installing, so users would not have to install gcc and other compilation dependencies (this is very helpful in Docker images). Wheel files can be created for macOS, Linux, and Windows with python setup.py bdist_wheel and can be uploaded to pypi with twine.

Thank you,
Jakub

@mnarayan
Copy link
Member

Thanks @kaczmarj. We will look into this.

@pluviosilla
Copy link

I second that sentiment.

On the other hand, maybe installation troubles are a needed deterrent for casual users like me. I discovered SKGGM because I can't get SciKit Learn's GraphLasso routine to work except for very small datasets. What I've read about SKGGM suggests that it might be more robust. Is it?

Suggested additions to the README:

  • Some guidance explaining what sort of user can profit from using Skggm. If I go on a safari hunt for compilers and other tools needed to get the package installed, what's the payoff for that time investment? Can I expect to get fewer PSD exceptions than with SciKit Learn's GraphLasso or at least better tools for dealing with exceptions?
  • More detailed installation guidance, and ideally, as the poster above suggests, some installation wheels or binaries.

@jasonlaska
Copy link
Member

jasonlaska commented Apr 15, 2018

Hi @pluviosilla,

Did you have trouble installing the package? Can we help?

Most linux systems have good support for compilers and macosx provides support for c-style compiling tools easily by downloading the osx developer tools. On macosx, you can also use homebrew https://brew.sh/ to get system dependencies like compilers and python variants with relatively little hassle.

  • Regarding wheels, my current understanding is that we would have to compile wheels for each system we expect it to be used, which would result in a limited number of wheels we could provide and may not be suitable for everyone. Regarding @kaczmarj 's specific comment, my expectation was that for deploys, production builds, docker images, etc. folks would build their own wheel if compiling was not an option or to save time. But I will look into distributing these.

  • Regarding the tradeoffs between between SKGGM and sklearn GraphLasso: We've provided this comparison chart on the readme
    image, references in the readme, a high level overview of the methods https://skggm.github.io/skggm/tour, as well as example runs of how to use many of these facilities here: https://github.com/skggm/skggm/blob/develop/examples/estimator_suite.py.

  • The issues you are describing sound like they are are numerical in nature. We have not done a comprehensive investigation of the difference in numerical issues between the packages but there is some work showing that the QUIC algorithm will succeed when GraphLasso fails. We've provided a simple demo of this here: https://github.com/skggm/skggm/blob/develop/examples/convergence_comparison.py and the reference "The graphical lasso: New Insights and alternatives", by Mazumder & Hastie 2012.
    https://web.stanford.edu/~hastie/Papers/glassoinsights.pdf.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants