Hi Scikit-Learn fellas,

Here is my request for comments and contributions:  as I have briefly presented
to Gael at OHBM,  we (with Matteo, CCed) initiated a new project --
DueCredit to enable users quickly harvest necessary citations for the methods
and software they have used in their analyses.

E.g. here is a quick demo output from running a portion of unittests of PyMVPA
(ATM requires patched pymvpa [1] to get PyMVPA references, but sklearn should
be there even if you try with stock pymvpa -- read below why)

$> python -m duecredit /usr/bin/nosetests mvpa2.tests.test_transerror
........
DueCredit Report:
- libsvm (v None) [1]
- mvpa2 (v 2.4) [2]
  - mvpa2.clfs.SVM (v 2.4) [3]
  - mvpa2.clfs.smlr:SMLR (v 2.4) [4]
  - mvpa2.clfs.transerror:_call (v 2.4) [5]
  - mvpa2.featsel.rfe:_train (v 2.4) [6]
  - mvpa2.measures.searchlight:_call (v 2.4) [7]
- scipy (v 0.14.1) [8]
- sklearn (v 0.16.1) [9]
  - sklearn.ensemble.forest:RandomForestClassifier.predict_proba (v 0.16.1) [10]
  - sklearn.tree.tree:DecisionTreeClassifier.predict_proba (v 0.16.1) [11]

4 packages cited
1 modules cited
6 functions cited

References
----------

[1] Chang, C.-C. & Lin, C.-J., 2011. LIBSVM. ACM Trans. Intell. Syst. Technol., 
2(3), pp.1–27.
[2] Hanke, M. et al., 2009. PyMVPA: a Python Toolbox for Multivariate Pattern 
Analysis of fMRI Data. Neuroinform, 7(1), pp.37–53.
[3] Vapnik, V., 1995. The Nature of Statistical Learning Theory, New York: 
Springer.
...


Then later those all references could also be exported as a bibtex:

> duecredit summary --format=bibtex          
@article{Hanke_2009, title={PyMVPA:....
@article{pedregosa2011scikit, ...
@article{Kriegeskorte_2006, title={...
...

and we hope to support even more formats to simplify citations even further
(e.g. latex + bibtex combo ;) )

As we have outlined in README:
https://github.com/duecredit/duecredit/#duecredit-101 there are two ways how to
provide citations:   

1. natively within the code base (that is what we have done to PyMVPA in [1]).
  Idea is that such "native support" should not impact original project to 
  any degree -- duecredit dependency would remain optional and  code must not 
puke
  if something in duecredit fails
2. and through "injections" -- decorating corresponding functions upon 
corresponding
  module import, that is what we have done so far
  for some references within numpy, scipy, scikit-learn.

Ideally I see projects themselves  adopt the 'native' approach (so we
scale and don't impose any notable runtime impact associated with injections
mechanism) but I understand that it might be a while and opinions might vary,
so it might be that injections mechanism will stay forever.


Meanwhile I would like to hear your feedback

- would you be interested to adopt duecredit natively in scikit-learn
  eventually (I know Gael's opinion already ;) )? 

and contributions

- if not natively -- I would appreciate PRs for injections to
scikit-learn[2] or any other module to get your or others work cited.

If interested, here is my brief lightning talk at debconf a week ago
http://caesar.acc.umu.se/pub/debian-meetings/2015/debconf15/Lightning_talks_3.webm
scroll to around 43rd min

duecredit is on github: https://github.com/duecredit/duecredit/
and pypi: https://pypi.python.org/pypi/duecredit


[1] https://github.com/PyMVPA/PyMVPA/pull/330
[2] 
https://github.com/duecredit/duecredit/blob/master/duecredit/injections/mod_sklearn.py

-- 
Yaroslav O. Halchenko, Ph.D.
http://neuro.debian.net http://www.pymvpa.org http://www.fail2ban.org
Research Scientist,            Psychological and Brain Sciences Dept.
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834                       Fax: +1 (603) 646-1419
WWW:   http://www.linkedin.com/in/yarik        

------------------------------------------------------------------------------
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to