# News for the h2oEnsemble package. #

h2oEnsemble TO DO
-----------------
* TO DO: Remove a learner from the level-one matrix, Z, if the algorithm fails to run.
* TO DO: Add a check that CV folds produce training sets that have both pos/neg examples instead of a constant response col (in the case of imbalanced data)
* TO DO: Update the `runtime` list to include times for `cv` and `baselearning`.  These were dropped in version 0.0.5.
* TO DO: Add ability to generate predicted values using the `validation_frame` argument; currently this arg is ignored and doesn't do anything, and predictions must be made with the `predict.h2o.ensemble` function.  This should also include setting a new output object to store metrics.
* TO DO: Add support for multi-class classification. https://github.com/h2oai/h2o-3/issues/15262
* TO DO: Add `h2o.glm_nn wrapper`. Documented here: https://github.com/h2oai/h2o-3/issues/10632
* TO DO: Add support for other distributions. https://github.com/h2oai/h2o-3/issues/15184
* TO DO: Add support for external cross-validation of the ensemble by adding an `nfolds` argument.


h2oEnsemble 0.2.1  (2017-08-02)
-----------------
* Fixed bug that was causing an error in regression problems where the response contains values <=0.  Documented here: https://github.com/h2oai/h2o-3/issues/11651


h2oEnsemble 0.2.0  (2017-07-19)
-----------------
* The `family` argument of `h2o.ensemble` now supports the superset of family/distribution values for H2O algorithms, which is: "AUTO", "binomial", "gaussian", "quasibinomial", "poisson", "gamma", "tweedie", "laplace", "quantile", "huber”.
* Updated all h2o.algo.wrapper functions to be consistent with latest stable version of h2o (3.10.5.4), including new arguments that have been added since the previous release.
* Added `h2o.naiveBayes.wrapper` function (classification only).  Documented here: https://github.com/h2oai/h2o-3/issues/9786


h2oEnsemble 0.1.9  (2017-07-17)
-----------------
* Updated defaults for GLM wrapper `tweedie_variance_power` and `tweedie_link_power` to match `h2o.glm` defaults.
* Added `./man/h2o.stack.Rd` file to the GitHub repo (it was accidentally missing).  Documented here: https://github.com/h2oai/h2o-3/issues/10139
* Fixed bug in `print.h2o.ensemble_performance` function.  Documented here: https://github.com/h2oai/h2o-3/issues/10630
* Modified the h2o.ensemble and h2o.stack code examples to use data hosted on S3 instead of Berkeley servers.  Documented here: https://github.com/h2oai/h2o-3/issues/10488
* Updated all h2o.algo.wrapper functions to be consistent with h2o >= 3.10.1.1.


h2oEnsemble 0.1.8 (2016-03-29)
-----------------
* Added new ensembling function, `h2o.stack`, which takes a list of "H2OModel" objects as input, along with a metalearner, and returns an object of class, "h2o.ensemble".  Documented here: https://github.com/h2oai/h2o-3/issues/9577
* Fixed bug in `print.h2o.ensemble_performance` that caused error when `score_base_models = FALSE`. Documented here: https://github.com/h2oai/h2o-3/issues/9715
* Restricted the metrics argument in `print.h2o.ensemble_performance` to metrics common to all algorithms and sorted the printed base learner results by the metric.


h2oEnsemble 0.1.7 (2016-03-08)
-----------------
* Changed default values for `h2o.glm.wrapper` from -1 and NaN to NULL.  Something with `h2o.glm` changed such that this began to cause an error with binomial models.  Documented here: https://github.com/h2oai/h2o-3/issues/9659
* Added a new utility function, `h2o.ensemble_performance` to generate ensemble and base learner performance metrics on a trained ensemble fit object.  Documented here: https://github.com/h2oai/h2o-3/issues/9671


h2oEnsemble 0.1.6 (2016-02-10)
-----------------
* Updated default value for `model_id` in wrapper functions from `""` to `NULL`.  Was causing an NPE on the master branch of h2o-3. Issue documented here: https://github.com/h2oai/h2o-3/issues/9563
* Updated default `prior` value in `h2o.glm.wrapper` from 0 (no longer supported in `h2o.glm`) to `NULL`.  Documented here: https://github.com/h2oai/h2o-3/issues/9564
* Updated wrapper arguments to match the master branch of h2o-3, which contained several new arguments for all four modeling functions.


h2oEnsemble 0.1.5 (2015-12-16)
-----------------
* Reverted the Find/Replace change for Frame -> H2OFrame that caused some things to break. Documented here: https://github.com/h2oai/h2o-3/issues/15386


h2oEnsemble 0.1.4 (2015-12-05)
-----------------
* Added the ability to specify subsets of predictors for custom learners by passing an `x` to the wrapper functions.


h2oEnsemble 0.1.3 (2015-11-06)
-----------------
* Fixed bug in `h2o.ensemble` and `predict.h2o.ensemble` that was caused by pulling the predictions by column name instead of column number (since the name changes when using non-integer/character factor levels.  This was limited to binary classification. 
* Optimized `predict.h2o.ensemble`.  Previously, it pulled the test set predictions into R memory and now all the predictions remain in the H2O cluster as an H2OFrame.


h2oEnsemble 0.1.2 (2015-11-05)
-----------------
* Fixed bug so that SuperLearner metalearner functions work again.


h2oEnsemble 0.1.1 (2015-10-31)
-----------------
* Added new functions, `h2o.save_ensemble` and `h2o.load_ensemble`, for easy saving and loading of ensemble models to disk.
* Added a check in `h2o.ensemble` to force the family argument and response column data type to match up.
* Replaced an inefficient call to count levels that occured when `family = "AUTO"` with `h2o.levels`.


h2oEnsemble 0.1.0 (2015-10-29)
-----------------
* Removed `target_ratio_comm_to_comp` argument from `h2o.deeplearning.wrapper` function, since this is not implemeted in the latest stable release (Slater-9), and is only on master.  Once this change gets merged into the latest stable release, we will add this argument back in.


h2oEnsemble 0.0.9 (2015-10-28)
-----------------
* Added `target_ratio_comm_to_comp` argument to the `h2o.deeplearning.wrapper` function.
* Added new function `h2o.metalearn` which allows the user to easily re-fit the metalearner using a new metalearning algorithm.
* Renamed output value, `Z`: Changed name to `levelone`.  This H2OFrame includes the Z matrix columns plus a fold id column and the original response column.
* Added tests for `h2o.ensemble` and `h2o.metalearn` using the `testthat` framework.
* Updated `h2o.ensemble` example code to use `h2o.importFile` instead of `as.h2o`.
* Added a very basic `print` method for `h2o.ensemble` objects.


h2oEnsemble 0.0.8 (2015-10-07)
-----------------
* Added support for the `col_sample_rate` and `sample_rate` arguments in the GLM wrapper.


h2oEnsemble 0.0.7 (2015-10-04)
-----------------
* Added backward compatibility for `h2o` package with the data frame class name with "H2OFrame".  Temporarily on master, the `h2o` package is using a data frame class with name "H2OFrame" (Rapids integration).


h2oEnsemble 0.0.6 (2015-09-28)
-----------------
* Add support for new distribution/family arg in `h2o.gbm` and `h2o.glm`.
* Made some adjustments to the internals of the `h2o.ensemble` function to become compatible with the "Rapids" integration in the `h2o` package.


h2oEnsemble 0.0.5 (2015-08-10)
-----------------
* Added full support for `h2o.*` metalearning functions (data is no longer pulled into R). Previously, we pulled the `Z` matrix into R memory in order to be able to make use of SuperLearner-based metalearning functions, but this is no longer the default functionality.  We still pull the `Z` matrix into R memory if a SL-based metalearner is specified, however.  Using SL-based metalearners is suboptimal from a memory management perspective and may be deprecated in the future.  
* Re-wrote the backend of `h2o.ensemble` such the `Z` matrix of cv-pred values from the base learners to stay entirely within the H2O cluster using the recently updated cross-validation capabilities of the h2o base learner functions.
* Updated many of the wrapper functions to include newly implemented arguments.
* Updated bug in example code for `h2o.ensemble` that used predicted labels instead of predicted value for h2o metalearners.  This made it look like h2o metalearners were suboptimal when they were not.
* New distribution families (gamma, tweedie, poisson) are now supported when all base learners and metalearners can utilize the distribution (functionality currently untested).
* The example for the `h2o.ensemble` function was updated.


h2oEnsemble 0.0.4 (2015-06-15)
-----------------
* Upgraded the `h2oEnsemble` package to be compatible with H2O 3.0.  Previous versions of this package are compatible with H2O 2.0 only.


h2oEnsemble 0.0.3 (2014-12-28)
-----------------
* Fixed bug in `h2o.ensemble` that occurred when the number of observations is not divisible by the number of internal CV folds.


h2oEnsemble 0.0.2 (2014-11-17)
-----------------
* Removed rounding in `h2o.ensemble.predict`.
* Updated ensemble base learner wrapper function defaults to match h2o defaults.
* Updated example in `h2o.ensemble` documentation.
* Fixed a bug in `h2o.ensemble` that occurs when the outcome variable has a generic R column name such as `V1`.
* Changed the default CV folds from V=10 to V=5.


h2oEnsemble 0.0.1 (2014-10-08)
-----------------
* Initial release.
