Older Releases
v3.1.1
This is a bugfix release for v3.1.0.
Changes from v3.1.0:
- bugfix Fix Javascript loading error for stability analysis visualizations
- bugfix Improve reliability of warning messages when running in IJulia
v3.1.0
Changes from v3.0.2:
feature Support for macOS with ARM (M-series) processors
feature Classification trees can be trained with
regression_featuresto embed linear discriminant analysis (LDA) models in the leavesfeature Support saving progress in checkpoint files during training for
OptimalTreeLearner,GridSearchandRewardEstimatorobjectsfeature Add update check for new IAI versions that runs when Julia is started
feature Add support for licenses managed through AWS License Manager
enhancement Introduce
penaltyoption forhyperplane_configin Optimal Trees to allow customizing the penalty for each additional coefficient in hyperplane splitsenhancement Add progress bar during XGBoost training
enhancement Update included version of XGBoost to 1.6.1
enhancement Allow controlling whether "Not sure" buttons appear in questionnaires through the
include_not_sure_buttonsparameterenhancement Add
:always_leftas a permissible value formissingdatamode, and permit specifying a different missing data mode per featureenhancement Only show missing direction in visualizations when it is possible for missing values to reach a split
enhancement Switch to loading Graphviz lazily to reduce number of required dependencies. This requires loading
Graphviz_jllseparately before using the static visualization functions.enhancement Support
show_node_idparameter in static GraphViz visualizationsenhancement Support
variable_importancefor Optimal Feature Selection learners withcoordinated_sparsityenhancement Allow setting
fit_kwargsonGridSearchto allow passing parameters forvalidation_criterionwhen set on the grid search directlyenhancement Improve error message when applying regression models to data with missing values
enhancement Improve error message in
scorewhen the specified criterion is not supported by the model being usedenhancement Improvements to floating license server to support a wider range of licensing scenarios
bugfix Fix numerical tolerance bug when loading GLMNet learners from JSON file
bugfix Fix Javascript loading error in Jupyter notebooks
bugfix Fix printing of some unfitted learners to show all parameters
bugfix Fix license validation when
hostnamecommand is missingbugfix Fix for edge case in hyperplane pruning algorithm
bugfix Fix interactivate visualization for trees with embedded logistic regression
bugfix Fix multiprocessing issue caused by serialization bug in recent versions of Julia
bugfix Fixes for missing value handling in localsearch
bugfix Fix bug in
prune_treesleading to inconsistent pruningdeprecation The
regression_sparsityparameter for Optimal Trees has been deprecated in favor ofregression_features
v3.0.2
This is a bugfix release for v3.0.1.
Changes from v3.0.1:
- bugfix Compatibility with Julia 1.8
v3.0.1
This is a bugfix release for v3.0.0.
Changes from v3.0.0:
-
bugfix
Support setting
sparsity=0in Optimal Feature Selection learners - bugfix Update internal dependencies to avoid problematic Parsers.jl release and permit JuMP.jl 0.22
- bugfix Fix bug in determining which features are used by tree learners after refitting
v3.0.0
Changes from v2.2.0:
feature Support added for multi-threading to Optimal Trees and OptImpute training, as well as all prediction and score APIs
feature Support embedding logistic and cox regression in the leaves of trees (for use with
refit_learnerandrefit_leaves!)feature Add
refit_leaves!andcopy_splits_and_refit_leaves!to enable refitting an existing tree structure with new leaf modelsfeature Add
refit_learnerto enable refitting more complicated models in each leaf during tree trainingfeature Add
prune_trees!to allow pruning an existing tree to the best size according to a new validation datasetfeature Add coordinated-sparsity fitting to OptimalFeatureSelection
feature Add
fit_and_expand!andtransform_and_expandalong withZeroImputationLearnerto allow imputation-free handling of datasets with missing data (e.g. for adaptive regression)feature Add
evaluation_timeto allow conducting reward estimation on survival outcomes with the goal of maximizing survival probability at a given timefeature Added
GLMNetCVClassifierandGLMNetCVSurvivalLearnerto use GLMNet for classification and survival problemsfeature When expanded to onehot encoding, ordinal features are now also expanded to include
value <= levelfeatures as well asvalue == levelfeatures for better efficiency in regression modelsfeature Add
predict_rewardto permit estimating rewards with different parameters without retraining a Reward Estimatorfeature Add
get_machine_idto allow querying the machine ID easilyfeature Add
weighted_minbucketparameter to tree learners to enforce a minimum sample weight in each leaffeature Add
skip_curve_fittingto allow skipping survival curve fitting during tree trainingfeature Add
ls_scan_reverse_splitparameter to tree learners to enable a slightly more thorough search for parallel splits at the expense of additional computationfeature Add
cp_tuning_se_toleranceto support standard-error tolerance in cp-tuningfeature Add
smooth_survival_curvesparameter to permit fitting piecewise-constant survival curves rather than piecewise-linearbreaking Disallow
:imputationas a task type insplit_databreaking Replace
refit_l1parameter on OptimalFeatureSelection learners with withrefit_learnerfor more control of refitting processbreaking Breaking changes to JSON storage format for
:opt_treebased imputationbreaking The first return value of
fit_predict!andpredictwith Reward Estimation is now aDictcontaining the rewards as well as the estimated outcomes and propensity scores rather than just the rewardsenhancement Support
read_json/write_jsonfor Reward Estimators and all unfitted learnersenhancement Support calculating
variable_importancefor tree learners based on the distribution of features in a new datasetenhancement Add support for training XGBoost using tweedie criterion
enhancement Add support for sample weights when calculating Harrell's c-statistic
enhancement Modernized theme for questionnaire visualizations
enhancement Include graphviz from Graphviz_jll so that static visualizations no longer require a separate graphviz installation
enhancement Support passing extra columns not used during training to data-grid visualizations
enhancement New cp-tuning algorithm for trees with hyperplanes that delivers more precise tuned values for
cpenhancement Add progress bars for Reward Estimation training
enhancement Miscellaneous performance improvements, including significant improvements to OptimalFeatureSelection on large problems
deprecation Deprecate
imputeandimpute_cvfrom OptImputedeprecation Remove some previously-deprecated functions
bugfix Change grid splitting for imputation to split matrix entries rather than splitting based on samples
bugfix Fix floating point precision issue in full local likelihood criterion
bugfix Fix onehot-encoding of unseen level categoric levels
bugfix Fix threshold-based score calculation to use predicted labels when threshold is not supplied
bugfix Fix bug when checking the number of labels before calculating AUC
bugfix Fix stability analysis with categoric features
bugfix Use scaled weights for hyperplane and linear model importance
v2.2.0
Changes from v2.1.0:
feature Add functionality for analyzing tree stability
feature Add doubly-robust reward estimation for numeric treatments and improve causality in outcome estimation under numeric treatments
feature Add reward estimation for survival outcomes
feature Add survival learners
RandomForestSurvivalLearnerandXGBoostSurvivalLearnerto Heuristicsfeature Add
predict_shapfor XGBoost learners to predict the SHAP values for a trained modelfeature Add
get_features_usedto extract the set of features used by a fitted learnerfeature Add
split_dataforAbstractRangeandIntegerinputs to obtain indices for splitting into training and testing datafeature Add Plots.jl recipe for
ROCCurvefeature Allow setting
n_foldsandtrain_proportiononGridSearchfeature Allow calculating
variable_importancewith respect to new data and/or a different criterionfeature Allow fitting Optimal Regression Trees with linear predictions in the leaves without intercept terms (using the
regression_interceptparameter)feature Add
get_grid_result_detailsto retrieve results and trained learners from aGridSearchfor each parameter combination testeddeprecation Rename
get_grid_resultstoget_grid_result_summaryenhancement The default
minbucketvalue for random forest learners now depends on the problem type (following thegrfpackage in R)enhancement When calling API functions like
predict, only the features used by the model for predictions need to be suppliedenhancement Allow passing only
data=Xin when visualizing data inwrite_htmlenhancement Significant reduction in memory use when training Optimal Tree learners
enhancement Add support for sample weights when training XGBoost learners
enhancement Add support for sample weights when calculating AUC
enhancement Latency improvements due to Julia type inference fixes
bugfix Fix progress bar error for long output lines
bugfix Fix bug in RNG where first value is very correlated with seed
bugfix Fixes to ordinal split printing in tree visualizations
bugfix Fix policy trees being mutated by some API functions
bugfix Fix bug in determining best trees when calculating variable importance
bugfix Improve error message when renaming feature to one that already exists
bugfix Remove artificial 2047 node limit when training tree learners
v2.1.0
Changes from v2.0.0:
feature Add Heuristics package for running XGBoost, Random Forests and GLMNet inside IAI ecosystem
feature RewardEstimation has been completely rewritten to support both categorical and numeric treatments
feature Add ability to calculate
scoredirectly from datafeature Add
plotsupport for Optimal Feature Selection grid search resultsfeature Support questionnaire visualizations for Optimal Feature Selection
feature Add
refit_l1to Optimal Feature Selection for refitting L1-regularized model to selected featuresfeature Add
write_pdfandwrite_svgto save trees as static vector imagesfeature Add
get_survival_expected_timeandget_survival_hazardto query information from survival treesfeature Add
predict_treatment_rankandpredict_treatment_outcomefor policy learners to access predicted treatment rankingsfeature Support keyword argument in
predictfor survival learners to evaluate probability of survival at a given timetfeature Add
get_roc_curve_datato access ROC curve fieldsenhancement Optimal Trees use adaptive sorting algorithm resulting in up to 5% speedup on large problems
enhancement Significantly reduce memory usage during grid search
enhancement Add
check_leafto tree structure API to permit accessing data at split nodesenhancement Improved quality and speed for regression-in-leaf fitting inside Optimal Trees
enhancement Improved algorithm for variable importance for Optimal Trees
enhancement Improvements to appearance and configurability of
write_pngbugfix Fix behavior of
OptimalFeatureSelectionClassifierin unbalanced problemsbugfix Miscellaneous bugfixes and improvements
v2.0.0
Changes from v1.2.0:
-
breaking
Change default criterion for Optimal Survival Trees to
:localfulllikelihood -
breaking
Use multi-class SVM when imputing categorical variables with
:opt_svm -
breaking
Remove
kernelparameter from:opt_svmimputation and only support linear kernels - breaking Remove some previously-deprecated functions
-
deprecation
Rename
OptimalTreeSurvivortoOptimalTreeSurvivalLearner - feature Add Optimal Policy Trees
- feature Add Reward Estimation to replace PrescriptionUtils.jl
- feature Option to include dataset in interactive tree visualization
- feature More customization options for tree visualizations
-
feature
Add tree visualization support for
GridSearch -
feature
Support for multiple warmstarts in OptImpute during
transform -
feature
Add
variable_importancefor Optimal Feature Selection - feature Allow evaluating survival models with classification criteria
-
feature
Ability to construct
ROCCurvefrom predicted probabilities and labels -
feature
Add
shufflekeyword argument tosplit_data -
feature
Add
predict_expected_survival_timefor survival learners -
enhancement
Treat
PooledVectors as categorical data -
enhancement
Support DataFrames-style column indexing for OptimalTrees parameters
split_features,regression_features, andfeature_setinhyperplane_config - enhancement When making predictions on new data, columns can be in any order, as long as all columns from training are present
- enhancement Reduce file size for models saved as JSON
-
enhancement
Indicate which class is positive in
OptimalFeatureSelectionClassifierdisplay - bugfix Fix bug in Optimal Feature Selection where both levels of a binary feature could be selected
-
bugfix
Fix calculation of
:l1hingeand:l2hingecriteria duringOptimalFeatureSelectionRegressortraining
v1.2.0
Changes from v1.1.0:
-
deprecation
:rbfvalue for:svm_kernelparameter ofOptSVMImputationLearnerhas been deprecated. In the next major release, the default kernel will be:linear, and the ability to specify a kernel will be removed. -
deprecation
Many functions that operated on
GridSearchand applied the function to the underlying learner are now deprecated. Instead off(grid), prefer usingf(IAI.get_learner(grid))for these functions. - feature Harrell's c-statistic has been added as a new scoring criterion for survival problems. This should be the preferred criterion when validating and evaluating survival problems.
-
feature
read_json/write_jsonnow supportImputationLearners. - enhancement New progress meter display compatible with grid search.
-
enhancement
Further algorithmic improvements in fitting
ImputationLearners to significantly lower memory usage. -
enhancement
Algorithmic improvements in fitting
OptimalTreeLearners (~5% speedup). -
enhancement
:sparsityparameter forOptimalFeatureSelectionLearners can be specified with any values permitted byRelativeParameterInput.
v1.1.0
Changes from v1.0.1:
- feature New Optimal Feature Selection module
- feature New advanced visualization interface for better control of tree visualizations
-
feature
GridSearchcan now be saved and loaded usingwrite_json/read_json - enhancement Algorithmic improvements to OptImpute to significantly lower memory usage
v1.0.1
Changes from v1.0.0:
- enhancement Show machine ID when license is expiring or has expired for easier renewal
- enhancement Throw error if multiple features/levels/labels are the same after renaming
- bugfix Fix for cumulative hazard calculation edge-case
- bugfix Fix for distributed job dispatch when using subset of available workers
- bugfix Fix AUC calculation when predictions are skewed
- bugfix Fix color conversions in tree visualization
- bugfix Fix issue showing probabilities in text representation of tree when display label is set