Changelog History

v3.8.0 Changes
October 19, 2017🚀 Accord.NET Framework 3.8.0 release notes
22.10.2017.
🔖 Version updates and fixes:
 👍 GH82: Add support for weighted PCA;
 GH127: Fast KMeans (Request);
 GH145: MovingNormalStatistics;
 GH157: Issue in Survival analysis using VB.NET;
 GH184: Add an Example for Graylevel coocurrences;
 GH211: Any samples on how to use Boosted Decision Trees;
 GH257: DFT functions in AForge.Math.FourierTransform and Accord.Math.Transforms;
 GH262: C45Learning Discrete vs Real;
 GH374: Dictionary of video capabilities doesn't take into account the video framerate;
 GH376: Add an Example for VideoCaptureDevice Class;
 GH377: Add an Example for LevenbergMarquardt Class;
 GH415: Add an Example for AdaBoost(TModel);
 GH421: Add an Example for KalmanFilter2D Class;
 GH422: Add an Example for DecisionStump.Learn Method;
 GH424: Add an Example for AdaBoost(TModel) Class;
 GH430: Add an Example for GeneralConfusionMatrix Constructor (Int32, Int32[], Int32[]);
 🚦 GH440: BagOfWords for audio signals;
 GH441: Add Mel Frequency Cepstral Coefficients (MFCC);
 GH466: Add an Example for Distance.Mahalanobis Method (Double[], Double[]);
 GH467: Add an Example for Spline Class;
 GH473: Add an Example for IParallel.ParallelOptions Property;
 GH476: Add an Example for TwoWayAnova Constructor (Double[][][], TwoWayAnovaModel);
 GH483: Add an Example for Haralick Class;
 GH486: Add an Example for LibSvmModel.Save Method (String);
 GH498: Add an Example for QLearning Class;
 GH500: Add an Example for FourierTransform2.FFT Method (Complex[], FourierTransform.Direction);
 GH505: Add an Example for ConfusionMatrix Constructor (Int32[], Int32[], Int32, Int32);
 GH517: Add an Example for Sarsa Class;
 GH519: Add an Example for NelderMead Class;
 GH530: Add an Example for Matrix.Inverse Method (Double[][]);
 GH532: Add an Example for GaussNewton Class;
 GH547: Add an Example for HaralickDescriptor Class;
 GH554: Add an Example for BinaryTree(TNode) Class;
 GH557: Add an Example for Matrix.Sort(TKey, TValue) Method (TKey[], TValue[,], IComparer(TKey));
 GH560: Add an Example for FourierTransform2.FFT Method (Double[], Double[], FourierTransform.Direction);
 GH566: Add an Example for Distance.GetDistance(T) Method;
 GH569: Add an Example for Distance.Euclidean Method (Double, Double, Double, Double);
 GH575: Add an Example for LuDecomposition Class;
 GH576: RandomForestLearning: Examples can't run with SampleRatio not equal 1.0;
 GH582: Add an Example for Matrix.Multiply Method (Double[], Double[,]);
 GH610: Add an Example for UnivariateContinuousDistribution.Fit Method (Double[]);
 GH616: Add an Example for LevenbergMarquardt Class;
 GH618: Add an Example for Apriori Class;
 GH629: Add an Example for AdaBoost(TModel) Class;
 GH636: Add an Example for Measures.Correlation Method (Double[][]);
 GH640: Add an Example for GaussianKernel Class;
 GH642: Add an Example for Matrix.PseudoInverse Method (Decimal[,]);
 GH653: Add an Example for HistogramsOfOrientedGradients Class;
 GH656: Add an Example for MatReader.Read Method (String);
 GH660: Add an Example for LogLikelihoodLoss Class;
 GH665: Add an Example for FourierTransform.FFT Method;
 ✅ GH687: Add an Example for ShapiroWilkTest Class;
 GH695: Add an Example for TFIDF.Transform Method (String[][]);
 GH703: Add an Example for Imputation Class;
 GH717: Possible issue with DynamicTimeWarp kernel class;
 GH718: Add an Example for Cosine.Distance Method;
 GH723: Procrustes analysis is giving weird/wrong results;
 GH727: Add an Example for IRadialBasisKernel Interface;
 GH730: BinarySplit with normalized FREAK;
 GH739: Add an Example for MultipleLinearRegression.CoefficientOfDetermination Method;
 GH756: Add an Example for ProportionalHazardsAnalysis.LogLikelihood Property;
 ✅ GH764: Add an Example for AndersonDarlingTest Class;
 GH769: Issue using visual bag of words with large images;
 GH783: Add an Example for LocalBinaryPattern Class;
 GH785: Add an Example for Tools.RandomGroups Method (Int32, Double);
 GH787: Add an Example for HiddenMarkovModel(TDistribution, TObservation).Predict Method (TObservation[]);
 👍 GH789: Add support for OS X;
 ✅ GH792: Add an Example for FisherExactTest Class;
 GH793: Add an Example for HoughLineTransformation Class;
 GH798: System.AccessViolationException in FastBoxBlur;
 GH800: Missing dependency for Accord.Neuro in NuGet;
 GH802: Index outside of the bounds of the array in Naive Bayes;
 GH803: NaN probabilities from large features with MultinomialLogisticRegression;
 GH805: Unsafe keyword being exposed in the public API;
 GH807: Add an Example for CrossValidating NaiveBayes;
 0️⃣ GH809: The Codification filter should honor the value of DefaultMissingValueReplacement unless overriden;
 👍 GH811: Naive Bayes should provide better argument checking for negative symbols;
 GH812: ZhangSuenSkeletonization filter not exist to use;
 👍 GH814: Add an Example for MulticlassSupportVectorMachine(TKernel, TInput) Class;
 GH818: Add an Example for LinearConstraint Class;
 👍 GH819: Quadratic Objective Function to support basic vector operations;
 👍 GH820: Augmented Lagrangian to support linear constraints;
 GH824: Improve number of class inference in ZeroOneLoss;
 GH825: Replace multidimentional with jagged arrays in IntegralImage.cs;
 GH828: Accord.Neuro under .Net Standard 2.0;
 GH830: Read PGM image pending;
 GH831: Index outside of the bounds of the array in Naive Bayes;
 GH843: Where is Accord.NET AdaBoost Decide method;
 GH845: Add an Example for Decision Structure;
 ✅ GH848: Wilcoxon Signed Rank Test for PAIRED samples: TwoSampleWilcoxonSignedRankTest;
 ✅ GH849: TwoSampleWilcoxonSignedRankTest crashing when sample vectors are exactly the same values;
 GH852: Add an Example for DecisionSet Class;
 GH853: Access to last Hessian in BoundedBroydenFletcherGoldfarbShanno;
 GH856: Add an overload to IsSymmetric that accepts a tolerance;
 ✅ GH857: MannWhitneyU Test producing strange results;
 GH862: Accord.Math > Vector > T[] Sample(T[] values, int size) incorrect;
 GH865: Measures.Quartiles: value for Q1 (lower quartile) wrong in QuantileMethod.R;
 GH873: Add an Example for DecisionRule Class;
 GH876: Allow the maximum frame rate possible in DirectShow for VideoCaptureDevice;
 GH877: Add an Example for HaarCascadeWriter Class;
 GH878: Accord.Math.Transforms.FourierTransform2.DFT2 Is bugged;
 GH882: Adding lazy evaluation to matrix decompositions;
 🚦 GH885: Add an Example for Signal.GetEnergy Method;
 GH890: Add an Example for MultinomialLogisticRegressionAnalysis Class;
 GH897: Wrong status text in ImageView from DebugVisualizer;
 GH898: The Range method is producing some unexpected results;
 GH899: Add an Example for IntegralImage2 Class;
 GH900: Add an Example for ExhaustiveTemplateMatching Class;
 GH901: Add an Example for HSL Class;
 GH911: Character case of folder name;
 GH913: KNearestNeighbors can not be serialized;
 GH917: Two C++ projects require "Platform toolset v141" which is only available on VS2017;
 🏗 GH919: Build failed for Samples.sln on VS 2015;
 👀 GH921: Fix for the normal random number generator when a seed is specified;
 👀 GH924, GH925: Fixing the seeded exponential generator;
 👀 GH927: Broadcasting dimension seems counterintuitive;
 GH929: Add an Example for SpeededUpRobustFeaturesDescriptor Class;
 GH930: Add an Example for FastCornersDetector Class;
 GH931: Add an Example for MatchingTracker Class;
 GH937: Add an Example for LogisticRegression Class;
 GH948: Accord.Video.FFMPEG.VideoFileReader should provide framebased random access;
 🆓 GH949: Add the Free Spoken Digits Dataset to Accord.DataSets;
 ✅ GH950: Add a dataset for example test videos;
 GH955: KalmanFilter2D throws System.NullReferenceException;
🛠 GH956: Integrate AForge.NET fixes (up to September 6);
General
 The libsonly script is now in RAR4 format instead of RAR5 so they
🍎 will not be listed as corrupted files by Linux/MacOSX decompressors;
Core
 Splitting ITransform into ITransform and ICovariantTransform (to support generic covariance);
Video.FFMPEG
 Standardizing the C++ projects to depend on VS2015 runtime instead of VS2017 to keep compatibility with VS2015;
 Adding a static constructor in the FFMPEG project to check whether the system has those dependencies installed;
Audio
 Adding the initial version for a MelFrequencyCepstrumCoefficients audio feature extractor;
 Adding a IAudioFeatureExtractor interface (akin to the IImageFeatureExtractor for Accord.Imaging);
 Adding a Mono filter to convert multichannel audio signals into single channel (mono) signals;
 Adding a Signal.FromFile() method to load audio signals from file similarly to Bitmap.FromFile();
 Adding an AudioDecoder class akin to ImageDecoder to find audio format decoders based on file extension;
Audition
 Adding BagOfAudioWords class to compute bagofword representations from audio signals;
Imaging
 Adding support for decoding PNM files in format P2 and P3 (besides the already supported P5 and P6);
 Updating Haralick's to use the same normalization method as HOG and LBP;
 Updating the color classes (RGB, HSL, YCbCr) to be structs;
 Adding conversion operators between different color classes;
 Updating ImageDecoder to find decoders using reflection instead of manual registration;
 Updating the feature extraction framelet to implement the ITransform interfaces and deprecating IFeatureDetector;
 Updating all feature descriptors to be classes rather than structs so the generics covariance can work;
 Integrating AForge.NET's texture generation classes: Adding a base class for texture
⚡️ generation methods, updating them to use the frameworkwide random number generator,
🗄 and deprecating their Reset method;
DataSets:
 Adding the YinYang dataset as an example of a nonlinear 2D binary classification problem;
 Adding the Servo dataset as an example of a mixed discrete/continuous dataset for regression;
Math
 Adding a methods for the numerical calculation of the Hessian in the FiniteDifferences class;
 Updating Vector.Interval and Vector.Range to behave similar to NumPy's linspance and arange functions;
 Adding new overloads in elementwise operations that accept a VectorType enumeration instead
of a integer for specifying to which dimension the elementwise operation should be performed;
 Updating the Digamma and Trigamma functions to handle negative values;
MachineLearning
 Updating the AdaBoost classes to implement the more recent classification framelet;
 Adding a Error property in ConfusionMatrix and GeneralConfusionMatrix (1.0  Accuracy);
 Adding named constructors to ConfusionMatrix to create matrices
directly from classifiers, their inputs and expected outputs;  Adding a new IsColor8bpp extension method to detect whether an 8bpp image is a color image (nongrayscale);
 Adding a new ConvertColor8bppToGrayscale8bpp extension methods to convert these into grayscale 8bpp images;
 Fixing Codification filter transformation for DataTables when only some columns should be converted;
 NumberOfOutputs and NumberOfSymbols should have different implementations depending on the variable type;
 Enforcing alphabetical/default sorted order for symbols in Codification filter (this is a breaking change);
 Codification filter should now transform columns in the same order as specified by the user;
Statistics
 Adding exponentially weighted moving average (ewma) methods in Statistics.Measures partial classes;
Sample applications
 Adding a new sample application demonstrating how to use the framework in Unity 3D.

v3.7.0 Changes
August 20, 2017🚀 Accord.NET Framework 3.7.0 release notes
20.08.2017.
🔖 Version updates and fixes:
 GH53: KMedoids algorithm;
 GH335: Neldermead solver not converged;
 ✅ GH444: Reenable F# Unit Tests;
 👍 GH587: UnmanagedImage does not supported in ExtractBiggestBlob filter;
 GH594: FFMPEG net35 not working;
 GH621: How to calculate the cache size in respect of the available RAM;
 GH662: 64bit FFMPEG binaries not in output after installing with NuGet;
 GH669: Confusion Matrix;
 GH673: Stream closes after serialization with GZip compression;
 GH676: DoubleArrayChromosome CreateNew ignores Balancer properties;
 GH684: BalancedKMeans gets stuck;
 GH688: Cobyla constraint definitions only work with constant values;
 GH690: Add an Example for CrossValidation with DecisionTrees;
 GH692: Add an Example for StochasticGradientDescent Class;
 GH693: Oneclass SVM decision rule;
 👍 GH694: Add support for Weighted Least Squares;
 👻 GH696: IndexOutOfRangeException exception in Matrix.First method;
 GH697: Add an Example for HiddenMarkovModel(TDistribution, TObservation);
 GH699: MJPEGStream throws NotImplementedException in .NET Core 2.0;
 GH700: MJPEGStream throws InvalidOperationException in .NET Core 2.0;
 GH706: DecisionTree.ToCode() returns code that does not compile;
 GH707: DecisionTree.ToCode() returns code that compiles;
 GH711: Nonlinear Regression in VB.NET;
 ⚡️ GH712: Update MJPEGStream.cs ;
 GH715: GeneralizedParetoDistribution shape param;
 GH717: Possible issue with DynamicTimeWarping kernel class;
 GH723: Procrustes analysis is giving weird/wrong results;
 GH729: Error in ExhaustiveBlockMatching;
 GH731: Dilatation;
 GH736: Measures.Quartiles() for double Vectors of size 2 is wrong;
 GH737: Add examples for C45Learning Class with missing data and thresholds;
 0️⃣ GH745: Cannot change degree of a default Polynomial kernel;
 GH746: Add an Example for CrossValidation Class;
 GH747: How to understand the Probabilities;
 🚀 GH749: 64 bit release for .NET 4.0;
 GH752: Speed up matrixvector operations;
 GH758: NullReferenceException on NaiveBayes Learn;
 GH765: NaiveBayes 'System.IndexOutOfRangeException' occurred in Accord.Statistics.dll when calling from sample application;
 GH767: DebugVisualizers;
 📚 GH777: Bug in LinearConstraintCollection documentation;
GH778: Setter for bounds in BoundedBroydenFletcherGoldfarbShanno.
General
 Adding support for targetting NET Standard 1.4;
 Adding Newtonsoft.Json (Json.NET) in externals.
DataSets
 Adding Wisconsin's Breast Cancer (original, prognostic and diagnostic) datasets;
 Adding Oxford's Parkinsons dataset;
 Updating download links for the RCV1v2 dataset.
Imaging
 Fixing multiple typos regarding the spelling of "Dilation" (this is a breaking change).
IO
 Adding a ReadLine method to CsvReader to read individual lines from the CSV file.
MachineLearning
 Adding KMedoids (PAM) and Voronoi Iteration clustering algorithms;
 Fixing epsilon in Sequential Minimal Optimization for Regression;
 Adding a MiniBatch static class that can be used to create minibatch definitions from training data;
 Update LevenbergMarquardtLearning.cs to allow for different activation functions;
 Update BackPropagationLearning.cs to allow for different activation functions;
 Adding support for missing values in C4.5;
 Updating GeneralConfusionMatrix to represent columns as groundtruth instead of predictions;
 Improving memory usage for Second Order (LibSVM) Sequential Minimal Optimization;
 Adding more overloads to the method that helps determine how many lines can
be included in the SVM kernel cache given a total amount of memory;  Fixing ToMulticlass() methods included in multilabel and binary classifiers;
 Fixing the Probabilities and LogLikelihoods methods for multilabel and multiclass SVMs;
 Adding an option for OneVsOneLearning/Multiclass SVMs stop at the first exception
found during training instead of waiting until the all machines have been trained;
 Adding Precision, Recall, RowErrors and ColumnErrors to GeneralConfusionMatrix.
Math
 Adding support for .Learn() methods in NonlinearLeastSquares;
 Updates GH762: DotAndDot performance for small problem sizes;
 Removing the deprecated extension methods for Accord.Math.Matrix.Multiply
(such that calls should now be redirected to Elementwise.Multiply);  Fix BinarySearch so that it works with decreasing functions;
 Search interval in BinarySearch was meant to be [a;b) (i.e. with inclusive a and exclusive b);
 Fixing the behavior of Matrix.Get() method when negative indices are passed;
 Fixing Matrix's ToTable method to use the most high level type possible when creating columns.
Statistics
 Adding multiple methods for computing quartiles/quantiles;
 Adding a more advanced version of the discretization filter;
 Adding an example for fraud detection using HMMs with MaximumLikelihoodLearning class.
Neuro
 Adding support for networks with multiple activation functions in LevenbergMarquardt.

v3.6.0 Changes
August 20, 2017🚀 Accord.NET Framework 3.6.0 release notes
09.07.2017.
🔖 Version updates and fixes:
 GH168: Text naive bayes classification gives wrong results;
 👍 GH207: ResizeBilinear filter can support more pixel formats;
 👻 GH259: Kmeans clustering exception;
 👍 GH318: Adding support for .NET Standard 2.0;
 ✅ GH389: Wilcoxon Signed Rank Test / MannWhitneyWilcoxon Test  differences to R;
 ⬆️ GH407: Upgrade to NUnit 3;
 GH470: Multiclass SVM and DTW System.AggregateException;
 GH499: Add an example for Kmeans with mixed categorical and continuous data;
 GH540: Add an example for BaumWelchLearning(TDistribution, TObservation, TOptions) Class;
 GH549: Multithreaded BagOfVisualWords: "memory corrupt" problem;
 GH571: Accord.Controls is referencing wrong version of ZedGraph on NuGet;
 GH602: Robust multivariate regression causes IndexOutOfRangeException;
 GH605: Renaming AudioCodec.M4A to AudioCodec.MP4ALS;
 GH604: ColorSlider component resource path's fix;
 GH606: LowerBoundNewtonRaphson: how to check if converged;
 GH607: from perezale/aleperezdevelopment;
 GH611: Framerate issues when transcoding video;
 GH614: Index out of bounds error in SingularValueDecomposition.Solve;
 GH619: AugmentedLagrangian hangs on linear problem;
 GH621: How to calculate the cache size in respect of the available ram;
 GH624: Add an Example for Chart Class;
 GH627: Exposing more distribution fields as public properties;
 GH628: Inject other Random.Generators (like Mersenne Twister);
 GH630: GeneralizedBetaDistribution.ProbabilityDensityFunction does not have an area of 1;
 ✅ GH631: Adding test case for GoldfarbIdnaniStatus is Success even when Solution violates constraints;
 GH632: ExponentialDistribution.DistributionFunction return values outside [0,1];
 GH647: Adding weighted versions of the Euclidean and Square Euclidean distances;
 GH649: Add an example for NonNegativeLeastSquares Class;
 GH654: Adding the Distance Transform and Watershed algorithms;
GH663: Adding examples for the CsvWriter Class.
General
 Adding support for targetting .NET 4.6.2 and NET Standard 2.0;
 Improving documentation and expanding number of examples.
Core
 Moving IParallel and ISupportsCancellation interfaces to Accord.Core.
IO
 Adding a parser for the UNIPEN file format used by the pendigits dataset;
 Whitespace as a candidate delimiter in CSV parser;
 Adding more overloads to SparseReader's Read method.
DataSets
 Renaming the previous Iris dataset to SparseIris since it was a LibSVM dataset;
 Adding the original Iris, Wine, Pendigits, Chunking and Test Images datasets.
MachineLearning
 Updating Learn() methods now throw exceptions when weights are
👍 passed to learning algorithms which does not yet support them;  Updating CrossValidation, Bootstrap, Split Set Validation and
GridSearch to use the new Learn() API;  Adding support for creating decision trees using collection
🎉 initializers for the attribute/decision variables;  Mitigating the impact of a numerical precision issue when normalizing
distances to probabilities in the KMeans++ initialization;  Fixing issue with KMeans in which the input observations would be
🔄 changed by the randomization algorithm when using uniform seeding;  Correcting the design of the framelet for cluster algorithms so clusterings that are
not based on distance proximity to centroids are not forced to implement those methods;  Changing the default caching mechanism for Support Vector Machines
to keep rows of the kernel matrix instead of individual elements;  Adding methods to calculate the cache size given a number of bytes;
 Adding cache support for Fan Chen Lin's QP (SMO's SecondOrder strategy);
 Updating IClassifier interface to offer a NumberOfClasses property besides NumberOfOutputs;
 Updating the base classes for IClassifier such that the Score, Probability
and LogLikelihood functions only have to be defined once;  Correcting the Score, Probability and LogLikelihood functions of GeneralizedLinearRegression;
 Updating ITransform and IClassifier's NumberOfInputs, NumberOfOutputs and
NumberOfClasses properties to be readandwrite rather than readonly.
Imaging
 Adding the ZhangSuen Thinning Algorithm by Hashem Zawary (thanks!);
 Adding a FromUrl method to the Image class to download images directly from the web;
 Adding support for jagged matrices in the ImageToMatrix and MatrixToImage converters;
 Adding convenience methods PixelSize and Offset to UnmanagedImage;
 Adding a constructor method in UnmanagedImage to construct from byte arrays.
Vision
 Fixing reproducibility of BagOfVisualWords when using parallel processing.
Statistics
 Marking Sparse kernel classes as deprecated;
 Adding Dirac's Delta as a (nonmetric) Distance function;
 Updating the SquareEuclidean distance to support also Sparse arrays;
 Adding a dummy random number generator that generates always the same constant;
 Fixing the implementation of the new API for Cox's Proportional Hazards;
 Updating HMM, CRF, and HCRF learning algorithms to support creating HMMs, HMMbased classifiers,
CRFs and HCRFs directly from the data samples instead of requiring them to be defined by hand;  Adding a new MatrixContinuousDistribution base class for Wishart and InverseWishart distributions;
 Adding a RBF version of the Dynamic Time Warping kernel
that can be used with any distance metric/cost function;  Updating Hidden Markov Model learning classes to use RelativeConvergence;
 Improving discrete hidden Markov models performance;
 Adding a base class for HCRF learning algorithms based on
⚡️ the available IGradientOptimizationMethod optimizers;  Adding extension methods to simplify how distributions can be estimated
from the data (without requiring the distribution to be created first);  Fixing gradient computation in CRF learning;
 Updating base classes for probability distributions to perform input
validation before calling distributionspecific implementations;  Adding automatic testing of all univariate probability distributions;
 Mass fixing issues detected by automatic testing in multiple distributions.
Math
 Fixing an issue with Bounded LBFGS in which the optimization algorithm
would not respect the maximum number of iterations determined by the user;  Adding HasConverged, MaxIterations and CurrentIteration properties
as required members in IConvergenceLearning interface;  Adding parsing methods for Vector class;
 Fixing Sparse SquareEuclidean distance;
 Removing duplicated extension method To() from Matrix.Conversions.cs
 Marking Conjugate Gradient and BFGS as supporting execution cancellation;
Controls
 Updating ImageBox to support the fluent syntax and .Hold() methods.

v3.5.0 Changes
May 21, 2017🚀 Accord.NET Framework 3.5.0 release notes
21.05.2017.
🔖 Version updates and fixes:
 👍 GH55: Adding support for computing TFIDF vector representations;
 👍 GH213: Linear SVM with SGD Training Support;
 GH297: Looking for "multinomial Logistic Regression (crossentropy loss)" in accord like sklearn;
 GH330: Liblinear (Linear SVMs) does not train, exits with "index out of range";
 GH352: Take so much time create a SequentialMinimalOptimizationRegression in Accord.NET;
 GH355: SVM nonsequential 0 to n class outputs causes index out of bounds;
 ⚡️ GH365: Updating LBP to work with BoW;
 GH373: FrameRate as double in Accord.Video.FFMPEG;
 ⚡️ GH379: Updating NuGet specification files so assemblies are placed under net452 and net461;
 GH386: KNearestNeighbors Constructor (Int32, Int32, Double[][], Int32[], IMetric(Double[]));
 ✅ GH389: Wilcoxon Signed Rank Test  MannWhitneyWilcoxon Test  differences to R;
 GH390: MachineLearning.KMeans: Balanced clustering;
 GH396: Using Parallel.For with LinearCoordinateDescent;
 👍 GH397: Add an Example for OneclassSupportVectorLearning(TModel, TKernel, TInput) Class;
 GH398: PrincipalComponentAnalysis serialization error in v3.4.0;
 GH391: Add an Example for DecisionTree Class;
 GH392: Add an Example for GrayLevelCooccurrenceMatrix Constructor;
 GH393: Add an Example for GrayLevelCooccurrenceMatrix Constructor (Int32, CooccurrenceDegree, Boolean, Boolean);
 GH396: Using Parallel.For with LinearCoordinateDescent;
 GH399: Add an Example for HaarObjectDetector Class;
 GH401: KNearestNeighbors parallel;
 GH402: Add an Example for BagOfWords Class;
 GH405: Add an Example for RandomForest Class;
 GH409: Add an Example for Serializer.Load(T) Method (String);
 GH419: Add an Example for Combinatorics.Subsets(T) Method (ISet(T), Int32, Boolean);
 GH431: AugmentedLagrangian fails on standard convex quadratic problem;
 GH434: Possible issue with PolynomialLeastSquares() Class;
 👯 GH438: Error on LocalBinaryPattern Clone();
 GH446: Add an Example for PolynomialRegression Class;
 GH448: Could not load type 'SharpDX.Bool' from assembly 'SharpDX, Version=3.1.1.0;
 GH451: BalancedKMeans does not find a solution for this case;
 GH538: CSVReader Ignores specified delimiter;
GH556: Display license on repository top;
General
 Fixing target framework versions: projects that were targetting 4.5.2 and
⚡️ 4.6.1 have been updated to target 4.5 and 4.6, respectively;  Adding a Accord.DataSets namespace to contain classes that can download and
🌐 preprocess wellknown machine learning datasets directly from the web;  Adding a Accord.Text namespace to contain classes related to text processing;
 Creating a separate Accord.Video.FFMPEG NuGet package to target x64 (Win64);
 Upgrading C++ projects to VS2017 and removing dependencies on VS2013 and VS2015;
Core
 Updating the framework random generator to allow fixing the seed of independent threads:
🆕 new random generators created from existing threads will be initialized with the global
👀 random seed, except if their threadspecific random seed has been manually overwritten;  Adding support for using GZip compression when serializing through Accord.Serializer;
 Adding initial support for rational numbers;
IO
 Adding support for reading and writing NumPy's .npy and .npz formats;
 Adding a SparseWriter to save Sparse in LibSVM sparse file format;
Video
 Updating FFMPEG library to version 3.2.2;
 Updating Accord.Video.FFMPEG to support both x86 and x64 platforms;
 Updating FrameRate properties of VideoFileWriter and VideoFileReader
to be represented in Rationals instead of Int32;
DataSets
 Adding downloaders for the RCV1v2, MNIST and News20 datasets;
Text
 Adding C# versions of Snowball's stemmers;
Math
 Fixing ToString() method of Sparse vectors such that they are compatible with LibSVM;
 Adding Angular distance metric (proper distance metric based on the Cosine similarity);
 Updating distance metrics to be structs rather than classes, allowing for optimizations
when used in conjunction with generic classes and methods;  Adding generic versions of the IOptimizationMethod interfaces, and adding a specific
IFunctionOptimizationMethod interface to specify function optimization methods that do
not necessarily require a gradient function;
Statistics
 Fixing serialization of PCA, KPCA, LDA, KDA and other classes containing a CancellationToken;
 Adding support for learning multinomial logistic regression with any optimization algorithm;
 Correcting/improving Wilcoxon distribution: Adding a separate method for the ComplementaryDistributionFunction
for more precision; adding the approximation distribution using an actual NormalDistribution, and new parameters
at its constructor to control whether exact or approximate distribution should be used; adding parameters to
determine whether to apply different types of continuity corrections; adding an option to determine whether to
correct for ties when computing the rankings;  Correcting/improving MannWhitney U's distribution: Adding most corrections as mentioned above, plus checks to ensure
we are computing the distribution for the case when the first sample is smaller than the second; adding a correction
👍 to the variance of the approximation distribution for the case of ties; adding parallelization support when computing
the table of exact values;  Correcting/improving Wilcoxon and MannWhitney tests: adding a correction for ties in the variance of the Normal
✅ approximation; adding checks to make sure we don't generate pvalues higher than 1; adding more comparison tests
against results generated by R;
 Wavelet kernel is now a struct and has support for Int32 inputs;
MachineLearning
 Improving the performance for LinearDualCoordinateDescent and OneVsRest SVMs;
 Adding a ToMulticlass method to Multilabel classifiers based on scores;
 Updating KNearest Neighbor to use the new classification/learning interfaces;
 Adding parallelism to the nondatastructurebased version of KNearest Neighbors;
Accord.Imaging
 Adding support for LocalBinaryPattern and Haralick in BagofVisualWords.

v3.4.0 Changes
January 11, 2017🚀 > Build 3.4.0.5853, released on 14.01.2017
🚀 Accord.NET Framework 3.4.0 release notes
14.01.2017.
🔖 Version updates and fixes:
 ✅ GH19: Implement Grubbs' test;
 GH129: Possible error in Special.BSpline function;
 GH153: Visual Studio 2015;
 GH172: Add Random Forest Implementation;
 GH177: AugmentedLagrangian with NonlinearConstraints  Gradient NullReferenceException issue;
 GH183: Severity Check in NumberOfVertices Set Property on DiscreteCurveEvolution Class;
 🏗 GH229: Can't build cloned repository;
 GH250: Prediction interval  Accord.Statistics.Models.Regression.LogisticRegression;
 GH264: Integer division instead of double in GetSpectralResolution;
 GH264: Incorrect use of loop variables in sample converter;
 GH264: Checking same arguments multiple times in blob counter;
 GH264: Checking length of same vector in a loop;
 GH264: Integer division instead of double in Math.Tools;
 GH264: Dependency classes of Denavit Harternberg IK solver should be marked as Serializable;
 GH264: Error when checking whether component mixtures implement IFormattable;
 GH264: Multivariate Empirical Distribution outdated/unecessary argument checks;
 👍 GH264: Correcting the support for weighted samples in Inverse Gaussian Distribution;
 GH275: Examples for the GoldfarbIdnani solver are not up to date and do not compile;
 GH291: Accord.Imaging nuget dependencies;
 GH295: Accord.Video.FFMPEG.VideoFileWriter ignores bitrate;
 📚 GH296: Update documentation for hidden Markov models;
 ⚡️ GH299: Update to .NET 4.6 and VS2015;
 GH302: Regression (SVMs) : NullReferenceException on clicking 'Create Machine';
 🚀 GH309: Compile error with release 3.2.2;
 GH310: Examples for L1regularized (Logistic) regression;
 GH313: Inaccuracy in Accord.Math Pseudoinverse;
 GH314: V3.3.0 Cannot set input and output names in LogisticRegressionAnalysis;
 GH320: Shared Covariance Matrix for Gaussian Mixture Models;
 GH325: ClusterCollection doesn't implement IEnumerable properly (runtime error);
 GH327: NegativeBinomialDistribution Cum Dist func not returning expected value;
 GH301: Bug in Accord.Statistics.Analysis.DistributionAnalysis
 GH304: Bug in GammaDistribution.ProbabilityDensityFunction
 GH330: Liblinear (Linear SVMs) does not train, exits with "index out of range";
 GH331: RandomForest is not serializable;
 GH332: Partial Least Squares issue with NIPALS method and the new API;
 GH337: ExpectationMaximization max Iterations can't be changed;
 GH340: PoissonDistribution InverseDistributionFunction not returning expected value;
 GH365: Can HOG to work with BoW'2 with SVM or OSVM.
 General
 Fixing make install on Linux/Mono.
 Imaging
 Updating BagOfVisualWords to implement the updated IBagOfWords interface;
 Adding methods to facilitate the creation of BoVW with arbitrary extractors;
 Adding examples in the documentation on how to learn SVMs on the extracted Bo(V)Ws;
 Updating IFeatureDetector interfaces to use covariance and contravariance to avoid elementbyelement type conversions.
 Math
 Adding support for computing the full QR decomposition (besides only the economy one);
 Adding methods to compute the nullspace of a given matrix.
 MachineLearning
 Updating the IBagOfWords interface and implementing classes to implement the IUnsupervisedLearning and ITransform interfaces;
 Updating ZeroOneLoss to handle class labels in the 1/+1 format;
 Updating the kernel cache to precompute the entire kernel matrix by default.
 Statistics
 Adding random generators for the vonMises Fisher distribution;
 Updating documentation examples for Hidden Markov Models, Hidden Markov Classifiers and their respective algorithms;
 Adding a new GammaOptions class to pass fitting options to Gamma distributions;
 Updating DistributionAnalysis to use the new machine learning interfaces/API;
 Updating code and documentation for Dynamic Time warping kernel;
 Updating Gamma distribution so probabilities are computed in the logdomain by default;
 Marking Moving and Running statistics as ISerializable;
 Adding methods to compute the marginals in multivariate discrete distributions;
 Adding RunningRangeStatistics and MovingRangeStatistics.

v3.3.0 Changes
September 16, 2016🚀 > Build 3.3.0.5736, released on 17.09.2016
🚀 Accord.NET Framework 3.3.0 release notes
17.09.2016.
🔖 Version updates and fixes:
 👍 GC62: Add support for computing prediction intervals in linear and generalized linear models
 GH113: System.AggregateException thrown in C45Learning.Run;
 📚 GH115: Add documentation about how to work with sparse data;
 📜 GH130: Multi class support vector machine doesn't work with SparseGaussian kernel;
 GH139: Examples using explicit kernel matrices;
 GH178: DecisionTreeWriter uses local CultureInfo when writing values;
 GH249: Potential bug in RandomForest or C45Learning;
 GH201: Adding Generalized Pareto Distribution;
 GH245: Incorrect method usage in Distance.GetDistance;
 GH255: Adding examples on how to use Laplace rule in Naive Bayes learning;
 GH253: BlobCounter needs a IDisposable implementation;
 GH252: Bug in Kurtosis Contrast Function;
 GH270: Adding example to show to use continuous variables in C4.5;
 👍 GH271: OneclassSupportVectorLearning does not use shrinking heuristics property;
 GH281: Possible bug in GammaDistribution generation function when k < 1;
 GH282: Issue in LogisticRegression.Transform() returns true for all inputs;
 🔀 GH280: Merge pull request #280 from fchaa/FixSMOCacheSize;
 🔀 GH278: Merge pull request #278 from kulov/development;
 🔀 GH272: Merge pull request #272 from kdbanman/GH271;
 🔀 GH269: Merge pull request #269 from mikhailbarg/minorfix;
 GH273: VideoFileWriter not working;
 🔀 GH274: Merge pull request #274 from hzawary:development;
 GH285: Deserialize of Codification error in 3.2.0;
 GH286: Ransac  possible bug in calculation of 'N' if pInlier = 0;
 GH288: NaiveBayes issue when probability is 0;
 GH289: Incorrect use of GetLength(0) for jagged arrays in Matrix class.
 General
 This will be last release that includes an executable installer. If you
🚚 are still using the installer, please move to NuGet or use the framework
compressed archive files.
 This will be last release that includes an executable installer. If you
 Imaging
 Creating a new Accord.Imaging.Noncommercial assembly to hold noncommercial imaging methods;
 Adding Fast Guided Filter to Accord.Imaging.Noncommercial.
 MachineLearning
 Fixing Binary Split's learn method to accept null weights;
 Updating Binary Split example to reflect the new API;
 Adding constructors to allow tree inducing algorithms to create a tree from scratch;
 Statistics
 Fixing multiple issues with statistical analyses classes when they are used using the
🆕 new classification/regression APIs;  Statistical measures (Measures.cs) have been moved to the Accord.Math assembly,
but have been kept under the Accord.Statistics namespace;  Correcting L2regularization in Logistic Regression.
 Fixing multiple issues with statistical analyses classes when they are used using the

v3.2.0 Changes
August 20, 2016🚀 > Build 3.2.0.5706, released on 20.08.2016
🚀 Accord.NET Framework 3.2.0 release notes
20.08.2016.
🚀 Accord.NET 3.2 "autogenerated" release
🔖 Version updates and fixes:
 GH76/GC24: Add easier creating and handling of factors for categorical variables
 GH123: Bug in the Euclidean on Accord.Math.Distance
 GH124: Fixing the Envelop filter as missing loop variables were not being incremented
 GH135: When the from and to ranges are equal, scaled values should remain unchanged
 GH159: Gamma Distribution Fit stalls for some arrays
 GH162: ntdll on OS X
 GH167: Posterior method has wrong signature in continuous hidden Markov Models
 GH171: Quadratic Programming (GoldfarbIdnani) NoPossibleSolution on possible problems
 GH188: ProbabilisticOutputCalibration Class Example Incorrect Object Name
 GH206: Chessboard distance is incorrect
 GH214: Bug found in ReplaceChannel filter
 GH215: Bug Found in DecisionTrees.Learning.ID3Learning.
 GH225: Independent Component Analysis not converging
 GH232: Bug in Levenshtein distance.
 GH234: The subset of observations corresponding to a decision node may contains duplicates
 GH235: The getMaxChild method returns the max grandchild
 GH236: Possiblybiased comparison between errors
 GH237: The subset of observations corresponding to a decision node may contains duplicates
 GH240: Re() and Im() function of ComplexMatrix generates a OutOfRangeException
 General
 In this release, the Matrix library from Accord.Math has been almost completely
redesigned to make heavy use of automatic code generation. This results in more
code reuse, more consistent interfaces and the availability of many methods which
before were available only for Double to almost all native numerical types in the
.NET Framework;  The framework now contains core classes and interfaces for defining classification
and regression models and their respective learning algorithms, offering a more
standard interface when using different parts of the framework;  The framework now offers a Accord.Serializer class that should be responsible for
serializing and deserializing any object from the framework, and will take care of
🔖 versioning in case of breaking changes between releases;  All AForge.NET namespaces have been finally moved to inside Accord.NET, although
some functionality is still duplicate.
 In this release, the Matrix library from Accord.Math has been almost completely
 Core
 Adding Interlocked operations (Increment, Add) for double values;
 To<> universal converter can now convert jagged arrays;
 Adding a common framework to unify all classification models, and all learning algorithms;
 Integrating the AForge.NET Range classes in the framework, adding ByteRange;
 Adding a common serialization mechanism to the framework to manage backwards compatibility;
 All classes from Accord.MachineLearning.Structures have been moved into Accord.Collections;
 Updating RedBlackTrees to implement the new base classes for tree structures;
 Updating KDTrees to implement the base classes for tree structures (introduces breaking changes).
 Sample applications
 Fixing wrong arguments in sample applications.
 Math
 Revamped matrix library making heavy use of code generation with T4 templates;
 Matrix dot products, and elementwise operations are now autogenerated;
 Renaming InnerProduct to Dot, and marking previous products as obsolete;
 Vector Range, Scale and Interval are now autogenerated;
 Standardizing the way Vectors, Matrices and Jagged matrices are created and handled
in the framework;  Adding OneHot and KHot methods overloads for creating vectors using boolean masks;
 Adding ArgMin and ArgMax methods to Vector, Jagged and Multidimensional matrices;
 Reimplementing Matrix.Sum and Matrix.Product using T4 templates;
 Breaking change: Sum() now computes the Sum over the entire matrix (before it needed
to be done with Sum().Sum(). In order to compute the sum vector over rows, use matrix.Sum(0)
and for columns, matrix.Sum(1);  Chessboard distance has been removed as it is the same as Chebyshev;
 Moving AForge.NET's old Random classes into the framework, and marking them as deprecated;
 Adding a log1pexp method for computing (1.0 + Math.Exp(sum)) without loss of precision;
 Adding new random generators based on Marsaglia's Ziggurat method;
 Introducing a new, generic IRandomNumberGenerator interface so existing statistical
distributions can be used as Random Number Generators;  Updating Matrix.IsEqual method to use the autogenerated overloads if possible;
 Replacing the previous frameworkwide generator with a better API;
 Improving the frameworkwide random number generator so generators created in short
⚡️ timespans do not get initialized with the same seed: Now, updating a seed will not
affect existent random generators in other threads. It will affect only newly created
generators and the one in the current thread;  Fixing the DiagonalMatrix property in SingularValueDecomposition and
JaggedSingularValueDecomposition so the returned diagonal matrices has the necessary
dimensions to reconstruct the original matrix using the decomposition main formulation;  Fixing a bug in Combinatorics.Sequences method where the current vector would be returned
instead of a copy when inPlace = false;  Distance functions can now be autogenerated from classes from the framework;
 Adding Dice, Jaccard, Kulczynski, Matching, RogersTanimoto, RusselRao, Sokal Michener,
Sokal Sneath, Yule, Bhattacharyya and LogLikelihood distances as proper classes;  Updating IsEqual to support absoluete and relative tolarance thresholds;
 Adding a Histogram method for creating a histogram from an array of integer values;
 Updating the Interval, Range and Scale method overloads to be automatically generated;
 Adding loss functions to be used in the unified framework;
 Moving the Elementwise class to a separate Accord.Math.Core project in order to avoid
🏗 excessive build times due the number of autogenerated methods in this class;  Adding overloads to Eigenvalue decomposition to automatically sorter eigenvectors and
eigenvalues in descending order of absolute eigenvalue;  Adding a dedicated Sort static class with orderingrelated methods such as Partition,
Introsort and NthElement.  Expanding decompositions with two additional methods: GetInformationMatrix and Reverse
GetInformationMatrix can be used to retrieve the standard errors for each coefficient
when solving a linear system; Reverse reconstructs the original matrix using the definition
of the decomposition;  Deprecating Submatrix in favor of Get (methods with noninclusive last indices);
 Adding ArgSort function for retrieving the indices that can be used to sort a vector;
 Adding LogSumExp to the set of special functions.
 MachineLearning
 Adding a base foundation to encompass all classification and regression models in the
framework as well as their learning algorithms: common interfaces and base classes for
classifiers, distancebased classifiers and generative classifiers; common interfaces
and base classes for supervised and unsupervised learning algorithms;  Updating Support Vector Machines, Decision Trees, Naive Bayes, Regressions and Analyses
to use the new classes;  Unifying Linear and Kernel SupportVectorMachines, updating their classes to accept the
Kernel function as a generic parameter: when the kernel function is a ValueType, this
👮 forces generic classes to be compiled specifically for each kernel type, allowing for
the inlining of the kernel function calls;  Updating the way compact SVMs are represented: instead of having only a weight vector
👍 and no support vectors, compact machines have a single support vector and a single weight
of value one, eliminating what before was a special case;  Adding classes for OneVsOne and OneVsRest classifiers, separating the functionality that
👍 was previously inside MulticlassSupportVectorMachine and MultilabelSupportVectorMachine;  Fixing multiple issues with ErrorBasedPruning (YaronK);
 Updating GridSearch to implement ToString methods for easier debugging;
 Updating Linear machines and learning algorithms to accept sparse kernels;
 Deprecating the previous sparse vector implementations and moving the current implementation
to the existing Linear class, since they represent the same operation;  Adding a true implementation for LibSVMstyle Sparse vectors;
 Updating SparseReader to read sparse vectors using the new Sparse representation;
 Refactoring the clustering namespace to increase code reuse between the different algorithms;
 Updating KMeans, GMM and BagOfWords to expose a ParallelOptions object that can
🔧 be used to configure and stop the parallelization of those algorithms;  Updating KMeans to support sample weights;
 Correcting multiple random initializations of Gaussian mixture model;
 Adding a PriorityQueue class based on the MITlicensed code by Daniel "BlueRaja" Pflughoeft.
 Adding VantagePoint and SpacePartitioning trees and Barnes Hutt tSNE based on the original
code from Laurens van der Maaten BH tSNE implementation;  Adding a basic implementation for the Apriori algorithm.
 Adding a base foundation to encompass all classification and regression models in the
 Imaging
 Updating static methods in AForge.NET's Image class to become extension methods;
 Implementing ICloneable in all corner and feature detectors.
 Neuro
 Updating ResilientBackpropagation with the improvements from iRProp+.
 Statistics
 Adding Non negative Least Squares regression;
 Adding Procrustes Analysis;
 Deprecating IAnalysis in favor of the new framelet for classification,
regression and transformation methods;  Merging AForge.NET and Accord.NET Histogram classes;
 Updating IFittingOptions to implement ICloneable;
 Adding constructors to Independent distributions accepting a lambda function
to initialize inner components instead of relying on cloning;  Adding a Classes class to provide methods that operate with categorical/label data,
such as converting boolean, double or integer values to [0;1] or [1; +1] indicators;  Adding Decide methods to unambiguously transform a distance/score value into a boolean;
 Updating statistic distributions to implement the IRandomNumberGenerator interface, meaning
any distribution can now be used as random number generator;  Adding the MetropolisHasting sampler to generate samples from multivariate distributions
that do not have specialized samplers;  Adding named constructors for building regressions directly from coefficient vectors;
 Updating kernels to rely in Accord.Math.IDistance instead of the previous IDistance from
the Statistics namespace;  Adding Pearson's Universal Kernel, Thin Spline Plate and Hellinger kernels
contributed by Diego Catalano;  Moving standard statistical measures (i.e. mean, standard deviation, variance, ...) to a
separate Measures class;  Updating Mean methods to operate in the same way as Sum: if a dimension is not specified,
the Mean will be computed across all dimensions of the matrix;  Updating Hidden Markov Models to use the new Tagger interfaces and base classes.
 Genetics
 Updating the Genetics project to use the new sample generators based on statistical
distributions;
 Updating the Genetics project to use the new sample generators based on statistical

v3.0.0 Changes
August 16, 2015🚀 Accord.NET Framework 3.0.0 release notes
16.08.2015.
🔖 Version updates and fixes:
 🔀 GC70: Merge with AForge.NET.
 ✅ GC90: Convert unit test projects to NUnit
 GH114: GeneralizedBetaDistribution's calls Random with wrong parameter order
 General
 This release marks a milestone in the Accord.NET Framework. Starting from this
🚀 release, the AForge.NET Framework has been incorporated directly in the project,
🆓 meaning that we are now free to fix, maintain, transform and improve AForge.NET
directly.  This release provides most of the AForge.NET namespaces unchanged. This means
that this specific version of Accord.NET Framework can be used as dropin
replacement in any project currently using the AForge.NET Framework and that
⬆️ is willing to upgrade to Accord.NET sometime in the future.  This release is mostly a transition release to help projects using the AForge.NET
🚀 framework make the transition to Accord.NET more easily. Further releases will be
aimed at improving the interaction between the two codebases and streamlining the
provided functionality.
 This release marks a milestone in the Accord.NET Framework. Starting from this

v2.15.0 Changes
May 01, 2015🚀 > Build 2.15.0.5233, released on 01.05.2014
🚀 Accord.NET Framework 2.15.0 release notes
01.05.2015.
🔖 Version updates and fixes:
 GC56: Reuse decision attributes in the C4.5 algorithm for decision trees;
 ⚡️ GC109: The GoldfarbIdnani optimizer does not optimize well some problems;
 ✅ GH24: Disentangling unit test projects and adding a LGPLonly project;
 GH57: Decision trees created using C4.5 depends on the sorting order;
 GH58: SURF detector might generate Divide By Zero exceptions;
 GH60: Regularization breaks LogisticRegressionAnalysis in 2.14;
 GH61: SVM code that worked with version 2.11 now fails to converge;
 👻 GH64: Exception in KPCA when using jagged matrices;
 GH69: Fix KMeans deserialization between framework versions.
 General
 Upgrading solution to VS2013 and adding support for .NET 4.5;
 Packaging scripts can now create NuGet symbol packages;
 The framework can now be built using Mono.
 Accord.Statistics
 Correcting Circular statistics' AngularDeviation method;
 Correcting kernel profile functions and their gradient;
 Improving the precision of the Binomial distribution;
 Improving sample generation for Poisson and Rayleigh distributions;
 Updating all univariate distributions to support sample generation;
 Making sure all probability distributions implement IFormattable;
 Adding Generalized Beta distribution with PERT estimation;
 Adding the vonMises Fisher distribution for circular data;
 Adding sample generation in Beta and Generalized Beta distributions;
 Adding estimation using the Methodofmoments and Maximum Likelihood;
 Adding support for weighted samples in LogisticRegressionAnalysis;
 Adding a named constructor to create an Analysis from summary data;
 Adding all missing ShapiroWilk distribution's methods;
 Adding a common interface for radial basis function kernels;
 Adding a new generic Gaussian kernel for creating composite kernels;
 Adding a Windowing filter in the Statistics filters namespace;
 Adding support for weighted samples in LogisticRegressionAnalysis;
 Adding a named constructor to create an Analysis from summary data;
 Adding Multinomial Logistic Regression Analysis.
 Accord.Math
 Updating Augmented Lagragian to detect more accurately
when the inner optimization algorithm has diverged;  Adding a new Fast Fourier Transform (FFT) implementation for general
matrices and vectors whose dimensions are not necessarily powers of 2;  Adding Hellinge and Levenshtein distances for generic arrays;
 Adding jaggedmatrix version of the QR and Eigenvalue decompositions.
 Updating Augmented Lagragian to detect more accurately
 Accord.MachineLearning
 Updating tree inducing algorithms (ID3 and C4.5) se they can reuse
decision variables multiple times when creating a decision tree;  Correcting LevenbergMarquardt's chainrule Jacobian calculation
when there are many output neurons in the learned neural network;  Updating the way SVM learning algorithms detect whether a machine is linear or not;
 Updating SVM learning algorithms to use an heuristic value for
0️⃣ C by default unless it has been manually specified by the user;  Updating the linear kernels so they are created without a constant term by default;
 Improving multiclass SVM to generate more userfriendly stack traces when
👻 an exception occurs during the learning of one of the binary subproblems;  Updating KdTrees to use interval heaps instead of general .NET structures;
 Adding NuSVMs based on LibSVM's quadratic programming solver.
 Updating tree inducing algorithms (ID3 and C4.5) se they can reuse
 Accord.Neuro
 Updating LevenbergMarquardt to avoid setting lambda to zero.
 Accord.Imaging
 Updating IntegralImage to work with In64 matrices to avoid overflows;
 Correcting Variance, Sauvola and Niblack threshold filters;
 Adding Fast Variance, WolfJoulion Threshold, RG Chromaticity and
Objective fidelity filters.
 Accord.IO
 Integrating and repackaging Sebastien Lorion's Fast CSV Reader into the Accord.IO
👍 namespace with an added support for autodetecting the file's field delimiter.
 Integrating and repackaging Sebastien Lorion's Fast CSV Reader into the Accord.IO
 Accord.Audio
 Adding IWindow apply overloads to operate directly on double[] vectors;
 Adding Sine and Custom signal generators and correcting existing ones.
 Sample applications
 Adding feature selection sample application using L1regularized logistic SVMs;
 Correcting the display of all sample applications in highDPI displays.

v2.14.0 Changes
December 08, 2014🚀 > Build 2.14.1.5087, released on 15.12.2014
🚀 Accord.NET Framework 2.14.0 release notes
15.12.2014.
🔖 Version updates and fixes:
 GH29: HiddenConditionalRandomField is not correctly serialized;
 GH31: Adding hidden Markov Model methods for computing the probability of
a state assuming a particular value inside an observation sequence;  GH36: Extensions class collides with the Accord.NET Extensions Framework;
 GH35: Distribution issue with .NET 3.5 assemblies;
 GH37: Adding Taylor series functions and dissimilarity functions;
 GH42: Adding new contributed distance functions;
 👍 GH46: Optimization functions and constraints to now support different cultures;
 🌲 GH48: Fix calculation of log likelihoods for BaumWelch learning algorithm;
 GC33: GoldfarbIdnaniQuadraticSolver class failed to give correct answer.
 Accord.Core
 Adding RedBlack trees and a RedBlack dictionary based on those trees
👍 with support for efficiently searching for maximum and minimum elements.
 Adding RedBlack trees and a RedBlack dictionary based on those trees
 Accord.IO
 Updating the IDX reader to automatically convert between different data types.
 Accord.Math
 Adding the NelderMead and Subplex nonlinear optimization algorithms;
 Adding matrix padding methods (adding extra rows and columns with zeros);
 Updating quadratic optimization constraints to support tolerance parameters.
 Accord.Statistics
 Adding regularization in IterativeReweightedLeastSquares;
 Adding DistributionAnalysis for estimating distributions from observed data;
 Adding weighted measure methods in Statistics.Tools that are
based on element repetitions rather than element importance;  Adding AndersonDaring, ShapiroWilk, Inverse ChiSquare, Lévy, Folded
🌲 Normal, Shifted LogLogistic, Kumaraswamy, Trapezoidal, Uquadratic and
BetaPrime distributions;  Adding AndersonDaring and ShapiroWilk hypothesis tests;
 Correcting the MarkovMultivariateFunction constructor for
explicit Independent hidden Markov models;  Correcting discrete Viterbi learning convergence check and unifying
the Viterbi implementations for discrete and continuous variables;  Correcting the calculation of log likelihoods in Baum Welch learning;
 Correcting serialization issue with DynamicTimeWarping kernel;
 Updating all distribution functions constructors to offer Range attributes
that can be used to automatically determine valid values for its parameters;  Updating Logistic Regression and Cox's Proportional Hazards
✅ analyses to avoid computing LRratio tests unless necessary;  Updating Multivariate Empirical Distributions to support CDF;
 Updating Empirical Distributions to support weighted samples;
 Updating CRF output feature functions to activate only once per sequence;
 Updating all probability distributions to offer a Generate method;
 Updating ChiSquare Test to support testing against continuous distributions;
 Updating univariate discrete distributions with Quantile Density functions.
 Accord.MachineLearning
 Adding LIBLINEAR's linear support vector regression (SVR) algorithms;
 Adding LinearCoordinateDescent for the primal formulation and renaming the
previous coordinate descent algorithm to LinearDualCoordinateDescent;  Adding named constructors in Naive Bayes to build Gaussian models more easily;
 Updating Naive Bayes classifiers to estimate component variables in parallel;
 Updating ID3 algorithm so attributes can join multiple times a decision;
 Updating BagofVisualWords to avoid computing costly cluster measures;
 Updating KMeans to support setting algorithm options through its class itself;
 Updating KNearestNeighbor feature matching to use KDTrees when its possible;
 Updating errorbased pruning to avoid computing modes when there are no elements;
 Updating KModes to select modes per column, instead of entire elements. Now it
is also possible to use the Kmeans++ initialization scheme in this algorithm.
 Accord.Neuro
 Adding Rectified Linear activation functions.
 Accord.Imaging
 Fixing Niblack and Sauvola thresholding algorithms for 8bpp images.
 Accord.Audio
 Adding a Volume adjustment filter for audio signals.
 Accord.Controls
 Adding a DataBarBox visualization box;
 Updating visualizations to offer more flexibility in customizing ZedGraph charts;
 Sample applications
 Adding support for adjusting volume in the Recorder sample application.