Hi All,
This is a post to start asking questions about this add-in and to be more candid about the questions and answers.
Here are my questions in general and as they pertain to JMP Genomics (which is also getting this add-in):
- What is the main problem that XGBoost is supposed to address? (e.g Poor performing models? Addressing sparse data not easily dealt with by other methods? Accuracy issues?) I have read it really increases the speed of modeling, but what else and please given an example.
- How does this apply to genomic data?
- What is the real benefit (personal and business benefit)? Goal is to help SEs communicate the benefit to an organization of why they would want to invest in the time (and/or $) to implement.
- What is the impact and magnitude on a business problem?
- Outside of Kaggle, has anyone implemented XGBoost and what was the result?
Thanks,
Another point to add to this discussion: XGBoost has a LGPL3 license. The short of it is that we are not permitted to distribute it embedded as part of the regular JMP software, lest we have to provide JMP essentially free to all. The only way is for the user to voluntarily download the package containing this module and assume personal responsibility for adhering to the LGPL license themselves.
Brian
Hi Mike, The future on this is still to be worked out and we are open to suggestions. This is the first time we have integrated hard-core third-party analytics into JMP at the C++ level and as a first step we want to maintain some distance and flexibility via an add-in. I seriously doubt this will become any kind of new JMP product, but do hope it will help enhance sales of JMP Pro and provide us with valuable insights into some of the tectonic shifts happening with analytics software.
Thanks Chris for raising these.
1. What is the main problem that XGBoost is supposed to address? (e.g Poor performing models? Addressing sparse data not easily dealt with by other methods? Accuracy issues?) I have read it really increases the speed of modeling, but what else and please given an example.
XGBoost is for the most part a really good, general purpose predictive modeling platform; a supercharged variation of the current JMP Pro Boosted Tree platform. Like Boosted Tree and Bootstrap Forest, it produces variable importance statistics so can also be used in more of an explanatory mode to determine strongest predictors and eliminate poorest ones. It automatically handles missing data in predictors and has objective functions for all common kinds of Y targets. It is relatively fast and should by default use all of the cores on your machine while fitting, and can optionally use an NVIDIA GPU on Windows The add-in comes with two basic examples and a doc explaining them. With the already state-of-the-art data manipulation, cleaning, and feature-engineering capabilities in JMP Pro, it provides a formidable way to perform modern machine learning on tabular data without having to write code.
2. How does this apply to genomic data?
There is nothing specific in XGBoost related to genomic data sets, but it can work well for them and other wide data problems. Luciano Silva (JMP Genomics developer) and I have done a few comparisons with some of the current best genomic selection routines (e.g. Genomic BLUP) and it tends to perform equally well but not significantly better.
3. What is the real benefit (personal and business benefit)? Goal is to help SEs communicate the benefit to an organization of why they would want to invest in the time (and/or $) to implement.
XGBoost is most directly applicable to business problems that can be cast as prediction problems, although you can also use it to analyze data from designed experiments. It scales well to larger data sets. For new users there is some learning involved to understand the tuning parameters, and we have added functionality that uses DOE to help tune these parameters. We also use DOE in a novel way in a supplementary routine Make K-Fold Columns to create optimally balanced splits of the data to use for cross-validation. See the doc with the add-in for a full list of value adds JMP Pro brings over standard XGBoost functionality.
4. What is the impact and magnitude on a business problem?
Depends highly on the problem! Sometimes small improvements in predictions and understanding of a system can have big impacts, other times not so much.
5. Outside of Kaggle, has anyone implemented XGBoost and what was the result?
My understanding is that numerous organizations have implemented XGBoost models successfully in production, but I don't have any good references for you. There are a lot of discussions about XGBoost online. Most folks run and deploy XGBoost from Python or R. There is a red triangle option to save Python code, which is actually full code for cross-validating the model from scratch.
To All: We are currently in Early Adopter mode and have a new JMP Community group set up. Mia Stephens and Stephanie Mencia are kindly helping, and we've already received some fantastic feedback. Please let me know if you would like to be added to the group or just want to try the add-in.