mlr_2.2:
- The web tutorial was MUCH improved!
- more example tasks and data sets
- Learners and tasks now support ordered factors as features.
  The task description knows whether ordered factors are present and it is checked whether the learner
  supports such a feature. We have set this property 'ordered' very conservatively, so very
  few learners have it, where we are sure ordered inputs are handled correctly during training.
  If you know of more models that support this, please inform us.
- basic R learners now have new slots: name (a descriptive name of the algorithm),
  short.name (abbreviation that can be used in plots and tables) and note
  (notes regarding slight changes for the mlr integration of the learner and such).
- makeLearner now supports some options regarding learner error handling and output which
  could before only be set globally via configureMlr
- Additional arguments for imputation functions to allow a more fine-grain
  control of dummy column creation
- imputeMin and imputeMax now subtract or add a multiple of the range of
  the data from the minimum or to the maximum, respectively.
- cluster methods now have property 'prob' when they support fuzzy cluster membership probabilities,
  and also then support predict.type = 'prob'. Everything basically works the same as for posterior
  probabilities in classif.* methods.
- predict preserves the rownames of the input in its output
- fixed a bug in createDummyFeatures that caused an error when the data contained missing values.
- plotLearnerPrediction works for clustering and allows greyscale plots (for printing or articles)
- the whole object-oriented structure behind feature filtering was much
  improved. Smaller changes in the signature of makeFilterWrapper and
  filterFeatures have become necessary.
- fixed a bug in filter methods of the FSelector package that caused an error when variable names
  contained accented letters
- filterFeatures can now be also applied to the result of getFilterValues
- We dropped the data.frame version of some preprocessing operations like mergeFactorLevelsBySize,
  joinClassLevels and removeConstantFeatures for consistency. These now always require tasks as input.
- We support a pretty generic framework for stacking / super-learning now, see makeStackedLearner
- imbalancy correction + smote:
  -- fix a bug in "smote" when only factor features are present
  -- change to oversampling: sample new observations only (with replacement)
  --- extension to smote algorithm (sampling): minority class observations in binary classification
      are either chosen via sampling or alternatively, each minority class observation is used an
      equal number of times
- made the getters for BenchmarkResult more consistent. These are now:
  getBMRTaskIds, getBMRLearnerIds, getBMRPredictions, getBMRPerformances, getBMRAggrPerformances
  getBMRTuneResults, getFeatSelResults, getBMRFilteredFeatures
  The following methods do not work for BenchmarkResult anymore: getTuneResult, getFeatSelResult
- Removed getFilterResult, because it does the same as getFilteredFeatures

- new learners:
-- classif.bartMachine
-- classif.lqa
-- classif.randomForestSRC
-- classif.sda
-- regr.ctree
-- regr.plsr
-- regr.randomForestSRC
-- cluster.cmeans
-- cluster.DBScan
-- cluster.kmeans
-- cluster.FarthestFirst
-- surv.cvglmnet
-- surv.optimCoxBoostPenalty

- new filters:
-- variance
-- univariate
-- carscore
-- rf.importance, rf.min.depth
-- anova.test, kruskal.test
-- mrmr

- new functions
-- makeMulticlassWrapper
-- makeStackedLearner, getStackedBaseLearnerPredictions
-- joinClassLevels
-- summarizeColumns, summarizeLevels
-- capLargeValues, mergeFactorLevelsBySize

mlr_2.1:
- mlr now supports multi-criteria tuning
- mlr now supports cluster analysis (experimental)
- improve makeWeightedClassesWrapper: Hyperparams for class weighting are now supported, too.
- removed fix.factors option from randomForest, but added it in general to makeLearner,
  so it now works for all learners.
  Helps when feature factor levels where dropped in newdata prediction data.frames
- more consistent results for tuning algorithms and parameters with "trafos" :
  we always return the optimal settings on the transformed scale, but in the opt.path in
  the original scale.
- fix a bug when feature filtering resulted in a NoFeatureModel
- resample now returns a data.frame "err.mgs" or error messages that might have occurred during resampling
- stratified resampling for survival

- new learners:
-- classif.cforest
-- classif.glmnet
-- classif.plsdaCaret
-- regr.cforest
-- regr.glmnet
-- regr.svm
-- surv.cforest
-- cluster.SimpleKMeans
-- cluster.EM
-- cluster.XMeans

- new measures
-- bac
-- db, dunn, g1, g2, silhouette

- new functions
-- makeClusterTask
-- removeHyperPars
-- tuneParamsMultiCrit
-- makeTuneMultiCritControlGrid, makeTuneMultiCritControlRandom, makeTuneMultiCritControlNSGA2
-- plotTuneMultiCritResult
-- getFailureModelMsg

mlr_2.0:
- mlr now supports survival analysis models (experimental)
- mlr now supports cost-sensitive learning with example-specific costs (experimental)
- Some example tasks and data sets were added for simple access
- added FeatSelWrapper and getFeatSelResult
- performance functions now allows to compute multiple measures
- added multiclass.roc performance measure
- observation weights can now also be specified in the task
- added option on.learner.warning to configureMlr to suppress warnings in learners
- fixed a bug in stratified CV where elements where not distributed as evenly as possible
  when the split number did not divide the number of observation
- added class.weights param for classif.svm
- add fix.factors option to randomForest
- generic standard error estimation in randomForest and BaggingWrapper
- added fixup.data option to task constructors, so basic data cleanup can be performed
- show.info is now an option in configureMlr
- learners now support taggable properties that can be queried and changed. also see below.
- listLearners(forTask) was unified
- removed tuning via R' optim method (makeTuneControlOptim), as the optimizers in there really make
  no sense for tuning
- Grid search was improved so one does not have to discretize parameters manually anymore
  (although this is still possible). Instead one now passes a 'resolution' argument. Internally we
  now use ParamHelpers::generateGridDesign for this.
- toy tasks were added for convenient usage: iris.task, sonar.task, bh.task
  they also also have corresponding resampling instances, so you directly start working, e.g., iris.rin

- new learners:
-- classif.knn
-- classif.IBk
-- classif.LiblineaRBinary
-- classif.LiblineaRLogReg
-- classif.LiblineaRMultiClass
-- classif.linDA
-- classif.plr
-- classif.plsDA
-- classif.rrlda
-- regr.crs
-- regr.IBk
-- regr.mob
-- surv.CoxBoost
-- surv.coxph
-- surv.glmboost
-- surv.glmnet
-- surv.penalized
-- surv.randomForestSRC

- new measures
-- multiauc
-- cindex
--  meancosts, mcp

- new functions
-- removeConstantFeatures, normalizeFeatures, dropFeatures, createDummyFeatures
-- getTaskNFeats
-- hasProperties, getProperties, setProperties, addProperties, removeProperties
-- showHyperPars
-- setId
-- listMeasures
-- isFailureModel
-- plotLearnerPrediction
-- plotThreshVsPerf
-- holdout, subsample, crossval, repcv, bootstrapOOB, bootstrapB632, bootstrapB632plus
-- listFilterMethods, getFilterValues, filterFeatures, makeFilterWrapper, plotFilterValues
-- benchmark
-- getPerformances, getAggrPerformances, getPredictions, getFilterResult, getTuneResult, getFeatSelResult
-- oversample, undersample, makeOversampleWrapper, makeUndersampleWrapper
-- smote, makeSmoteWrapper
-- downsample, makeDownsampleWrapper
-- makeWeightedClassesWrapper
-- makeTuneControlGenSA
-- makeModelMultiplexer, makeModelMultiplexerParamSet
-- makeCostSensTask, makeCostSensClassifWrapper, makeCostSensRegrWrapper, makeCostsSensWeightedPairsLearner
-- makeSurvTask
-- impute, reimpute, makeImputeWrapper, lots of impute<Method>, makeImputeMethod

mlr_1.1:
- Initial release to CRAN
