-
Notifications
You must be signed in to change notification settings - Fork 739
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
EBM support for Survival Analysis #293
Comments
Hi @peroni70 -- We have been working on custom loss functions, however they aren't ready yet and it will unfortunately be a while until they are since it's a fairly big change. I don't feel comfortable yet offering a firm date on when these will be completed, but have no doubt that we consider this to be a high priority item. I'm going to close this issue since we'll be updating the loss function issue #196 once we have something to report. Rich only occasionally checks our issues, but I've forwarded this message to him. -InterpretML team |
@peroni70 -- we are working on a neural net version of EBMs called NAMs (Neural Additive Models). Here's a pointer to our recent NeurIPS paper: https://papers.nips.cc/paper/2021/hash/251bd0442dfcc53b5a761e050f8022b8-Abstract.html. One advantage of training GAMs with DNNs is that it should be easier to use other neural net code for survival analysis with them. We haven't done this yet ourselves, but if you're a DNN hacker it shouldn't be too hard. Adding survival analysis to EBMs (which are based on boosted trees) is a little more difficult, but not impossible. We just haven't got to it yet, and aren't sure when we will be able to do it. Finally, another approach to survival analysis with EBMs is to use the method developed by Tibshirani to do survival analysis without directly modifying the learning algorithm. Not sure how good that method is in practice because I haven't used it myself, but I think there are a few papers about it in the literature. Hope this helps! -Rich. |
@richcaruana, would you mind sharing links to a couple of papers on the method developed by Tibshirani to do survival analysis without directly modifying the learning algorithm please? |
@peroni70 @andreassoteriadesmoj I know I'm a little late, but my research lab (led by Madeleine Udell) has been working on methods for interpretable survival analysis that are very relevant to the above conversations. I'd like to share some of these below as they may be useful for you or future visitors of this thread:
|
@mvanness354, amazing, thanks a ton! |
@mvanness354 that's great! It's been a while, but I'll just add to this thread that I ended up writing a short paper back in 2022 on using (second-order) neural additive models for survival analysis. I haven't focused on this research direction in some time, but it's really cool to see the active and ongoing work! |
Nice to have that one too. Thanks for bringing it to our attention! |
Hi Interpret team!
I was wondering if there is a plan to add support for survival analysis for EBM. I'm currently working on medical applications, and survival analysis is often the structure of the problems we're trying to solve. Currently, we use XGBoost Regressor which offers support for survival analysis data (in our case, we're using the
survival:cox
objective function). I'd really like to evaluate EBM as an alternative to an XGB model + SHAP explainer.One approach of course would be to write my own objective function for this use-case; I see another issue open regarding custom loss functions, which sounds like a significant effort to make available. Given the ubiquity of survival analysis in clinical data science and the need for interpretable models like EBM in this space, I think this would be a very useful feature to support. If I had any C++ knowledge, I'd work on it myself :)
P.S. - Prof. Caruana (if you check these) I attended one of your guest lectures while I was a student at Cornell, and your talk was deeply motivating to me and helped guide my career path and how I think about evaluating ML solutions to real-world problems. Thank you!!
The text was updated successfully, but these errors were encountered: