[MRG] Sparse input support for Gradient Boosting

adds sparse input support:

  * Falls back to ``BestSparseSplitter``
  * Holds data in both ``csc`` and ``csr`` format during fit (needs the latter just to call ``tree.apply`` to get the terminal leaf assignment).

Todo:

  - [x] more & better tests
  - [x] benchmarks
  - [x] partial dependence

cc @arjoly @jnothman @glouppe 
yes, no deciles in the sparse case -- only min-max and 10 points equally
spaced -- there should be a comment in the docstring

2014-11-28 18:15 GMT+01:00 Arnaud Joly <notifications@github.com>:

> In sklearn/ensemble/partial_dependence.py:
>
> > @@ -352,7 +381,11 @@ def convert_feature(fx):
> >              ax.clabel(CS, fmt='%2.2f', colors='k', fontsize=10, inline=True)
> >
> >          # plot data deciles + axes labels
> > -        deciles = mquantiles(X[:, fx[0]], prob=np.arange(0.1, 1.0, 0.1))
> > +        if issparse(X):
> > +            minmax = _csc_col_minmax(X[:, fx[0]:fx[0] + 1])
> > +            deciles = np.linspace(minmax[0, 0], minmax[1, 0], 10)
>
> It doesn't seem to be the deciles.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/scikit-learn/scikit-learn/pull/3880/files#r21039872>.
>



-- 
Peter Prettenhofer