2012/11/28 <[email protected]>:
> Dear scikit-learn community:
>
> Block Sparse Bayesian Learning is a powerful CS algorithm for recovering
> block sparse signals with structures, and shows the additional benefits of
> reconstruct non-sparse signals, see Dr. zhilin zhang's websites:
> http://dsp.ucsd.edu/~zhilin/BSBL.html
>
> I currently implement the BSBL-BO algorithm by Zhang and a fast version of
> BSBL algorithm recently proposed by us, called BSBL-FM, in python. Plus many
> demos using these two codes. Does scikit-learn community welcome such type
> of code ?
I am not familiar with those. A couple of questions / concerns:
- Those papers seem quite new. We usually prefer to include algorithms
that have prved to be useful several years after publication of the
original paper.
- Is the problem being solved castable as a linear regression problem
with a sparsity inducing penalty? If so how are those models better /
faster than the existing comparable models implemented in scikit-learn
(e.g. sklearn.linear_model.Lasso, sklearn.linear_model.LassoLars,
sklearn.linear_model.ElasticNet,
sklearn.linear_model.OrthogonalMatchingPursuit...).
- Alternatively is this model more comparable to an unsupervised
decomposition method such as sklearn.decomposition.DictionaryLearning
or sklearn.decomposition.SparsePCA (or their minibatch variants)?
- Will this fit naturally with usual scikit-learn API for estimators?
- RegressionModel(regularizer=value).fit(data_train,
target_train).predict(data_test) for regression
- DecompositionModel(n_components=100).fit(data_train).transform(data_test)
for decomposition then projection / embedding?
Apparently BSBL models are more comparable to Group Lasso or Group OMP
so that API might have to be more like:
RegressionModel(regularizer=value,
feature_groups=group_indices).fit(data_train,
target_train).predict(data_test)
Unless suitable feature groups are discovered automatically from the
structure of the data. We don't have Group Lasso or Group OMP in the
scikit yet, so I guess implementing those baselines would be a
pre-requisite anyway. I think some core developers already have gists
lying around for those.
> what is the procedure to submit the code in the mainstream of
> scikit learn?
The contributors guide is here:
http://scikit-learn.org/dev/developers/index.html#contributing-code
It's very important to read all of it. The contribution of new
features can take a long time. Don't expect a quick pull request and
forget process otherwise you might get disappointed :)
--
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
------------------------------------------------------------------------------
Keep yourself connected to Go Parallel:
INSIGHTS What's next for parallel hardware, programming and related areas?
Interviews and blogs by thought leaders keep you ahead of the curve.
http://goparallel.sourceforge.net
_______________________________________________
Scikit-learn-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general