### mlpack 2.0.2 ###### 2016-??-?? * Handle zero-variance dimensions in DET (#515). * Add MiniBatchSGD optimizer (src/mlpack/core/optimizers/minibatch_sgd/) and allow its use in mlpack_logistic_regression and mlpack_nca programs. * Add better backtrace support from Grzegorz Krajewski for Log::Fatal messages when compiled with debugging and profiling symbols. This requires libbfd and libdl to be present during compilation. * CosineTree test fix from Mikhail Lozhnikov (#358). * Fixed HMM initial state estimation (#600). * Changed versioning macros __MLPACK_VERSION_MAJOR, __MLPACK_VERSION_MINOR, and __MLPACK_VERSION_PATCH to MLPACK_VERSION_MAJOR, MLPACK_VERSION_MINOR, and MLPACK_VERSION_PATCH. The old names will remain in place until mlpack 3.0.0. ### mlpack 2.0.1 ###### 2016-02-04 * Fix CMake to properly detect when MKL is being used with Armadillo. * Minor parameter handling fixes to mlpack_logistic_regression (#504, #505). * Properly install arma_config.hpp. * Memory handling fixes for Hoeffding tree code. * Add functions that allow changing training-time parameters to HoeffdingTree class. * Fix infinite loop in sparse coding test. * Documentation spelling fixes (#501). * Properly handle covariances for Gaussians with large condition number (#496), preventing GMMs from filling with NaNs during training (and also HMMs that use GMMs). * CMake fixes for finding LAPACK and BLAS as Armadillo dependencies when ATLAS is used. * CMake fix for projects using mlpack's CMake configuration from elsewhere (#512). ### mlpack 2.0.0 ###### 2015-12-24 * Removed overclustering support from k-means because it is not well-tested, may be buggy, and is (I think) unused. If this was support you were using, open a bug or get in touch with us; it would not be hard for us to reimplement it. * Refactored KMeans to allow different types of Lloyd iterations. * Added implementations of k-means: Elkan's algorithm, Hamerly's algorithm, Pelleg-Moore's algorithm, and the DTNN (dual-tree nearest neighbor) algorithm. * Significant acceleration of LRSDP via the use of accu(a % b) instead of trace(a * b). * Added MatrixCompletion class (matrix_completion), which performs nuclear norm minimization to fill unknown values of an input matrix. * No more dependence on Boost.Random; now we use C++11 STL random support. * Add softmax regression, contributed by Siddharth Agrawal and QiaoAn Chen. * Changed NeighborSearch, RangeSearch, FastMKS, LSH, and RASearch API; these classes now take the query sets in the Search() method, instead of in the constructor. * Use OpenMP, if available. For now OpenMP support is only available in the DET training code. * Add support for predicting new test point values to LARS and the command-line 'lars' program. * Add serialization support for Perceptron and LogisticRegression. * Refactor SoftmaxRegression to predict into an arma::Row object, and add a softmax_regression program. * Refactor LSH to allow loading and saving of models. * ToString() is removed entirely (#487). * Add --input_model_file and --output_model_file options to appropriate machine learning algorithms. * Rename all executables to start with an "mlpack" prefix (#229). * Add HoeffdingTree and mlpack_hoeffding_tree, an implementation of the streaming decision tree methodology from Domingos and Hulten in 2000. ### mlpack 1.0.12 ###### 2015-01-07 * Switch to 3-clause BSD license (from LGPL). ### mlpack 1.0.11 ###### 2014-12-11 * Proper handling of dimension calculation in PCA. * Load parameter vectors properly for LinearRegression models. * Linker fixes for AugLagrangian specializations under Visual Studio. * Add support for observation weights to LinearRegression. * MahalanobisDistance<> now takes root of the distance by default and therefore satisfies the triangle inequality (TakeRoot now defaults to true). * Better handling of optional Armadillo HDF5 dependency. * Fixes for numerous intermittent test failures. * math::RandomSeed() now sets the random seed for recent (>=3.930) Armadillo versions. * Handle Newton method convergence better for SparseCoding::OptimizeDictionary() and make maximum iterations a parameter. * Known bug: CosineTree construction may fail in some cases on i386 systems (#358). ### mlpack 1.0.10 ###### 2014-08-29 * Bugfix for NeighborSearch regression which caused very slow allknn/allkfn. Speeds are now restored to approximately 1.0.8 speeds, with significant improvement for the cover tree (#347). * Detect dependencies correctly when ARMA_USE_WRAPPER is not being defined (i.e., libarmadillo.so does not exist). * Bugfix for compilation under Visual Studio (#348). ### mlpack 1.0.9 ###### 2014-07-28 * GMM initialization is now safer and provides a working GMM when constructed with only the dimensionality and number of Gaussians (#301). * Check for division by 0 in Forward-Backward Algorithm in HMMs (#301). * Fix MaxVarianceNewCluster (used when re-initializing clusters for k-means) (#301). * Fixed implementation of Viterbi algorithm in HMM::Predict() (#303). * Significant speedups for dual-tree algorithms using the cover tree (#235, #314) including a faster implementation of FastMKS. * Fix for LRSDP optimizer so that it compiles and can be used (#312). * CF (collaborative filtering) now expects users and items to be zero-indexed, not one-indexed (#311). * CF::GetRecommendations() API change: now requires the number of recommendations as the first parameter. The number of users in the local neighborhood should be specified with CF::NumUsersForSimilarity(). * Removed incorrect PeriodicHRectBound (#58). * Refactor LRSDP into LRSDP class and standalone function to be optimized (#305). * Fix for centering in kernel PCA (#337). * Added simulated annealing (SA) optimizer, contributed by Zhihao Lou. * HMMs now support initial state probabilities; these can be set in the constructor, trained, or set manually with HMM::Initial() (#302). * Added Nyström method for kernel matrix approximation by Marcus Edel. * Kernel PCA now supports using Nyström method for approximation. * Ball trees now work with dual-tree algorithms, via the BallBound<> bound structure (#307); fixed by Yash Vadalia. * The NMF class is now AMF<>, and supports far more types of factorizations, by Sumedh Ghaisas. * A QUIC-SVD implementation has returned, written by Siddharth Agrawal and based on older code from Mudit Gupta. * Added perceptron and decision stump by Udit Saxena (these are weak learners for an eventual AdaBoost class). * Sparse autoencoder added by Siddharth Agrawal. ### mlpack 1.0.8 ###### 2014-01-06 * Memory leak in NeighborSearch index-mapping code fixed (#298). * GMMs can be trained using the existing model as a starting point by specifying an additional boolean parameter to GMM::Estimate() (#296). * Logistic regression implementation added in methods/logistic_regression (see also #293). * L-BFGS optimizer now returns its function via Function(). * Version information is now obtainable via mlpack::util::GetVersion() or the __MLPACK_VERSION_MAJOR, __MLPACK_VERSION_MINOR, and __MLPACK_VERSION_PATCH macros (#297). * Fix typos in allkfn and allkrann output. ### mlpack 1.0.7 ###### 2013-10-04 * Cover tree support for range search (range_search), rank-approximate nearest neighbors (allkrann), minimum spanning tree calculation (emst), and FastMKS (fastmks). * Dual-tree FastMKS implementation added and tested. * Added collaborative filtering package (cf) that can provide recommendations when given users and items. * Fix for correctness of Kernel PCA (kernel_pca) (#270). * Speedups for PCA and Kernel PCA (#198). * Fix for correctness of Neighborhood Components Analysis (NCA) (#279). * Minor speedups for dual-tree algorithms. * Fix for Naive Bayes Classifier (nbc) (#269). * Added a ridge regression option to LinearRegression (linear_regression) (#286). * Gaussian Mixture Models (gmm::GMM<>) now support arbitrary covariance matrix constraints (#283). * MVU (mvu) removed because it is known to not work (#183). * Minor updates and fixes for kernels (in mlpack::kernel). ### mlpack 1.0.6 ###### 2013-06-13 * Minor bugfix so that FastMKS gets built. ### mlpack 1.0.5 ###### 2013-05-01 * Speedups of cover tree traversers (#235). * Addition of rank-approximate nearest neighbors (RANN), found in src/mlpack/methods/rann/. * Addition of fast exact max-kernel search (FastMKS), found in src/mlpack/methods/fastmks/. * Fix for EM covariance estimation; this should improve GMM training time. * More parameters for GMM estimation. * Force GMM and GaussianDistribution covariance matrices to be positive definite, so that training converges much more often. * Add parameter for the tolerance of the Baum-Welch algorithm for HMM training. * Fix for compilation with clang compiler. * Fix for k-furthest-neighbor-search. ### mlpack 1.0.4 ###### 2013-02-08 * Force minimum Armadillo version to 2.4.2. * Better output of class types to streams; a class with a ToString() method implemented can be sent to a stream with operator<<. * Change return type of GMM::Estimate() to double (#257). * Style fixes for k-means and RADICAL. * Handle size_t support correctly with Armadillo 3.6.2 (#258). * Add locality-sensitive hashing (LSH), found in src/mlpack/methods/lsh/. * Better tests for SGD (stochastic gradient descent) and NCA (neighborhood components analysis). ### mlpack 1.0.3 ###### 2012-09-16 * Remove internal sparse matrix support because Armadillo 3.4.0 now includes it. When using Armadillo versions older than 3.4.0, sparse matrix support is not available. * NCA (neighborhood components analysis) now support an arbitrary optimizer (#245), including stochastic gradient descent (#249). ### mlpack 1.0.2 ###### 2012-08-15 * Added density estimation trees, found in src/mlpack/methods/det/. * Added non-negative matrix factorization, found in src/mlpack/methods/nmf/. * Added experimental cover tree implementation, found in src/mlpack/core/tree/cover_tree/ (#157). * Better reporting of boost::program_options errors (#225). * Fix for timers on Windows (#212, #211). * Fix for allknn and allkfn output (#204). * Sparse coding dictionary initialization is now a template parameter (#220). ### mlpack 1.0.1 ###### 2012-03-03 * Added kernel principal components analysis (kernel PCA), found in src/mlpack/methods/kernel_pca/ (#74). * Fix for Lovasz-Theta AugLagrangian tests (#182). * Fixes for allknn output (#185, #186). * Added range search executable (#192). * Adapted citations in documentation to BiBTeX; no citations in -h output (#195). * Stop use of 'const char*' and prefer 'std::string' (#176). * Support seeds for random numbers (#177). ### mlpack 1.0.0 ###### 2011-12-17 * Initial release. See any resolved tickets numbered less than #196 or execute this query: http://www.mlpack.org/trac/query?status=closed&milestone=mlpack+1.0.0