MADlib Release Notes
--------------------

These release notes contain the significant changes in each MADlib release,
with most recent versions listed at the top.

A complete list of changes for each release can be obtained by viewing the git
commit history located at https://github.com/apache/madlib/commits/master.

Current list of bugs and issues can be found at https://issues.apache.org/jira/browse/MADLIB.

—-------------------------------------------------------------------------
MADlib v1.17.0:

Release Date: 2020-Mar-31

New features
    - DL: Add optional params to madlib_keras_fit_multiple_model (MADLIB-1397)
    - DL: Fit and evaluate changes for asymmetric cluster config (MADLIB-1393)
    - DL: Make param search fit() function work with existing evaluate and predict (MADLIB-1387)
    - DL: ParamSearch: Add utility function for generating model selection table (MADLIB-1375)
    - DL: Predict changes for asymmetric cluster config (MADLIB-1394)
    - DL: Preprocessor should evenly distribute data on an arbitrary number of segments (MADLIB-1378)
    - DL: Preprocessor support for asymmetric segment distribution (MADLIB-1392)
    - DL: Remove model_arch_table column from the output of load_model_selection_table (MADLIB-1381)
    - DL: Support DL predict without training on MADlib (MADLIB-1359)
    - DL: Transfer learning for multi-model (MADLIB-1389)
    - Kmeans: Add simple silhouette score for every point (MADLIB-1382)
    - Kmeans: Select number of centroids in k-means (MADLIB-1380)
    - PostgreSQL 12 support (MADLIB-1391)

Improvements:
    - Assoc rules: Add option to set number of posterior in association rules (MADLIB-1327)
    - Correlation: Improve correlation and covariance memory usage with large number of groups (MADLIB-1301)
    - DL: helper function for asymmetric cluster config (MADLIB-1390)
    - DL: Mini-batch preprocessor for images - performance issue (MADLIB-1342)
    - DL: Modify warm start logic for DL to handle case of missing weight (MADLIB-1400)
    - DL: Param search for multiple models on MPP architecture (MADLIB-1386)
    - DL: performance improvements to fit transition function (MADLIB-1418)
    - Docs: Enhance Installation Guides (MADLIB-1399)
    - Graph: SSSP should not show vertices in output table that are unreachable (MADLIB-1415)
    - Knn - add zero check and output distance array (MADLIB-1370)
    - LDA: Add stopping criteria on perplexity to LDA (MADLIB-1351)
    - Summary: Last optional param in summary errors when NULL (MADLIB-1413)
    - Summary: Summary function has dups for MFV for approximate results (MADLIB-1412)
    - SVM: Change default num_components for SVM to max(100, 2*num_features) (MADLIB-1384)

Bug fixes:
    - DL: Deep Learning module does not work with tables in non-public schemas (MADLIB-1388)
    - DL: Exception during madlib_keras_fit when model_arch_id is passed as NULL (MADLIB-1371)
    - DL: fit and fit multiple fail with memory exception in gpdb6 (MADLIB-1405)
    - DL: fit multiple takes up unnecessary disk space (MADLIB-1406)
    - DL: Intermediate tables are not dropped  (MADLIB-1404)
    - DL: MADlib Keras operations create too many threads (MADLIB-1372)
    - DL: metrics_elapsed_time for fit multi_model not captured correctly (MADLIB-1403)
    - DL: predict fails with OOM in gpdb6 (MADLIB-1414)
    - DL: Remove final function for fit multiple (MADLIB-1416)
    - DL: Support schema qualified output tables for fit and fit_multiple (MADLIB-1417)
    - Graph: APSP fails if both vertex id column and edge src column has the same name (MADLIB-1407)
    - Graph: ASPS Path Function fails if src or dest column type is bigint (MADLIB-1408)
    - Graph: Graph/wcc fails if the user specifies a schema for the output table (MADLIB-1411)
    - Kmeans: k-means related functions must use same default distance function (MADLIB-1383)
    - LDA: Term frequency and LDA - turn off notices (MADLIB-1395)
    - MADlib cannot be built on PowerPC machines with Linux (MADLIB-1410)
    - Pivot:  Pivot documentation should say "out_table" instead of "output_table" (MADLIB-1376)

Other:
    - DL: Support up to Keras version 2.2.4, Tensorflow version 1.14
    - DL: If 'madlib_keras_fit_multiple_model()' is running on GPDB 5 and some versions of GPDB 6, the database will keep adding to the disk space (in proportion to model size) and will only release the disk space once the fit multiple query has completed execution. This is not the case for GPDB 6.5.0+ where disk space is released during the fit multiple query.
    - DL: CUDA GPU memory cannot be released until the process holding it is terminated.  This process holds the GPU memory until one of the following two things happen: query finishes and user logs out of the Postgres client/session; or, query finishes and user waits for the timeout set by `gp_vmem_idle_resource_timeout`. The default value for this timeout in Greenplum is 18 sec, but it can be changed.
    - DL: pg_temp is not allowed as an output table schema for madlib_keras_fit_multiple_model().
    - Build: Enable current versions of bison
    - Build: Add cmake variable for gppkg filename
    - Build: Add pull request template


—-------------------------------------------------------------------------
MADlib v1.16:

Release Date: 2019-Jul-02

New features:
    - Deep learning: support for Keras with TensorFlow backend with GPU acceleration (MADLIB-1268, MADLIB-1304, MADLIB-1305, MADLIB-1307, MADLIB-1308, MADLIB-1309, MADLIB-1310, MADLIB-1311, MADLIB-1313, MADLIB-1314, MADLIB-1315, MADLIB-1316, MADLIB-1319, MADLIB-1321, MADLIB-1326, MADLIB-1330, MADLIB-1335, MADLIB-1336, MADLIB-1338, MADLIB-1343, MADLIB-1348, MADLIB-1349, MADLIB-1350, MADLIB-1356, MADLIB-1357, MADLIB-1358, MADLIB-1324, MADLIB-1337, MADLIB-1347, MADLIB-1363)
    - Deep learning: utility to load model architectures and weights (MADLIB-1306)
    - Deep learning: preprocess images for gradient descent optimization algorithms (MADLIB-1290, MADLIB-1332, MADLIB-1334, MADLIB-1300, MADLIB-1303)
    - kd-tree method for k-nearest neighbors for faster approximate solution (MADLIB-1061, MADLIB-1293)
    - Support for Greenplum 6 (MADLIB-1298)
    - Support for PostgreSQL 11 (MADLIB-1283)

Bug fixes:
    - Jaccard distance not releasing memory (MADLIB-1291)
    - MLP with minibatching fails on postgres (MADLIB-1302)
    - MLP does not stop even after tolerance reached (MADLIB-1325)
    - MLP warm start not working (MADLIB-1329)
    - MLP with minibatch fails for integer dependent variable on PostgreSQL (MADLIB-1322)
    - MLP fix column name in output table (MADLIB-1323)
    - Pivot: Fix array_agg + distinct scaling issue on gpdb (MADLIB-1361)
    - linregr_train fails when dependent variable is a JSONB element (MADLIB-1284)
    - MADLib 1.15 does not recognize Postgres 10 declarative partitioned table (MADLIB-1287)
    - Encoding module is not handling bigint properly (MADLIB-1295)
    - SVM class_weight param not working properly (MADLIB-1346)

Other:
    - Simplify maintenance via removing online examples from sql functions (MADLIB-1260)
    - Improve performance for weakly connected components (MADLIB-1320)
    - SVD minor messaging inprovements (MADLIB-983)
    - Create SQL scripts to get lists of changed UDOs and UDOCs (MADLIB-1281)
    - Set max itemset size to 10 by default in assoc rules (MADLIB-1288)
    - Misc messages for 1.16 release (MADLIB-1364)
    - Madlib 1.16 release tasks (MADLIB-1362)


—-------------------------------------------------------------------------
MADlib v1.15.1:

Release Date: 2018-Oct-15

New features:
    - Add ubuntu support for MADlib (MADLIB-1256).
    - Elastic Net: Add grouping by non-numeric column support (MADLIB-1262).
    - KNN: Accept expressions for point_column_name and test_column_name (MADLIB-1060).
    - Vec2Cols: Allow arrays of different lengths (MADLIB-1270).
    - Madpack: Add a script for automating changelist creation.

Bug fixes:
    - Allocator: Remove 16-byte alignment in GPDB 6.
    - Build: Download compatible Boost if version >= 1.65 (MADLIB-1235).
    - Build: Remove primary key constraint in IC/DC.
    - CMake: Fix false positive for Postgres 10+ check.
    - Graph: Add id of nodes with 0 in-degree (MADLIB-1279).
    - Margins: Copy summary table instead of renaming (MADLIB-1276).
    - MLP: Simplify momentum and Nesterov updates (MADLIB-1272).
    - Upgrade: Fix issue with upgrading RPM to 1.15.1 (MADLIB-1278).
    - Utilities: Use plpy.quote_ident if available.

Others:
    - Simplify maintenance via removing online examples from sql functions (MADLIB-1260).
    - Re-enable PCA and PageRank tests (MADLIB-1264).
    - Build: Disable AppendOnly if available ( MADLIB-1273).
    - Improve documentation of various modules.


—-------------------------------------------------------------------------
MADlib v1.15:

Release Date: 2018-Aug-15

New features:
* MLP: Added momentum and Nesterov's accelerated gradient methods to gradient
updates (MADLIB-1210).
* New modules:
    - drop_cols: Create new table from an existing table (CTAS) using an
        expression of column names (MADLIB-1241).
    - cols2vec: Create an array from multiple columns (similar to ARRAY[...]
        with columns obtained using an expression) (MADLIB-1239).
    - vec2cols: Create multiple columns from an existing array (MADLIB-1240).
* Statistics: Added grouping support to correlation and covariance
functions (MADLIB-1128).
* DT/RF:
    - Added impurity importance values in DT and RF (MADLIB-1205, 1246, 1249).
    - Added a new function (get_var_importance) to report importance values
        in an cleaner interface (MADLIB-925).
* Madpack:
    - Refactored and updated the installation scripts to ensure install,
reinstall, install-check are all run from a single SQL file as an atomic
operation (MADLIB-1242).
    - Moved most of install-check operations to a new "dev-check", making
install-check smaller and faster to run.
    - Added new option to run unit-tests (MADLIB 1251, 1252).


Bug fixes:
    - Fixed an ABI issue that prevented compiling MADlib on GCC 5+
        (MADLIB-1025).
    - Decision trees:
        - Fixed a minor bug that prevented sparse vector to float8[]
            (MADLIB-1234).
        - Fixed a bug that led to dependent type being obtained from a NULL
            value (MADLIB-1233).
        - Summary table has been updated to ensure correct feature names are
            populated (MADLIB-1236).
        - Fixed incorrect indexing of trueChild and falseChild in surrogate
            agreement calculation.
        - Removed categorical variable elimination to avoid issues with varying
            categorical variables for different groups (MADLIB-1258, 1254).
    - Logregr: Fixed issue where an output table could be empty for grouping
        (MADLIB-1172).
    - Added special characters support for multiple modules
        (MADLIB-1237, 1238, 1243).
    - Build: Removed invalid symlinks left behind after an uninstall
        (MADLIB-1175).
    - Updated SVM to correctly report loss per row instead of total loss.
    - Refactored internal CV function to fix multiple issues with cross
        validation on SVM (MADLIB-1250).
    - Worked-around a "cache lookup" issue that prevented dropping of
        install-check user (MADLIB-1014).
    - Pagerank: Removed duplicate entries from grouping output
        (MADLIB-1229, 1253).
    - Madpack: Install-check user is dropped even after an IC failure
        (MADLIB-1182).

Others:
    - Removed HAWQ support from all modules

—-------------------------------------------------------------------------
MADlib v1.14:

Release Date: 2018-April-28

New features:
* New module - Balanced datasets: A sampling module to balance classification
    datasets by resampling using various techniques including undersampling,
    oversampling, uniform sampling or user-defined proportion sampling
    (MADLIB-1168)
* Mini-batch: Added a mini-batch optimizer for MLP and a preprocessor function
    necessary to create batches from the data (MADLIB-1200, MADLIB-1206,
    MADLIB-1220, MADLIB-1224, MADLIB-1226, MADLIB-1227)
* k-NN: Added weighted averaging/voting by distance (MADLIB-1181)
* Summary: Added additional stats: number of positive, negative, zero values and
    95% confidence intervals for the mean (MADLIB-1167)
* Encode categorical: Updated to produce lower-case column names when possible
    (MADLIB-1202)
* MLP: Added support for already one-hot encoded categorical dependent variable
    in a classification task (MADLIB-1222)
* Pagerank: Added option for personalized vertices that allows higher weightage
    for a subset of vertices which will have a higher jump probability as
    compared to other vertices and a random surfer is more likely to
    jump to these personalization vertices (MADLIB-1084)

Bug fixes:
    - Fixed issue with invalid calls of construct_array that led to problems
    in Postgresql 10 (MADLIB-1185)
    - Added newline between file concatenation during PGXN install (MADLIB-1194)
    - Fixed upgrade issues in knn (MADLIB-1197)
    - Added fix to ensure RF variable importance are always non-negative
    - Fixed inconsistency in LDA output and improved usability
        (MADLIB-1160, MADLIB-1201)
    - Fixed MLP and RF predict for models trained in earlier versions to
        ensure missing optional parameters are given appropriate default values
        (MADLIB-1207)
    - Fixed a scenario in DT where no features exist due categorical columns
        with single level being dropped led to the database crashing
    - Fixed step size initialization in MLP based on learning rate policy
        (MADLIB-1212)
    - Fixed PCA issue that leads to failure when grouping column is a TEXT type
        (MADLIB-1215)
    - Fixed cat levels output in DT when grouping is enabled (MADLIB-1218)
    - Fixed and simplified initialization of model coefficients in MLP
    - Removed source table dependency for predicting regression models in MLP
        (MADLIB-1223)
    - Print loss of first iteration in MLP (MADLIB-1228)
    - Fixed MLP failure on GPDB 4.3 when verbose=True (MADLIB-1209)
    - Fixed RF issue that showed up when var_importance=True with no continuous
        features (MADLIB-1219)
    - Fixed DT/RF issue for null_as_category=True and grouping enabled
        (MADLIB-1217)

Other:
    - Reduced install-check runtime for PCA, DT, RF, elastic net (MADLIB-1216)
    - Added CentOS 7 PostgreSQL 9.6/10 docker files

—-------------------------------------------------------------------------
MADlib v1.13:

Release Date: 2017-December-22

New features:
* New module: Graph - HITS (MADLIB-1124, MADLIB-1151)
* k-NN:
    - Added additional distance metrics (MADLIB-1059)
    - Added list of neighbors in output table (MADLIB-1129)
* MLP: Added grouping support (MADLIB-1149)
* Cross Validation: Improved the stats reporting in output table (MADLIB-1169)
* Correlation: Improved quality of results by ignoring only a NULL value and
    not the whole row containing the NULL (MADLIB-1166)

Bug fixes:
    - Fixed issue with Decision Trees (DT) trained in older versions not
        being usable in predict of v1.12 (MADLIB-1161)
    - Fixed invalid assert statement in DT (MADLIB-1164)
    - Improved feature array handling in DT (MADLIB-1173)
    - Fixed install-check failures on non-default schema installation (MADLIB-1177, 1184)

Other:
    - Updated PyXB from 1.2.4 to 1.2.6. (MADLIB-1103)
        This change eliminates the need to remove part of PyXB code base as a
        GPL-workaround.
    - Updated the naming for gppkg (MADLIB-1183)

—-------------------------------------------------------------------------
MADlib v1.12:

Release Date: 2017-August-18

New features:
* New module: Graph - All Pairs Shortest Path (MADLIB-1072, MADLIB-1099, MADLIB-1106)
* New module: Graph - Weakly Connected Components (MADLIB-1071, MADLIB-1083, MADLIB-1101)
* New module: Graph - Breadth First Search (MADLIB-1102)
* New module: Graph - Measures (MADLIB-1073)
* New Module: Sample - Stratified Sampling (MADLIB-986)
* New Module: Sample - Train-test split (MADLIB-1119)
* New Module: Multilayer Perceptron (MADLIB-413, MADLIB-1134)
* DT and RF:
    - Allow expressions in feature list (MADLIB-1087)
    - Allow array input for features (MADLIB-965)
    - Filter NULL dependent values in OOB (MADLIB-1097)
    - Add option to treat NULL as category
* Summary:
    - Allow user to determine the number of columns per run (MADLIB-1117)
    - Improve efficiency of computation time by ~35% (MADLIB-1104)
* Sketch:
    - Promote cardinality estimators to top level module from early stage (MADLIB-1120)
* Add basic code coverage support (MADLIB-1138)
* Updates for Apache Top Level Project readiness (MADLIB-1112, MADLIB-1130, MADLIB-1133, MADLIB-1142)

Bug fixes:
    - DT and RF:
        - Fix array to string conversion with CV
        - Include NULL rows in count for termination check
    - Sketch:
        - Remove per-tuple checks for better performance
    - PageRank:
        - Fix multiple bugs and perf issue in grouping (MADLIB-1100, MADLIB-1107)
    - Kmeans:
        - Fix IC drop table statements
    - Graph:
        - Fix quoted output table name bug (MADLIB-1137)
        - Fix empty string arguments bug
    - Elastic Net:
        - Fix the data scaling bug with normalization (MADLIB-1094)
        - Reduce the tolerance for a faster IC test (MADLIB-1118)
    - Control:
        - Update 'optimizer' GUC only if editable (MADLIB-1109)

Other:
    - Build: Add CDATA block to avoid invalid xml
    - Multiple user documentation improvements

—-------------------------------------------------------------------------
MADlib v1.11:

Release Date: 2017-May-05

New features:
* New module: Graph - PageRank
    - Implements the original PageRank algorithm that assumes a random surfer model
      (https://en.wikipedia.org/wiki/PageRank#Damping_factor) (MADLIB-1069)
    - Grouping support is included for PageRank (MADLIB-1082)
* Graph - Single Source Shortest Path (SSSP): Add grouping support (MADLIB-1081)
* Pivot: Add support for array and svec output types (MADLIB-1066)
* DT and RF:
    - Change default values for 2 parameters (max_depth and num_splits)
    - Reduce memory footprint: Assign memory only for reachable nodes (MADLIB-1057)
    - Include rows with NULL features in training (MADLIB-1095)
    - Update error message for invalid parameter specification (num_splits)
* Array Operations: Add function to unnest 2-D arrays by one level into rows
    of 1-D arrays (MADLIB-1086)
* Build process on Apache infrastructure (MADLIB-920, MADLIB-1080)
* Updates for Apache Top Level Project readiness (MADLIB-1022, MADLIB-1076,
    MADLIB-1077, MADLIB 1090)
* Support for GPDB 5.0

Bug fixes:
    - DT and RF:
        - Fix accuracy issues related to integer categorical variables and tree depth
        - Improve visualization of tree(s)
    - Elastic Net:
        - Fix install check on GPDB 5.0 and HAWQ 2.2 (MADLIB-1088)
        - Fix inconsistent results with grouping (MADLIB-1092)
    - PCA: Fix install check

Other:
    - PMML: Skip install check when run without the ‘-t’ option (MADLIB-1078)
    - Multiple user documentation improvements

—-------------------------------------------------------------------------
MADlib v1.10.0

Release Date: 2017-February-17

New features:
* New module: Graph - Single Source Shortest Path (SSSP) (MADLIB-992)
    - Calculate the shortest path from a given vertex to every vertex in the graph.
* New module: Encode categorical variables (MADLIB-1038)
    - Completely new version for dummy/one-hot encoding of categorical variables
        with new name and different arguments.
    - Previous version has been deprecated.
* New module (early stage): K-Nearest Neighbors (KNN) (MADLIB-927)
    - Find the k nearest neighbors based on the squared_dist_norm2 metric.
* Elastic Net: Add grouping support (MADLIB-950)
    - Elastic net train for both Gaussian and Binomial models, with FISTA
    and IGD optimizations support grouping.
    - Use active sets for FISTA, but active sets are used only after the
    log-likelihood of all the groups becomes 0.
* Elastic Net: Add cross validation (MADLIB-996)
* PCA: Add grouping support (MADLIB-947)
* PCA: Removed column id restriction.
* Kmeans: Cluster variance for PivotalR support.
* Kmeans: Support for array input. (MADLIB-1018)
* DT and RF: Verbose option for the dot output format. (MADLIB-1051)
* Association Rules: Add rule counts and limit itemset size feature
    (MADLIB-1044, MADLIB-1031)
* Boost library has been upgraded from 1.47 to 1.61
* Multiple improvements to the build system (madpack, cmake etc.) to support
    Semantic versioning and various versions of GPDB and HAWQ.

Bug fixes:
    - Pivot: Adjust the warning level to remove redundant messages.
    - RF: Fix the online help and examples.
    - Utilities: Fix incorrect flag for distribution.
    - Install check: Update date format and remove hardcoded schema names.
    - Multiple user documentation improvements.

—-------------------------------------------------------------------------
MADlib v1.9.1

Release Date: 2016-August-25

New features:
* New function: One class SVM (MADLIB-990)
    - Added a one-class SVM that classifies new data as similar or different to
      the training set.
    - This method is an unsupervised method that builds a decision boundary
      between the data and origin in kernel space and can be used as a novelty
      detector.
* SVM: Added functionality to assign weights to each class, simplying
  classification of unbalanced data. (MADLIB-998)
* New function: Prediction metrics (MADLIB-907)
    Added a collection of summary statistics to gauge model accuracy based on
    predicted values vs. ground-truth values.
* New function: Sessionization (MADLIB-909, MADLIB-1001)
    Added a sessionize function to perform session reconstruction on a data
    set so it can be prepared for input into other algorithms such as
    path functions or predictive analytics algorithms.
* New function: Pivot (MADLIB-908, MADLIB-1004)
    Added a function to that can do basic OLAP type operations on data stored
    in one table and output the summarized data to a second table.
* Path: Major performance improvement (MADLIB-984)
* Path: Add support for overlapping patterns (MADLIB-995)
* Build: Add support for PG 9.5 and 9.6 (MADLIB-944)
* PGXN: Update PostgreSQL Extension Network to latest release (MADLIB-959)

Bug fixes:
    - Random Forest: Fix filtered feature related bug (MADLIB-928)
    - Elastic Net: Skip arrays with NULL values in train (MADLIB-978)
    - Matrix: Fix starting index in extract functions (MADLIB-1006)
    - Path: Allow multiple expressions in partition expression (MADLIB-1003)
    - DT: Fix bin computation for boolean features (MADLIB-1011)
    - Multiple user documentation improvements (MADLIB-1001)

—-------------------------------------------------------------------------
MADlib v1.9

Release Date: 2016-April-04

New features:
* New module: Path
    - Perform pattern matching over a sequence of rows and extracts useful
      information about the pattern matches.
    - Useful in a wide variety of use cases: on-line shopping, predictive
      maintenance, cyber security, IoT, customer churn, etc.
    - Define arbitrarily complex symbols to identify rows of interest.
    - Perform regular pattern matching of symbols over a sequence of ordered partitions.
    - Extract useful information about the pattern matches (counts,
        aggregations, window functions).
* New module: Support Vector Machines (SVM)
    - Complete rewrite of SVM algorithm to improve accuracy and performance.
    - Support for classification and regression.
    - Support for non-linear kernels (Gaussian and Polynomial).
    - Cross validation support on parameters: lambda, epsilon, initial step size,
      maximum iterations, and decay factor.
* New module: Stemmer function
    - Compute the root of any English text input using Porter2 stemming algorithm.
* New matrix operations (Phase 2)
    - Added following operations/functions for dense and sparse matrices:
        - Representation: get matrix dimensions
        - Extraction/visitor methods: extract diagonal elements
        - Reduction operations: compute matrix norm
        - Creation methods: initialize with ones, initialize with zeros,
          square identity matrix, diagonal matrix, sample from distribution
          (Normal, Uniform, Bernoulli)
        - Decomposition operations: inverse, generic inverse, eigen extraction,
          Cholesky decomposition, QR decomposition, LU decomposition, nuclear norm, rank
* Pearson's correlation module: added option to return the covariance matrix
* PCA: added option to use proportion of variance to determine number of
    principle components to return (MADLIB-948)
* PivotalR support for Latent Dirichlet Allocation (LDA)
* Quotation and international character support (Phase 2)
    - All modules now support table and column names that are quoted and
      contain international characters. This release adds support for:
        - Cross Validation
        - Dense Linear Systems
        - Sparse Linear Systems
        - Low-rank Matrix Factorization
        - Conditional Random Field
        - Hypothesis Tests
        - Support Modules/Data Preparation
        - Support Modules/PMML Export
        - ARIMA
* New platform:
    - Added support for HAWQ 2.0
* Miscellaneous:
    - Updated documentation and more examples
    - Term frequency: added support for custom column names
    - Updated licensing files and headers to comply with ASF regulations

Bug fixes:
    - Elastic Net: Skips arrays with NULL values in predict (MADLIB-919)
    - Hello World example: Fixed 'this' pointer errors (MADLIB-967)
    - Hypothesis tests: Fixed docs and examples (MADLIB-895)
    - Matrix: Fixed inconsistent type in drop statements
    - Decision Tree: Fixed format specifier in online help (MADLIB-968)
    - Minor: Updated volatile install-check
    - LDA: Fixed the padding for LDA model
    - Decision tree: Fixed to cast count(*) output to long (MADLIB-917)
    - Validation: Fixed varchar array error in install-check
    - Matrix: Fixed multiple input/output issues (MADLIB-932)
    - Matrix: Fixed minor issue with sparse LU output
    - Summary: Fixed the case for unquoted table names by moving the compare to
        SQL (MADLIB-954)
    - Correlation: Fixed to return columns sorted in ordinal position. (MADLIB-941)
    - Elastic Net: Removed the enforcement of same numeric type while keeping the
      error for non-numeric types. (MADLIB-952)
    - K-means: Fixed the error caused by a null value in the matrix or vector.
        (MADLIB-946)

--------------------------------------------------------------------------------
MADlib v1.8

Release Date: 2015-July-17

New features:
* Improved Latent Dirichlet Allocation (LDA) Performance
    - Function lda_train() is about twice as fast.
    - Improved the scalability of the function
      (vocabulary size x number of topics can be up to 250 million).
* New module: Matrix operations
    Added the following operations/functions for dense and sparse matrices:
    - Mathematical operations: addition, subtraction, multiplication,
      element-wise multiplication, scalar and vector multiplication.
    - Aggregation operations: apply various operations including
      max, min, sum, mean along a specified dimension.
    - Visitor methods: extract row/column from matrix.
    - Representation: convert a matrix to either dense or sparse representation.
* Quotation and International Character Support
    - Most modules now support table and column names that are quoted and
      contain international characters, including:
        - Regression models (GLMs, linear regression, elastic net, etc.)
        - Decision trees and random forests
        - Unsupervised learning models (association rules, k-means, LDA, etc.)
        - Summary, Pearson's correlation, and PCA
* Array Norms and Distances
    - Generic p-norm distance
    - Jaccard distance
    - Cosine similarity
* Text Analysis:
    - Text utility for term frequency and vacabulary construction (prepares
      documents for input to LDA).
* Miscellaneous
    - Improved organization of User and Developer guide at doc.madlib.net/latest.
    - Low-rank matrix factorization: added 32-bit integer aupport (MADLIB-903).
    - Cross-validation: added classification support (MADLIB-908).
    - Added a new clean-up function for removing MADlib temporary tables.

Note:
- LDA models that are trained using MADlib v1.7.1 or earlier need to be
  re-trained to be used in MADlib v1.8.

Known issues:
- Performance for decision tree with cross-validation is poor on a HAWQ
  multi-node system.

--------------------------------------------------------------------------------
MADlib v1.7.1

Release Date: 2015-March-18

New features:
* Random Forest Performance Improvement
    - Function forest_train() is 1.5X ~ 4X faster without variable importance,
      and up to 100X faster with variable importance
    - Function forest_predict() is up to 10X faster when type='response'
    - Allow user-specified sample ratio to train with a small subsample
* Gaussian Naive Bayes: allow continuous variables
* K-Means: Allow user-specified sample ratio for K-means++ seeding
* Miscellaneous
    - Array functions: array_square() for element-wise square, madlib.sum()
      for array element-wise aggregation
    - Madpack does not require password when not necessary (MADLIB-357)
    - Platform support of PostgreSQL 9.4 and HAWQ 1.3
    - Allow views and materialized views for training functions
    - Support quantile computation in summary functions for HAWQ and PG 9.4

Bug fixes:
- Fixed the support of multiple parameter values and NULL in general
  cross-validation (MADLIB-898, MADLIB-896)
- Fixed infinite loop when detecting recursive view-to-view dependencies for
  upgrading (MADLIB-901)
- Allow user-specified column names in PCA and multinom_predict()

Known issues:
- Performance for decision tree with cross-validation is poor on a HAWQ
  multi-node system.

--------------------------------------------------------------------------------
MADlib v1.7

Release Date: 2014-December-31

New features:
* Generalized Linear Model:
    - Added a new generic module for GLM functions that allow for response
    variables that have arbitrary distributions (rather than simply
    Gaussian distributions), and for an arbitrary function of the response
    variable (the link function) to vary linearly with the predicted values
    (rather than assuming that the response itself must vary linearly).
    - Available distribution families: gaussian (link functions: identity,
    inverse and log), binomial (link functions: probit and logit),
    poisson (link functions: log, identity and square-root), gamma (link
    functions: inverse, identity and log) and inverse gaussian (link functions:
    square-inverse, inverse, identity and log).
    - Deprecated 'mlogregr_train' in favor of 'multinom' available as part of
    the new GLM functionality.
    - Added a new 'ordinal' function for ordered logit and probit regression.
* Decision Tree: Reimplemented the decision tree module which includes following
changes:
    - Improved usability due to a new interface.
    - Performance enhancements upto 40 times faster than the old interface.
    - Additional features like pruning methods, surrogate variables for
    NULL handling, cross validation, and various new tree tuning parameters.
    - Addition of a new display function to visualize the trained tree and new
    prediction function for scoring of new datasets.
* Random Forest: Reimplemented the random forest module which includes following
changes:
    - New random forest module based on the new decision tree module.
    - Better variable importance metrics and ability to explore each tree
    in the forest independently.
    - Ability to get class probabilities of all classes and not just the max
    class during prediction.
    - Improved visualization with export capabilities using Graphviz dot format.
* PMML:
    - Upgraded compatible PMML version to 4.1.
    - Moved PMML export out of early stage development with new functionality
    available to export GLM, decision tree, and random forest models.
* Updated Eigen from 3.1.2 to 3.2.2.
* Updated PyXB from 1.2.3 to 1.2.4.
* Added finer granularity control for running specific install-check tests.

Bug fixes:
- Fixed bug in K-means allowing use of user-defined metric functions
(MADLIB-874, MADLIB-875).
- Fixed issues related to header files included in the build system
(MADLIB-855, MADLIB-879, MADLIB-884).

Known issues:
- Performance for decision tree with cross-validation is poor on a HAWQ
multi-node system.

--------------------------------------------------------------------------------
MADlib v1.6

Release Date: 2014-June-30

New features:
- Added a new unified 'margins' function that computes marginal effects for
linear, logistic, multilogistic, and cox proportional hazards regression. The
new function also introduces support for interaction terms in the independent
array.
- Updated convergence for 'elastic_net_train' by checking the change in the
loglikelihood instead of the l2-norm of the change in coefficients. This allows
for faster convergence in problems with multiple optimal solutions.
The default threshold for convergence has been reduced from 1e-4 to 1e-6.
- Added a new helper function to convert categorical variables to indicator
variables which can be used directly in regression methods. The function
currently only supports dummy encoding.
- Improved performance for cox proportional hazards: average improvement of
20 fold on GPDB and 2.5 fold on HAWQ.
- Improved performance on ARIMA by 30%.
- Added new functionality to export linear and logistic regression models as a
PMML object. The new module relies on PyXB to create PMML elements.
- Added a function ('array_scalar_add') to 'add' a scalar to an array.
- Added 'numeric' type support for all functions that take 'anyarray' as
argument.
- Made usability and aesthetic enhancements to documentation.

Bug Fixes:
- Prepended python module name to sys.path before executing madlib function
to avoid conflicts with user-defined modules.
- Added a check in K-Means to ensure dimensionality of all data points are
the same and also equal to the dimensionality of any provided initial centroids
(MADLIB-713, MADLIB-789).
- Added a check in multinomial regression to quit early and cleanly if model
size is greater than the maximum permissible memory (MADLIB-667).
- Fixed a minor bug with incorrect column names in the decision trees module
(MADLIB-763).
- Fixed a bug in Kmeans that resulted in incorrect number of centroids for
particular datasets (MADLIB-857).
- Fixed bug when grouping columns have same name as one of the output table
column names (MADLIB-833).

Deprecated Functions:
- Modules profile and quantile have been deprecated in favor of the 'summary'
function.
- Module 'svd_mf' has been deprecated in favor of the improved 'svd' function.
- Functions 'margins_logregr' and 'margins_mlogregr' have been deprecated in
favor of the 'margins' function.

--------------------------------------------------------------------------------
MADlib v1.5

Release Date: 2014-Mar-05

New features:
- Added a new port 'HAWQ'. MADlib can now be used with the Pivotal
Distribution of Hadoop (PHD) through HAWQ
(see http://www.gopivotal.com/big-data/pivotal-hd for more details).
- Implemented performance improvements for linear and logistic predict functions.
- Moved Conditional Random Fields (CRFs) out of early stage development, and
updated the design and APIs for to enable ease of use and better functionality.
API changes include lincrf replaced by lincrf_train, crf_train_fgen and
crf_test_fgen with updated arguments, and format of segment tables.
- Improved linear support vector machines (SVMs) by enabling iterations, and
removed lsvm_predict and svm_predict, which are not useful in GPDB and HAWQ.
- Added new functions, with improved performance compared to svec_sfv, for
document vectorization into sparse vectors.
- Removed the bool-to-text cast and updated all functions depending on it to
explicitly convert variable to text.
- Added function properties for all SQL functions to allow the database optimizer
to make better plans.

Bug Fixes:
- Set client_min_messages to 'notice' during database installation to ensure
that log messages don't get logged to STDERR.
- Fixed elastic net prediction to predict using all features instead of just
the selected features to avoid an error when no feature is selected as relevant
in the trained model.
- For corner probability values, p=0 and p=1, in bernoulli and binomial
distributions, the quantile values should be 0 and num_of_trials (=1 in the case
of bernoulli) respectively, independent of the probability of success.
- Changed install script to explicitly use /bin/bash instead of /bin/sh to avoid
problems in Ubuntu where /bin/sh is linked to 'dash'.
- Fixed issue in Elastic Net to take any array expression as input instead of
specifically expecting the expression 'ARRAY[...]'.
- Fixed wrong output in percentile of count-min (CM) sketches.

Known issues:
- Elastic net prediction wrapper function elastic_net_prediction is not
available in HAWQ. Instead, prediction functionality is available for both
families via elastic_net_gaussian_predict and elastic_net_binomial_predict.
- Distance metrics functions in K-Means for the HAWQ port are restricted to the
in-built functions, specifically squaredDistNorm2, distNorm2, distNorm1,
distAngle, and distTanimoto.
- Functions in Quantile and Profile modules of Early Stage Development are not
available in HAWQ. Replacement of these functions is available as built-in
functions (percentile_cont) in HAWQ and Summary module in MADlib, respectively.

--------------------------------------------------------------------------------
MADlib v1.4.1

Release Date: 2013-Dec-13

Bug Fixes:
- Fixed problem in Elastic Net for 'binomial' family if an 'integer' column was
passed for dependent variable instead of a 'boolean' column.
- '*' support in Elastic Net lacked checks for the columns being combined. Now
we check if the column for '*' is already an array, in which case we don't wrap
it with an 'array' modifier. If there are multiple columns we check that they
are of the same numeric type before building an array.
- Fixed a software regression in Robust Variance, Clustered Variance and
Marginal Effects for multinomial regression introduced in v1.4 when
output table name is schema-qualified.
- We now also support schema-qualified output table prefixes for SVD and PCA.
- Added warning message when deprecated functions are run. Also added a list of
deprecated functions in the ReadMe.
- Added a Markdown Readme along with the text version for better rendering on
Github.

--------------------------------------------------------------------------------
MADlib v1.4

Release Date: 2013-Nov-25

New Features:
* Improved interface for Multinomial logistic regression:
    - Added a new interface that accepts an 'output_table' parameter and
    stores the model details in the output table instead of returning as a struct
    data type. The updated function also builds a summary table that includes
    all parameters and meta-parameters used during model training.
    - The output table has been reformatted to present the model coefficients
    and related metrics for each category in a separate row. This replaces the
    old output format of model stats for all categories combined in a
    single array.
* Variance Estimators
    - Added Robust Variance estimator for Cox PH models (Lin and Wei, 1989).
    It is useful in calculating variances in a dataset with potentially
    noisy outliers. Namely, the standard errors are asymptotically normal even
    if the model is wrong due to outliers.
    - Added Clustered Variance estimator for Cox PH models. It is used
    when data contains extra clustering information besides covariates and
    are asymptotically normal estimates.
* NULL Handling:
    - Modified behavior of regression modules to 'omit' rows containing NULL
    values for any of the dependent and independent variables. The number of
    rows skipped is provided as part of the output table.
    This release includes NULL handling for following modules:
        - Linear, Logistic, and Multinomial logistic regression, as well as
        Cox Proportional Hazards
        - Huber-White sandwich estimators for linear, logistic, and multinomial
        logistic regression as well as Cox Proportional Hazards
        - Clustered variance estimators for linear, logistic, and multinomial
        logistic regression as well as Cox Proportional Hazards
        - Marginal effects for logistic and multinomial logistic regression

Deprecated functions:
    - Multinomial logistic regression function has been renamed to
    'mlogregr_train'. Old function ('mlogregr') has been deprecated,
    and will be removed in the next major version update.

    - For all multinomial regression estimator functions (list given below),
    changes in the argument list were made to collate all optimizer specific
    arguments in a single string. An example of the new optimizer parameter is
    'max_iter=20, optimizer=irls, precision=0.0001'.
    This is in contrast to the original argument list that contained 3 arguments:
    'max_iter', 'optimizer', and 'precision'. This change allows adding new
    optimizer-specific parameters without changing the argument list.
    Affected functions:
        - robust_variance_mlogregr
        - clustered_variance_mlogregr
        - margins_mlogregr

Bug Fixes:
    - Fixed an overflow problem in LDA by using INT64 instead of INT32.
    - Fixed integer to boolean cast bug in clustered variance for logistic
    regression. After this fix, integer columns are accepted for binary
    dependent variable using the 'integer to bool' cast rules.
    - Fixed two bugs in SVD:
        - The 'example' option for online help has been fixed
        - Column names for sparse input tables in the 'svd_sparse' and
        'svd_sparse_native' functions are no longer restricted to 'row_id',
        'col_id' and 'value'.

--------------------------------------------------------------------------------
MADlib v1.3

Release Date: 2013-October-03

New Features:
* Cox Proportional Hazards:
    - Added stratification support for Cox PH models. Stratification is used as
    shorthand for building a Cox model that allows for more than one stratum,
    and hence, allows for more than one baseline hazard function.
    Stratification provides two pieces of key, flexible functionality for the
    end user of Cox models:
        -- Allows a categorical variable Z to be appropriately accounted for in
        the model without estimating its predictive impact on the response
        variable.
        -- Categorical variable Z is predictive/associated with the response
        variable, but Z may not satisfy the proportional hazards assumption
    - Added a new function (cox_zph) that tests the proportional hazards
    assumption of a Cox model. This allows the user to build Cox models and then
    verify the relevance of the model.
* NULL Handling:
    - Modified behavior of linear and logistic regression to 'omit' rows
    containing NULL values for any of the dependent and independent variables.
    The number of rows skipped is provided as part of the output table.

Deprecated functions:
    - Cox Proportional Hazard function has been renamed to 'coxph_train'.
    Old function names ('cox_prop_hazards' and 'cox_prop_hazards_regr')
    have been deprecated, and will be removed in the next major version update.
    - The aggregate form of linear regression ('linregr') has been deprecated.
    The stored-procedure form ('linregr_train') should be used instead.

Bug Fixes:
    - Fixed a memory leak in the Apriori algorithm.


--------------------------------------------------------------------------------
MADlib v1.2

Release Date: 2013-September-06

New Features:
* ARIMA Timeseries modeling
    - Added auto-regressive integrated moving average (ARIMA) modeling for
    non-seasonal, univariate timeseries data.
    - Module includes a training function to compute an ARIMA model and a
    forecasting function to predict future values in the timeseries
    - Training function employs the Levenberg-Marquardt algorithm (LMA) to
    compute a numerical solution for the parameters of the model. The
    observations and innovations for time before the first timestamp
    are assumed to be zero leading to minimization of the conditional sum of
    squares. This produces estimates referred to as conditional maximum likelihood
    estimates (also referred as 'CSS' in some statistical packages).
* Documentation updates:
    - Introduced a new format for documentation improving usability.
    - Upgraded to Doxygen v1.84.
    - Updated documentation improving consistency for multiple modules including
    Regression methods, SVD, PCA, Summary function, and Linear systems.
Bug fixes:
    - Checking out-of-bounds access of a 'svec' even if the size of svec is zero.
    - Fixed a minor bug allowing use of GCC 4.7 and higher to build from source.
--------------------------------------------------------------------------------
MADlib v1.1

Release Date: 2013-August-09

New Features:
* Singular Value Decomposition:
    - Added Singular Value Decomposition using the Lanczos bidiagonalization
    iterative method to decompose the original matrix into PBQ^t, where B is
    a bidiagonalized matrix. We assume that the original matrix is too big to
    load into memory but B can be loaded into the memory. B is then further
    decomposed into XSY^T using Eigen's JacobiSVD function. This restricts the
    number of features in the data matrix to about 5000.
    - This implementation provides SVD (for dense matrix), SVD_BLOCK (also for
    dense matrix but faster), SVD_SPARSE (convert a sparse matrix into a
    dense one, slower) and SVD_SPARSE_NATIVE (directly operate on the sparse
    matrix, much faster for really sparse matrices).

* Principal Component Analysis:
    - Added a PCA training function that generates the top-K principal
    components for an input matrix. The original data is mean-centered by the
    function with the mean matrix returned by the function as a separate table.
    - The module also includes the projection function that projects a test data
    set to the principal components returned by the train function.

* Linear Systems:
    - Added a module to solve linear system of equations (Ax = b).
    - The module utilizes various direct methods from the Eigen library for
    dense systems. Given below is a summary of the methods (more details at
    http://eigen.tuxfamily.org/dox-devel/group__TutorialLinearAlgebra.html):
        - Householder QR
        - Partial Pivoting LU
        - Full Pivoting LU
        - Column Pivoting Householder QR
        - Full Pivoting Householder QR
        - Standard Cholesky decomposition (LLT)
        - Robust Cholesky decomposition (LDLT)
    - The module also includes direct and iterative methods for sparse linear
    systems:
        Direct:
            - Standard Cholesky decomposition (LLT)
            - Robust Cholesky decomposition (LDLT)
        Iterative:
            - In-memory Conjugate gradient
            - In-memory Conjugate gradient with diagonal preconditioners
            - In-memory Bi-conjugate gradient
            - In-memory Bi-conjugate gradient with incomplete LU preconditioners

Bug fixes and other changes:
* Robust input validation:
    - Validation of input parameters to various functions has been improved to
    ensure that it does not fail if double quotes are included as part of the
    table name.
* Random Forest
    - The ID field in rf_train has been expanded from INT to BIGINT (MADLIB-764)
* Various documentation updates:
    - Documentation updated for various modules including elastic net, linear
    and logistic regression.
--------------------------------------------------------------------------------
MADlib v1.0

Release Date: 2013-July-03

New Features:
* Cox Proportional Hazards:
    - Added Right Censoring support for Cox Prop Hazards
* Robust Variance Tests - Huber White:
    - Added a method of calculating robust variance statistic by utilizing the
    Huber-White sandwich estimator for linear regression, logistic regression,
    and multinomial logistic regression
    - Robust variance for linear and logistic regression also includes
    grouping support
* Clustered Sandwich Estimators:
    - Added clustered robust variance statistic by utilizing a clustered sandwich
    estimator for linear regression, logistic regression, and multinomial
    logistic regression
    - Grouping is currently not implemented for clustered and parameter is only
    a placeholder at present
* Marginal Effects Estimator:
    - Added a method for computing the marginal effects for logistic regression
    and multinomial logistic regression
    - Grouping is currently not implemented for marginal effects and the
    parameter is only a placeholder at present
* Multinomial logistic regression:
    - Added a parameter in multinomial logistic regression, to enable picking
    the reference category. Input for number of categories has been removed
    due to redundancy
* Linear regression:
    - Updated grouping columns to input as a comma delimited string rather
    than as an array
    - Resolved an issue with highly collinear data to produce results consistent
    with other statistical packages. Threshold on condition number to use an
    approximation for computing the pseudo-inverse was increased.
* Logistic regression:
    - Changed behavior to error-out if the ouput table already exists

Bug fixes:
* Summary:
    - Summary function (when used with quartiles) used high memory when number
    of column is large. This has been fixed by computing quartiles in an
    iterative manner for a fixed number of columns (Pivotal-170)
    - Fixed a problem with incorrect number of rows returned for Summary when
    all values in a column are NULL (Pivotal-171)
--------------------------------------------------------------------------------
MADlib v0.7

Release Date: 2013-May-01

New Features:
* Correlation function:
    - Function to compute Pearson's cross-correlation for numeric columns in a
        relational table
* Upgrade capability:
    - All new versions since v0.7 are installed in a version-specific folder
        (/usr/local/madlib/Versions/)
    - Upgrade from v0.5/v0.6 to v0.7 on the database is now supported without
        uninstalling previous MADlib database installation.
    - Dependencies on updated functions, types, and other operators are caught
        and upgrade is aborted with an appropriate message

Bug fixes:
* Linear Regression:
    - Improved matrix inversion method to compute coefficients comparable to R
        for regression problems with high multicollinearity (MADLIB-790)
* Logistic Regression:
    - Fixed a problem in logistic regression with grouping on 'text' datatype
        columns  (MADLIB-791)

Known issues:
* Upgrade:
    - Views dependent on MADlib functions being updated will be dropped during
        the upgrade and restored after finishing upgrade. If upgrade fails for
        any reason, these views and the original MADlib schema will *not* be
        restored. Before initiating upgrade, we recommend taking a backup of
        the MADlib schema and move all views dependent on MADlib to separate
        schema and perform a backup with:
                pg_dump -n 'schema_name'

    - Upgrade is currently not supported for the PostgreSQL platform and will
        abort with an error

    - Upgrade currently does not detect functions defined by the user that
        depend upon MADlib functions. Semantic/API changes to these MADlib
        functions could lead to undefined results in such user-defined functions

    - Some important changes for the upgrade from v0.5 to v0.7 are given below
        (Upgrade will raise an error and abort if there exist user-defined views
        that depend on these changes. User-defined functions are not validated
        with this check. An aborted upgrade does not affect the installed version
        of MADlib.)
            -- Logistic regression renamed from 'logregr' to 'logregr_train'
            -- All internal and external aggregates in logistic regression
                have been updated
            -- PLDA module replaced with a refactored LDA module. Due to the
                renaming all functions using PLDA need to be updated
            -- Updated MADlib types:
                    logregr_result, plda_topics_t, plda_word_distrn,
                    plda_word_weight
--------------------------------------------------------------------------------
MADlib v0.6

Release Date: 2013-Apr-01

New Features / Improvements:
* Generic cross-validation:
    - Support for k-fold cross-validation of any supervised learning
      algorithm
* Heteroskedasticity of linear regression
    - Support for calculating heteroskedasticity via Breusch-Pagan test
* Grouping support for linear regression
    - Support for linear regression on each group of data grouped by
      one or multiple columns
* Grouping support for logistic regression
    - Refactor of logistic regression code
    - Support for logistic regression on each group of data grouped by
      one or multiple columns
    - Grouping support is added to the convex optimization framework
* LDA:
    - Improved performance and scalability (MADLIB-480)
* Elastic net regularization for both linear and logistic regressions
    - Support FISTA and IGD optimizers
* Summary function
    - Support for an overview of data table
* Eigen package upgrade
    - Now Eigen 3.1.2 is used by MADlib v0.6
* Unit testing framework:
    - A new unit testing framework is added for C++ abstraction layer

Bug Fixes:
* C++ abstraction layer:
    - Improved handling of NULL values in the input array (MADLIB-773)
* Naive Bayes:
    - Improved the handling of NULL values. (MADLIB-749)

Known Issues:

* K-means:
    - K-means crashes on some datasets, when the dimensionality of the points
    is not uniform on the data set. (MADLIB-789)

* Distribution Functions:
    - Certain quantile functions will abort their session on invalid input
    (MADLIB-786)

* Multinomial Logistic Regression:
    - Signs of coefficient outputs are inconsistent with other tools like R and
    Stata (MADLIB-785)


--------------------------------------------------------------------------------
MADlib v0.5

Release Date: 2012-Nov-15

Bug Fixes:
* K-means:
    - Improved handling of invalid arguments (MADLIB-359, 361)
* Sketch-based estimators:
	  - Addressed security vulnerability (MADLIB-630)

New Features / Improvements:
* Association Rules (Apriori):
    - Improved reporting output format for better usability (MADLIB-411)
	  - Significant improvement in performance (MADLIB-638)
* C++ (Database) Abstraction Layer:
    - Extension to support modular transition states (MADLIB-499)
    - Extension to support functions returning set of values (MADLIB-638)
* Conditional Random fields:
    - Support for Linear Chain Conditional Random Fields for NLP (MADLIB-628)
* Decision Tree:
    - Improved performance for C4.5 and Random forests (MADLIB-605)
    - Improved encoding (MADLIB-590)
* Infrastructure:
    - Convex optimization framework
* K-means:
    - Code refactoring and Improved performance
      (MADLIB-454, MADLIB-522, MADLIB-678)
    - Silhouette function for k-means (MADLIB-681)
* Low-rank Matrix Factorization
    - New module
* Logistic Regression:
    - Support for Multinomial Logistic Regression (MADLIB-575)
* Naive Bayes
    - Significant improvement in performance (MADLIB-611, 619, 626)
* Regression Analysis:
    - Support for Cox Proportional Hazards test (MADLIB-576)
* Sampling
    - Added weighted sampling of a single row (MADLIB-584)
* SVD Matrix Factorization:
    - Improved performance (MADLIB-578)

Documentation:
* Conditional Random Fields:
    - Example added for CRF module (MADLIB-731)
* SVD Matrix Factorization:
    - Incremental-gradient SVD algorithm (MADLIB-572)

Known issues:
* Multinomial Logistic Regression:
    - Number of independent variables cannot exceed 65535 (MADLIB-665)
* Naive Bayes:
    - Current implementation of Naive Bayes is only suitable for
        categorical attributes (MADLIB-679)
    - NULL input values not accepted for attributes (MADLIB-614)
    - NULL probabilities given for test set values not seen in
      training set (MADLIB-523)

--------------------------------------------------------------------------------
MADlib v0.4.1

Release Date:  2012-Aug-9

Bug Fixes:
* PGXN:
    - Fixed installation problem that could occur on some platforms (MADLIB-589)

New Features/Improvements:
* C++ Abstraction Layer:
    - Increased ABI compatibility across multiple Greenplum versions
      (MADLIB-606)
* Hypothesis Tests:
    - Tests that are not implemented as ordered aggregates are now also
      installed on PostgreSQL 8.4 and Greenplum 4.0.

--------------------------------------------------------------------------------
MADlib v0.4

Release Date:  2012-Jun-18

Bug Fixes:
* Association Rules:
    - assoc_rules() now uses schema-qualified function calls (MADLIB-435)
* Decision Trees:
    - Enhanced correctness (MADLIB-409, 502, 503)
    - Improved handling of invalid arguments (MADLIB-331)
* k-Means:
    - Improved handling of invalid arguments (MADLIB-336, 364, 459)
* PLDA:
    - Improved robustness (MADLIB-474)
* Sparse Vectors:
    - svec_sfv() now uses locale-aware sorting (MADLIB-457)
    - Operators now install to MADlib schema (MADLIB-470)

New Features/Improvements:
* C++ Abstraction Layer:
    - Support for "function pointers" (MADLIB-370)
    - Support for sparse vectors (MADLIB-371)
    - Support for more Eigen (linear algebra) types (MADLIB-533)
* Decision Trees:
    - Code refactoring and optimization (MADLIB-410, 476, 504, 509)
    - Documentation improvments (MADLIB-507)
    - Output table now contains unencoded information (MADLIB-434)
    - Enhance the missing value handling for continuous features (MADLIB-493)
* Hypothesis Tests:
    - Pearson chi-square test (MADLIB-390)
    - One- and two-sample t-Tests (MADLIB-391)
    - F-test (MADLIB-392)
    - Mann-Whitney U-test (MADLIB-393)
    - Kolmogorov-Smirnov test (MADLIB-394)
    - Wilcoxon-Signed-Rank test (MADLIB-405)
    - One-way ANOVA (MADLIB-406)
* PostgreSQL Extensibility:
    - Support for CREATE EXTENSION in PostgreSQL >= 9.1 (MADLIB-316)
    - Availability on PGXN (MADLIB-334)
* Probability Functions:
    - Wrap all distribution functions implemented by Boost (MADLIB-412)
    - Wrap Kolmogorov distribution function from CERN ROOT project (MADLIB-413)
* Random Forests:
    - New module (MADLIB-419)
* Support:
    - Add elementary matrix/vector functions (e.g., norm/distances etc.)
      (MADLIB-532)
* Viterbi Feature Extraction:
    - New module (MADLIB-478)

Known issues:
    - svec_sfv() does not support collations, as introduced with PostgreSQL 9.1
      (MADLIB-558)
    - Invalid arguments are not always guaranteed to be handled gracefully and
      may lead to confusing error messages (MADLIB-28, 359, 361, 363)

--------------------------------------------------------------------------------
MADlib v0.3

Release Date:  2012-Feb-9

New features:
* Installer:
    - Single installer package targeting all supported DBMSs per OS (MADLIB-218)
* C++ Abstraction Layer:
    - Switched from using Armadillo to using Eigen for linear-algebra
      operations, thereby eliminating the dependency on LAPACK/BLAS (MADLIB-275)
    - Reimplemented as a template library for performance improvements
      (MADLIB-295)
* Decision Trees:
    - Major update
    - Now supports multiple split criteria (information gain, gini, gain ratio)
    - Now supports tree pruning using a validation set to address over fitting
    - Now supports additional functions for tree output
    - Now supports continuous features in addition to categorical features
    - Additional support for handling null values
    - Improved scalability and performance
* k-Means Clustering:
    - Now handles any input that is convertible to SVEC. (MADLIB-42)
    - Multiple distance functions (L1-norm, L2-norm, cosine similarity, Tanimoto
      similarity) (MADLIB-43)
    - Supports multiple seedings methods (kmeans++, random, user-specified list
      of centroids)
    - Replaced goodness of fit with the (simplified) Silhouette coefficient
      (MADLIB-45)
    - New run-time parameters (MADLIB-47)
* Linear Regression:
    - Major speed improvement
* Logistic Regression:
    - Major speed improvement
    - Now handles any input that is convertible to BOOLEAN (dependent variable)
      or DOUBLE PRECISION[] (independent variables). (MADLIB-283)
    - An under-/overflow safe version to evaluate the (usual) logistic function,
      for scoring logistic regression (MADLIB-271)
    - A third optimizer: Incremental-gradient-descent (MADLIB-303)
* Support:
    - For Greenplum <= 4.2.0, added a workaround for INSERT INTO in the same way
      as the existing CREATE TABLE AS workaround. This workaround is not needed
      in Greenplum >= 4.2.1 any more. (MADLIB-265)
    - Function version() returns Madlib build information (MADLIB-309)

Bug fixes:
* Sparse vectors:
    - Fixed sparse-vector type case problems (MADLIB-282, MADLIB-305)
    - Fixed a situation where using svec_svf() could cause a segmentation fault
      (MADLIB-350)
    - Increased compatibility with internal PostgreSQL conventions (MADLIB-257)
* Logistic regression:
    - Handle numerical instability more gracefully (MADLIB-343, MADLIB-345)
    - Handle unexpected inputs more gracefully (MADLIB-284, MADLIB-344)
    - Fixed "Random variate x is nan, but must be finite" issue (MADLIB-356)

Known issues:
    - Decision Trees not supported on Greenplum 4.0 (MADLIB-346, MADLIB-347)
    - K-means: the error '"nan" does not exist' may be raised when input vectors
      contain NaN. (MADLIB-364)
    - Association Rules require the madlib schema to be in the search path
      (MADLIB-353)
    - Invalid arguments are not always guaranteed to be handled gracefully and
      may lead to confusing error messages (MADLIB-28, 336, 359, 361, 363, 364)

--------------------------------------------------------------------------------
MADlib v0.2.1beta

Release Date: 2011-Sep-14

General changes:
* numerous improvements to the C++ abstraction layer:
    - code clean-up
    - fixed issue where incorrect values were returned when used with
      debug builds of PostgreSQL/Greenplum (MADLIB-253)
    - fixed issue where returning arrays to PostgreSQL/Greenplum could lead
      to a crash (MADLIB-250)
    - allocated memory is now 16-byte aligned for improved stability and
      performance (MADLIB-236)
* compiling with advanced warnings enabled by default now
* all C/C++ code now free of warnings. On gcc <= 4.6, there might still be
  warnings due to "unclean" macros in DBMS header files (MADLIB-228)
* prepared Solaris support in a later release (MADLIB-204)
    - added support for Sun Compiler in CMake build script
    - fixed all compilation errors with Sun compiler
* added UDF to mimic "CREATE TABLE AS ...", as a workaround for a Greenplum
  issue (MADLIB-241). Included this as GP Compatibility module.
* madpack utility:
    - dropped madpack dependency on PygreSQL (MADLIB-217)
    - improved security in madpack install-check (MADLIB-229)
    - fixed bashism in madpack (MADLIB-222)
    - fixed install-check not running on non-default schema (MADLIB-251)

Modules/methods:
* SVM (kernel_machines):
    - fixed cumulative error count in svm_cls_update() function
    - improved memory management in SVM module
* Linear regression (regress):
    - fixed unexpected behavior for some edge cases (MADLIB-214)
    - fixed crashing with huge number of independent vars (MADLIB-250)
* Logistic regression (regress):
    - added support for arbitrary expressions for dep./indep. variables, not
      just column names (MADLIB-255)
* Quantile:
    - fixed quantile() function to be exact
    - added simple version for small data sets
* Sparse Vectors:
    - added check for sorted dictionary to svec_sfv (MADLIB-187)
* Decision Tree (decision_tree):
    - now can be run multiple times in one session (MADLIB-156)

Known issues:
* non-unified API for several SQL UDFs (MADLIB-208)
* performance of the conjugate-gradient optimizer in logistic regression
  can be very poor (MADLIB-164)

--------------------------------------------------------------------------------
MADlib v0.2.0beta

Release Date: 2011-Jul-8

General changes:
* new build and installation framework based on CMake
* new C++ abstraction layer for easy and secure method development
* new database installation utility (madpack)

Modules/methods:
* new: Association Rules (assoc_rules)
* new: Array Operators (array_ops)
* new: Decision Tree (decision_tree)
* new: Conjugate Gradient (conjugate_gradient)
* new: Parallel LDA	(plda)
* improved: all methods from previous release

Known issues:
* non-unified API for several SQL UDFs (MADLIB-208)
* running decision tree more than once in one session fails (MADLIB-156)
* performance of the conjugate-gradient optimizer in logistic regression
  can be very poor (MADLIB-164)
* svec_sfv function doesn't check for sorted dictionary (MADLIB-187)

--------------------------------------------------------------------------------
MADlib v0.1.0alpha

Release Date: 2011-Jan-31

Initial release.

Included modules/methods:
* Naive-Bayes Classification (bayes)
* k-Means Clustering (kmeans)
* Support Vector Machines (kernel_machines)
* Sketch-based Estimators (sketch)
* Sketch-based Profile (data_profile)
* Quantile (quantile)
* Linear & Logistic Regression (regress)
* SVD Matrix Factorisation (svdmf)
* Sparse Vectors (svec)

--------------------------------------------------------------------------------
MADlib v0.1.0prerelease

Release date: 2011-Jan-25

Demo release.
