- Implements sparse modeling and compressive sensing algorithms
- Depends on scikit-learn only
- Compliant with module and interface structure of scikit-learn as much as possible
First of all, we have sincere motivation to make common library for sparse modeling since we have been implementing several algorithms like mentioned above for our client projects one by one. We also noticed that sparse modeling itself is not well known among developers while data scientists or academic persons have been focusing it for years. We, as a tech startup, felt that we should broaden this fascinating idea to software developers and decided to make the library for sparse modeling as open source.
As seen in the second and third part of the concept, we have strong obsession to follow scikit-learn since we are heavy user of scikit-learn and love using it. We’d like such scikit-learn users like us to try our library pretty easily by
- adding just one dependency to their projects
- changing import and class name notation to switch algorithm they’re using
Let’s say you have Lasso implementation as follows.
from sklearn.linear_model import Lasso model = Lasso(alpha=0.1) model.fit(X_train, Y_train) model.score(X_test, y_test)
To use ADMM implementation, you just need to change the first 2 lines like this.
from spmimage.linear_model import LassoADMM model = LassoADMM(alpha=0.1) model.fit(X_train, Y_train) model.score(X_test, y_test)
Pretty easy to switch algorithm by scikit-learn compatible interface.
Though scikit-learn is widely used and very stable, we think there’s still room where we can contribute by implementing cutting edge algorithm with scikit-learn interface as shown above.
We tried to make other common library for sparse modeling before but failed since we didn’t clarify its basic concept and as a result, it became messy and hard to maintain. This time, as a second challenge, we’ll make spm-image tiny but useful library based on the basic concept.
We’re very welcome and open to your feedback. Please join us on our GitHub !