I am not sure about the name, score_samples would sound a bit strange for a conditional probability in my opinion. And likelihood is also misleading since its actually a conditional probability and not a conditional likelihood (the quantities on the right-hand side of conditioning are fixed and integrating over all y would be 1).
On 29.07.2015 16:16, Andreas Mueller wrote: > Shouldn't that be "score_samples"? > Well, it is a conditional likelihood p(y|x), not p(x) or p(x, y). > But it is the likelihood of some data given the model. > > > On 07/29/2015 02:58 AM, Jan Hendrik Metzen wrote: >> Such a predict_proba_at() method would also make sense for Gaussian >> process regression. Currently, computing probability densities for GPs >> requires predicting mean and standard deviation (via "MSE") at X and >> using scipy.stats.norm.pdf to compute probability densities for y for >> the predicted mean and standard-deviation. I think it would be nice to >> allow this directily via the API. Thus +1 for adding a method like >> predict_proba_at(). >> >> Jan >> >> On 29.07.2015 06:42, Mathieu Blondel wrote: >>> Regarding predictions, I don't really see what's the problem. Using >>> GLMs as an example, you just need to do >>> >>> def predict(self, X): >>> if self.loss == "poisson": >>> return np.exp(np.dot(X, self.coef_)) >>> else: >>> return np.dot(X, self.coef_) >>> >>> A nice thing about Poisson regression is that we can query the >>> probability p(y|x) for a specific integer y. >>> https://en.wikipedia.org/wiki/Poisson_regression >>> >>> We need to decide an API for that (so far we have used predict_proba >>> for classification so the output was always n_samples x n_classes). >>> How about predict_proba(X, at_y=some_integer)? >>> >>> However, this is also mean that we can't use predict_proba to detect >>> classifiers anymore... >>> Another solution would be to introduce a new method >>> predict_proba_at(X, y=some_integer)... >>> >>> Mathieu >>> >>> >>> On Wed, Jul 29, 2015 at 4:19 AM, Andreas Mueller <t3k...@gmail.com >>> <mailto:t3k...@gmail.com>> wrote: >>> >>> I was expecting there to be the actual poisson loss implemented in >>> the class, not just a log transform. >>> >>> >>> >>> On 07/28/2015 02:03 PM, josef.p...@gmail.com >>> <mailto:josef.p...@gmail.com> wrote: >>>> Just a comment from the statistics sidelines >>>> >>>> taking log of target and fitting a linear or other model doesn't >>>> make it into a Poisson model. >>>> >>>> But maybe "Poisson loss" in machine learning is unrelated to the >>>> Poisson distribution or a Poisson model with E(y| x) = exp(x beta). ? >>>> >>>> Josef >>>> >>>> >>>> On Tue, Jul 28, 2015 at 2:46 PM, Andreas Mueller >>>> <t3k...@gmail.com <mailto:t3k...@gmail.com>> wrote: >>>> >>>> I'd be happy with adding Poisson loss to more models, thought >>>> I think it would be more natural to first add it to GLM >>>> before GBM ;) >>>> If the addition is straight-forward, I think it would be a >>>> nice contribution nevertheless. >>>> 1) for the user to do np.exp(gbmpoisson.predict(X)) is not >>>> acceptable. This needs to be automatic. It would be best if >>>> this could be done in a minimally intrusive way. >>>> >>>> 2) I'm not sure, maybe Peter can comment? >>>> >>>> 3) I would rather contribute sooner, but other might thing >>>> differently. Silently ignoring sample weights is not an >>>> option, but you can error if they are provided. >>>> >>>> Hth, >>>> Andy >>>> >>>> >>>> On 07/23/2015 08:52 PM, Peter Rickwood wrote: >>>>> Hello sklearn developers, >>>>> >>>>> I'd like the GBM implementation in sklearn to support >>>>> Poisson loss, and I'm comfortable in writing the code (I >>>>> have modified my local sklearn source already and am using >>>>> Poisson loss GBM's). >>>>> >>>>> The sklearn site says to get in touch via this list before >>>>> making a contribution, so is it worth me to submitting >>>>> something along these lines? >>>>> >>>>> If the answer is yes, some quick questions: >>>>> >>>>> 1) The simplest implementation of poisson loss GBMs is to >>>>> work in log-space (i.e. the GBM predicts log(target) rather >>>>> than target), and require the user to then take the >>>>> exponential of those predictions. So, you would need to do >>>>> something like: >>>>> gbmpoisson = >>>>> sklearn.ensemble.GradientBoostingRegressor(...) >>>>> gbmpoisson.fit(X,y) >>>>> preds = np.exp(predict(X)) >>>>> I am comfortable making changes to the source for this to >>>>> work, but I'm not comfortable changing any of the >>>>> higher-level interface to deal automatically with the >>>>> transform. In other words, other developers would need to >>>>> either be OK with the GBM returning transformed predictions >>>>> in the case where "poisson" loss is chosen, or would need to >>>>> change code in the 'predict' function to automatically do >>>>> the transformation is poisson loss was specified. Is this OK? >>>>> 2) If I do contribute, can you advise what the best tests >>>>> are to test/validate GBM loss functions before they are >>>>> considered to 'work'? >>>>> >>>>> 3) Allowing for weighted samples is in theory easy enough to >>>>> implement, but is not something I have implemented yet. Is >>>>> it better to contribute code sooner that doesn't handle >>>>> weighting (i.e. just ignores sample weights), or later that >>>>> does? >>>>> >>>>> >>>>> >>>>> >>>>> Cheers, and thanks for all your work on sklearn. Fantastic >>>>> tool/library, >>>>> >>>>> >>>>> >>>>> Peter >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> >>>>> _______________________________________________ >>>>> Scikit-learn-general mailing list >>>>> Scikit-learn-general@lists.sourceforge.net >>>>> <mailto:Scikit-learn-general@lists.sourceforge.net> >>>>> >>>>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> Scikit-learn-general mailing list >>>> Scikit-learn-general@lists.sourceforge.net >>>> <mailto:Scikit-learn-general@lists.sourceforge.net> >>>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >>>> >>>> >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> Scikit-learn-general mailing list >>>> Scikit-learn-general@lists.sourceforge.net >>>> <mailto:Scikit-learn-general@lists.sourceforge.net> >>>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >>> >>> ------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Scikit-learn-general mailing list >>> Scikit-learn-general@lists.sourceforge.net >>> <mailto:Scikit-learn-general@lists.sourceforge.net> >>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> Scikit-learn-general mailing list >>> Scikit-learn-general@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general > > ------------------------------------------------------------------------------ > _______________________________________________ > Scikit-learn-general mailing list > Scikit-learn-general@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general > -- Jan Hendrik Metzen, Dr.rer.nat. Team Leader of Team "Sustained Learning" Universität Bremen und DFKI GmbH, Robotics Innovation Center FB 3 - Mathematik und Informatik AG Robotik Robert-Hooke-Straße 1 28359 Bremen, Germany Tel.: +49 421 178 45-4123 Zentrale: +49 421 178 45-6611 Fax: +49 421 178 45-4150 E-Mail: j...@informatik.uni-bremen.de Homepage: http://www.informatik.uni-bremen.de/~jhm/ Weitere Informationen: http://www.informatik.uni-bremen.de/robotik ------------------------------------------------------------------------------ _______________________________________________ Scikit-learn-general mailing list Scikit-learn-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scikit-learn-general