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_features
to embed linear discriminant analysis (LDA) models in the leavesfeature Support saving progress in checkpoint files during training for
OptimalTreeLearner
,GridSearch
andRewardEstimator
objectsfeature 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
penalty
option forhyperplane_config
in 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_buttons
parameterenhancement Add
:always_left
as 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_jll
separately before using the static visualization functions.enhancement Support
show_node_id
parameter in static GraphViz visualizationsenhancement Support
variable_importance
for Optimal Feature Selection learners withcoordinated_sparsity
enhancement Allow setting
fit_kwargs
onGridSearch
to allow passing parameters forvalidation_criterion
when set on the grid search directlyenhancement Improve error message when applying regression models to data with missing values
enhancement Improve error message in
score
when 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
hostname
command 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_trees
leading to inconsistent pruningdeprecation The
regression_sparsity
parameter 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=0
in 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_learner
andrefit_leaves!
)feature Add
refit_leaves!
andcopy_splits_and_refit_leaves!
to enable refitting an existing tree structure with new leaf modelsfeature Add
refit_learner
to 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_expand
along withZeroImputationLearner
to allow imputation-free handling of datasets with missing data (e.g. for adaptive regression)feature Add
evaluation_time
to allow conducting reward estimation on survival outcomes with the goal of maximizing survival probability at a given timefeature Added
GLMNetCVClassifier
andGLMNetCVSurvivalLearner
to use GLMNet for classification and survival problemsfeature When expanded to onehot encoding, ordinal features are now also expanded to include
value <= level
features as well asvalue == level
features for better efficiency in regression modelsfeature Add
predict_reward
to permit estimating rewards with different parameters without retraining a Reward Estimatorfeature Add
get_machine_id
to allow querying the machine ID easilyfeature Add
weighted_minbucket
parameter to tree learners to enforce a minimum sample weight in each leaffeature Add
skip_curve_fitting
to allow skipping survival curve fitting during tree trainingfeature Add
ls_scan_reverse_split
parameter to tree learners to enable a slightly more thorough search for parallel splits at the expense of additional computationfeature Add
cp_tuning_se_tolerance
to support standard-error tolerance in cp-tuningfeature Add
smooth_survival_curves
parameter to permit fitting piecewise-constant survival curves rather than piecewise-linearbreaking Disallow
:imputation
as a task type insplit_data
breaking Replace
refit_l1
parameter on OptimalFeatureSelection learners with withrefit_learner
for more control of refitting processbreaking Breaking changes to JSON storage format for
:opt_tree
based imputationbreaking The first return value of
fit_predict!
andpredict
with Reward Estimation is now aDict
containing the rewards as well as the estimated outcomes and propensity scores rather than just the rewardsenhancement Support
read_json
/write_json
for Reward Estimators and all unfitted learnersenhancement Support calculating
variable_importance
for 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
cp
enhancement Add progress bars for Reward Estimation training
enhancement Miscellaneous performance improvements, including significant improvements to OptimalFeatureSelection on large problems
deprecation Deprecate
impute
andimpute_cv
from 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
RandomForestSurvivalLearner
andXGBoostSurvivalLearner
to Heuristicsfeature Add
predict_shap
for XGBoost learners to predict the SHAP values for a trained modelfeature Add
get_features_used
to extract the set of features used by a fitted learnerfeature Add
split_data
forAbstractRange
andInteger
inputs to obtain indices for splitting into training and testing datafeature Add Plots.jl recipe for
ROCCurve
feature Allow setting
n_folds
andtrain_proportion
onGridSearch
feature Allow calculating
variable_importance
with 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_intercept
parameter)feature Add
get_grid_result_details
to retrieve results and trained learners from aGridSearch
for each parameter combination testeddeprecation Rename
get_grid_results
toget_grid_result_summary
enhancement The default
minbucket
value for random forest learners now depends on the problem type (following thegrf
package 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=X
in when visualizing data inwrite_html
enhancement 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
score
directly from datafeature Add
plot
support for Optimal Feature Selection grid search resultsfeature Support questionnaire visualizations for Optimal Feature Selection
feature Add
refit_l1
to Optimal Feature Selection for refitting L1-regularized model to selected featuresfeature Add
write_pdf
andwrite_svg
to save trees as static vector imagesfeature Add
get_survival_expected_time
andget_survival_hazard
to query information from survival treesfeature Add
predict_treatment_rank
andpredict_treatment_outcome
for policy learners to access predicted treatment rankingsfeature Support keyword argument in
predict
for survival learners to evaluate probability of survival at a given timet
feature Add
get_roc_curve_data
to 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_leaf
to 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_png
bugfix Fix behavior of
OptimalFeatureSelectionClassifier
in 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
kernel
parameter from:opt_svm
imputation and only support linear kernels - breaking Remove some previously-deprecated functions
-
deprecation
Rename
OptimalTreeSurvivor
toOptimalTreeSurvivalLearner
- 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_importance
for Optimal Feature Selection - feature Allow evaluating survival models with classification criteria
-
feature
Ability to construct
ROCCurve
from predicted probabilities and labels -
feature
Add
shuffle
keyword argument tosplit_data
-
feature
Add
predict_expected_survival_time
for survival learners -
enhancement
Treat
PooledVector
s as categorical data -
enhancement
Support DataFrames-style column indexing for OptimalTrees parameters
split_features
,regression_features
, andfeature_set
inhyperplane_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
OptimalFeatureSelectionClassifier
display - bugfix Fix bug in Optimal Feature Selection where both levels of a binary feature could be selected
-
bugfix
Fix calculation of
:l1hinge
and:l2hinge
criteria duringOptimalFeatureSelectionRegressor
training
v1.2.0
Changes from v1.1.0:
-
deprecation
:rbf
value for:svm_kernel
parameter ofOptSVMImputationLearner
has 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
GridSearch
and 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_json
now supportImputationLearner
s. - enhancement New progress meter display compatible with grid search.
-
enhancement
Further algorithmic improvements in fitting
ImputationLearner
s to significantly lower memory usage. -
enhancement
Algorithmic improvements in fitting
OptimalTreeLearner
s (~5% speedup). -
enhancement
:sparsity
parameter forOptimalFeatureSelectionLearner
s 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
GridSearch
can 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