What's new in Accord.NET Framework Portable 3.8.0

Jun 12, 2019
  • Version updates and fixes:
  • GH-82: Add support for weighted PCA;
  • GH-127: Fast KMeans (Request);
  • GH-145: MovingNormalStatistics;
  • GH-157: Issue in Survival analysis using VB.NET;
  • GH-184: Add an Example for Graylevel coocurrences;
  • GH-211: Any samples on how to use Boosted Decision Trees;
  • GH-257: DFT functions in AForge.Math.FourierTransform and Accord.Math.Transforms;
  • GH-262: C45Learning Discrete vs Real;
  • GH-374: Dictionary of video capabilities doesn't take into account the video framerate;
  • GH-376: Add an Example for VideoCaptureDevice Class;
  • GH-377: Add an Example for LevenbergMarquardt Class;
  • GH-415: Add an Example for AdaBoost(TModel);
  • GH-421: Add an Example for KalmanFilter2D Class;
  • GH-422: Add an Example for DecisionStump.Learn Method;
  • GH-424: Add an Example for AdaBoost(TModel) Class;
  • GH-430: Add an Example for GeneralConfusionMatrix Constructor (Int32, Int32[], Int32[]);
  • GH-440: BagOfWords for audio signals;
  • GH-441: Add Mel Frequency Cepstral Coefficients (MFCC);
  • GH-466: Add an Example for Distance.Mahalanobis Method (Double[], Double[]);
  • GH-467: Add an Example for Spline Class;
  • GH-473: Add an Example for IParallel.ParallelOptions Property;
  • GH-476: Add an Example for TwoWayAnova Constructor (Double[][][], TwoWayAnovaModel);
  • GH-483: Add an Example for Haralick Class;
  • GH-486: Add an Example for LibSvmModel.Save Method (String);
  • GH-498: Add an Example for QLearning Class;
  • GH-500: Add an Example for FourierTransform2.FFT Method (Complex[], FourierTransform.Direction);
  • GH-505: Add an Example for ConfusionMatrix Constructor (Int32[], Int32[], Int32, Int32);
  • GH-517: Add an Example for Sarsa Class;
  • GH-519: Add an Example for NelderMead Class;
  • GH-530: Add an Example for Matrix.Inverse Method (Double[][]);
  • GH-532: Add an Example for GaussNewton Class;
  • GH-547: Add an Example for HaralickDescriptor Class;
  • GH-554: Add an Example for BinaryTree(TNode) Class;
  • GH-557: Add an Example for Matrix.Sort(TKey, TValue) Method (TKey[], TValue[,], IComparer(TKey));
  • GH-560: Add an Example for FourierTransform2.FFT Method (Double[], Double[], FourierTransform.Direction);
  • GH-566: Add an Example for Distance.GetDistance(T) Method;
  • GH-569: Add an Example for Distance.Euclidean Method (Double, Double, Double, Double);
  • GH-575: Add an Example for LuDecomposition Class;
  • GH-576: RandomForestLearning: Examples can't run with SampleRatio not equal 1.0;
  • GH-582: Add an Example for Matrix.Multiply Method (Double[], Double[,]);
  • GH-610: Add an Example for UnivariateContinuousDistribution.Fit Method (Double[]);
  • GH-616: Add an Example for LevenbergMarquardt Class;
  • GH-618: Add an Example for Apriori Class;
  • GH-629: Add an Example for AdaBoost(TModel) Class;
  • GH-636: Add an Example for Measures.Correlation Method (Double[][]);
  • GH-640: Add an Example for GaussianKernel Class;
  • GH-642: Add an Example for Matrix.PseudoInverse Method (Decimal[,]);
  • GH-653: Add an Example for HistogramsOfOrientedGradients Class;
  • GH-656: Add an Example for MatReader.Read Method (String);
  • GH-660: Add an Example for LogLikelihoodLoss Class;
  • GH-665: Add an Example for FourierTransform.FFT Method;
  • GH-687: Add an Example for ShapiroWilkTest Class;
  • GH-695: Add an Example for TFIDF.Transform Method (String[][]);
  • GH-703: Add an Example for Imputation Class;
  • GH-717: Possible issue with DynamicTimeWarp kernel class;
  • GH-718: Add an Example for Cosine.Distance Method;
  • GH-723: Procrustes analysis is giving weird/wrong results;
  • GH-727: Add an Example for IRadialBasisKernel Interface;
  • GH-730: Binary-Split with normalized FREAK;
  • GH-739: Add an Example for MultipleLinearRegression.CoefficientOfDetermination Method;
  • GH-756: Add an Example for ProportionalHazardsAnalysis.LogLikelihood Property;
  • GH-764: Add an Example for AndersonDarlingTest Class;
  • GH-769: Issue using visual bag of words with large images;
  • GH-783: Add an Example for LocalBinaryPattern Class;
  • GH-785: Add an Example for Tools.RandomGroups Method (Int32, Double);
  • GH-787: Add an Example for HiddenMarkovModel(TDistribution, TObservation).Predict Method (TObservation[]);
  • GH-789: Add support for OS X;
  • GH-792: Add an Example for FisherExactTest Class;
  • GH-793: Add an Example for HoughLineTransformation Class;
  • GH-798: System.AccessViolationException in FastBoxBlur;
  • GH-800: Missing dependency for Accord.Neuro in NuGet;
  • GH-802: Index outside of the bounds of the array in Naive Bayes;
  • GH-803: NaN probabilities from large features with MultinomialLogisticRegression;
  • GH-805: Unsafe keyword being exposed in the public API;
  • GH-807: Add an Example for CrossValidating NaiveBayes;
  • GH-809: The Codification filter should honor the value of DefaultMissingValueReplacement unless overriden;
  • GH-811: Naive Bayes should provide better argument checking for negative symbols;
  • GH-812: ZhangSuenSkeletonization filter not exist to use;
  • GH-814: Add an Example for MulticlassSupportVectorMachine(TKernel, TInput) Class;
  • GH-818: Add an Example for LinearConstraint Class;
  • GH-819: Quadratic Objective Function to support basic vector operations;
  • GH-820: Augmented Lagrangian to support linear constraints;
  • GH-824: Improve number of class inference in ZeroOneLoss;
  • GH-825: Replace multi-dimentional with jagged arrays in IntegralImage.cs;
  • GH-828: Accord.Neuro under .Net Standard 2.0;
  • GH-830: Read PGM image pending;
  • GH-831: Index outside of the bounds of the array in Naive Bayes;
  • GH-843: Where is Accord.NET AdaBoost Decide method;
  • GH-845: Add an Example for Decision Structure;
  • GH-848: Wilcoxon Signed Rank Test for PAIRED samples: TwoSampleWilcoxonSignedRankTest;
  • GH-849: TwoSampleWilcoxonSignedRankTest crashing when sample vectors are exactly the same values;
  • GH-852: Add an Example for DecisionSet Class;
  • GH-853: Access to last Hessian in BoundedBroydenFletcherGoldfarbShanno;
  • GH-856: Add an overload to IsSymmetric that accepts a tolerance;
  • GH-857: Mann-Whitney-U Test producing strange results;
  • GH-862: Accord.Math -> Vector -> T[] Sample(T[] values, int size) incorrect;
  • GH-865: Measures.Quartiles: value for Q1 (lower quartile) wrong in QuantileMethod.R;
  • GH-873: Add an Example for DecisionRule Class;
  • GH-876: Allow the maximum frame rate possible in DirectShow for VideoCaptureDevice;
  • GH-877: Add an Example for HaarCascadeWriter Class;
  • GH-878: Accord.Math.Transforms.FourierTransform2.DFT2 Is bugged;
  • GH-882: Adding lazy evaluation to matrix decompositions;
  • GH-885: Add an Example for Signal.GetEnergy Method;
  • GH-890: Add an Example for MultinomialLogisticRegressionAnalysis Class;
  • GH-897: Wrong status text in ImageView from DebugVisualizer;
  • GH-898: The Range method is producing some unexpected results;
  • GH-899: Add an Example for IntegralImage2 Class;
  • GH-900: Add an Example for ExhaustiveTemplateMatching Class;
  • GH-901: Add an Example for HSL Class;
  • GH-911: Character case of folder name;
  • GH-913: KNearestNeighbors can not be serialized;
  • GH-917: Two C++ projects require "Platform toolset v141" which is only available on VS2017;
  • GH-919: Build failed for Samples.sln on VS 2015;
  • GH-921: Fix for the normal random number generator when a seed is specified;
  • GH-924, GH-925: Fixing the seeded exponential generator;
  • GH-927: Broadcasting dimension seems counter-intuitive;
  • GH-929: Add an Example for SpeededUpRobustFeaturesDescriptor Class;
  • GH-930: Add an Example for FastCornersDetector Class;
  • GH-931: Add an Example for MatchingTracker Class;
  • GH-937: Add an Example for LogisticRegression Class;
  • GH-948: Accord.Video.FFMPEG.VideoFileReader should provide frame-based random access;
  • GH-949: Add the Free Spoken Digits Dataset to Accord.DataSets;
  • GH-950: Add a dataset for example test videos;
  • GH-955: KalmanFilter2D throws System.NullReferenceException;
  • GH-956: 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 multi-channel 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 bag-of-word 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 framework-wide random number generator, and deprecating their Reset method;
  • DataSets:
  • Adding the Yin-Yang dataset as an example of a non-linear 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 element-wise operations that accept a VectorType enumeration instead
  • of a integer for specifying to which dimension the element-wise 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 8-bpp image is a color image (non-grayscale);
  • Adding a new ConvertColor8bppToGrayscale8bpp extension methods to convert these into grayscale 8-bpp 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.

New in Accord.NET Framework Portable 3.7.0 (Jun 12, 2019)

  • Version updates and fixes:
  • GH-53: K-Medoids algorithm;
  • GH-335: Nelder-mead solver not converged;
  • GH-444: Reenable F# Unit Tests;
  • GH-587: UnmanagedImage does not supported in ExtractBiggestBlob filter;
  • GH-594: FFMPEG net35 not working;
  • GH-621: How to calculate the cache size in respect of the available RAM;
  • GH-662: 64-bit FFMPEG binaries not in output after installing with NuGet;
  • GH-669: Confusion Matrix;
  • GH-673: Stream closes after serialization with GZip compression;
  • GH-676: DoubleArrayChromosome CreateNew ignores Balancer properties;
  • GH-684: BalancedKMeans gets stuck;
  • GH-688: Cobyla constraint definitions only work with constant values;
  • GH-690: Add an Example for Cross-Validation with DecisionTrees;
  • GH-692: Add an Example for StochasticGradientDescent Class;
  • GH-693: One-class SVM decision rule;
  • GH-694: Add support for Weighted Least Squares;
  • GH-696: IndexOutOfRangeException exception in Matrix.First method;
  • GH-697: Add an Example for HiddenMarkovModel(TDistribution, TObservation);
  • GH-699: MJPEGStream throws NotImplementedException in .NET Core 2.0;
  • GH-700: MJPEGStream throws InvalidOperationException in .NET Core 2.0;
  • GH-706: DecisionTree.ToCode() returns code that does not compile;
  • GH-707: DecisionTree.ToCode() returns code that compiles;
  • GH-711: Nonlinear Regression in VB.NET;
  • GH-712: Update MJPEGStream.cs ;
  • GH-715: GeneralizedParetoDistribution shape param;
  • GH-717: Possible issue with DynamicTimeWarping kernel class;
  • GH-723: Procrustes analysis is giving weird/wrong results;
  • GH-729: Error in ExhaustiveBlockMatching;
  • GH-731: Dilatation;
  • GH-736: Measures.Quartiles() for double Vectors of size 2 is wrong;
  • GH-737: Add examples for C45Learning Class with missing data and thresholds;
  • GH-745: Cannot change degree of a default Polynomial kernel;
  • GH-746: Add an Example for CrossValidation Class;
  • GH-747: How to understand the Probabilities;
  • GH-749: 64 bit release for .NET 4.0;
  • GH-752: Speed up matrix-vector operations;
  • GH-758: NullReferenceException on NaiveBayes Learn;
  • GH-765: NaiveBayes 'System.IndexOutOfRangeException' occurred in Accord.Statistics.dll when calling from sample application;
  • GH-767: DebugVisualizers;
  • GH-777: Bug in LinearConstraintCollection documentation;
  • GH-778: 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 K-Medoids (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 mini-batch 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 ground-truth 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 multi-label and binary classifiers;
  • Fixing the Probabilities and LogLikelihoods methods for multi-label and multi-class 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 GH-762: 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 Levenberg-Marquardt.

New in Accord.NET Framework Portable 3.6.0 (Jun 12, 2019)

  • Version updates and fixes:
  • GH-168: Text naive bayes classification gives wrong results;
  • GH-207: ResizeBilinear filter can support more pixel formats;
  • GH-259: K-means clustering exception;
  • GH-318: Adding support for .NET Standard 2.0;
  • GH-389: Wilcoxon Signed Rank Test / Mann-Whitney-Wilcoxon Test - differences to R;
  • GH-407: Upgrade to NUnit 3;
  • GH-470: Multiclass SVM and DTW System.AggregateException;
  • GH-499: Add an example for K-means with mixed categorical and continuous data;
  • GH-540: Add an example for BaumWelchLearning(TDistribution, TObservation, TOptions) Class;
  • GH-549: Multithreaded BagOfVisualWords: "memory corrupt" problem;
  • GH-571: Accord.Controls is referencing wrong version of ZedGraph on NuGet;
  • GH-602: Robust multivariate regression causes IndexOutOfRangeException;
  • GH-605: Renaming AudioCodec.M4A to AudioCodec.MP4ALS;
  • GH-604: ColorSlider component resource path's fix;
  • GH-606: LowerBoundNewtonRaphson: how to check if converged;
  • GH-607: from perezale/aleperez-development;
  • GH-611: Framerate issues when transcoding video;
  • GH-614: Index out of bounds error in SingularValueDecomposition.Solve;
  • GH-619: AugmentedLagrangian hangs on linear problem;
  • GH-621: How to calculate the cache size in respect of the available ram;
  • GH-624: Add an Example for Chart Class;
  • GH-627: Exposing more distribution fields as public properties;
  • GH-628: Inject other Random.Generators (like Mersenne Twister);
  • GH-630: GeneralizedBetaDistribution.ProbabilityDensityFunction does not have an area of 1;
  • GH-631: Adding test case for GoldfarbIdnaniStatus is Success even when Solution violates constraints;
  • GH-632: ExponentialDistribution.DistributionFunction return values outside [0,1];
  • GH-647: Adding weighted versions of the Euclidean and Square Euclidean distances;
  • GH-649: Add an example for NonNegativeLeastSquares Class;
  • GH-654: Adding the Distance Transform and Watershed algorithms;
  • GH-663: 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 Grid-Search 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 K-Means++ initialization;
  • Fixing issue with K-Means 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 read-and-write rather than read-only.
  • Imaging:
  • Adding the Zhang-Suen 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 Bag-Of-Visual-Words when using parallel processing.
  • Statistics:
  • Marking Sparse kernel classes as deprecated;
  • Adding Dirac's Delta as a (non-metric) 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, HMM-based 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 Inverse-Wishart 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 distribution-specific 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 L-BFGS 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.

New in Accord.NET Framework Portable 3.5.0 (Jun 12, 2019)

  • Version updates and fixes:
  • GH-55: Adding support for computing TF-IDF vector representations;
  • GH-213: Linear SVM with SGD Training Support;
  • GH-297: Looking for "multinomial Logistic Regression (cross-entropy loss)" in accord like sklearn;
  • GH-330: Liblinear (Linear SVMs) does not train, exits with "index out of range";
  • GH-352: Take so much time create a SequentialMinimalOptimizationRegression in Accord.NET;
  • GH-355: SVM non-sequential 0 to n class outputs causes index out of bounds;
  • GH-365: Updating LBP to work with BoW;
  • GH-373: FrameRate as double in Accord.Video.FFMPEG;
  • GH-379: Updating NuGet specification files so assemblies are placed under net452 and net461;
  • GH-386: KNearestNeighbors Constructor (Int32, Int32, Double[][], Int32[], IMetric(Double[]));
  • GH-389: Wilcoxon Signed Rank Test | Mann-Whitney-Wilcoxon Test - differences to R;
  • GH-390: MachineLearning.KMeans: Balanced clustering;
  • GH-396: Using Parallel.For with LinearCoordinateDescent;
  • GH-397: Add an Example for OneclassSupportVectorLearning(TModel, TKernel, TInput) Class;
  • GH-398: PrincipalComponentAnalysis serialization error in v3.4.0;
  • GH-391: Add an Example for DecisionTree Class;
  • GH-392: Add an Example for GrayLevelCooccurrenceMatrix Constructor;
  • GH-393: Add an Example for GrayLevelCooccurrenceMatrix Constructor (Int32, CooccurrenceDegree, Boolean, Boolean);
  • GH-396: Using Parallel.For with LinearCoordinateDescent;
  • GH-399: Add an Example for HaarObjectDetector Class;
  • GH-401: KNearestNeighbors parallel;
  • GH-402: Add an Example for BagOfWords Class;
  • GH-405: Add an Example for RandomForest Class;
  • GH-409: Add an Example for Serializer.Load(T) Method (String);
  • GH-419: Add an Example for Combinatorics.Subsets(T) Method (ISet(T), Int32, Boolean);
  • GH-431: AugmentedLagrangian fails on standard convex quadratic problem;
  • GH-434: Possible issue with PolynomialLeastSquares() Class;
  • GH-438: Error on LocalBinaryPattern Clone();
  • GH-446: Add an Example for PolynomialRegression Class;
  • GH-448: Could not load type 'SharpDX.Bool' from assembly 'SharpDX, Version=3.1.1.0;
  • GH-451: BalancedKMeans does not find a solution for this case;
  • GH-538: CSVReader Ignores specified delimiter;
  • GH-556: 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 pre-process well-known 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 thread-specific 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 Mann-Whitney 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 Mann-Whitney tests: adding a correction for ties in the variance of the Normal approximation; adding checks to make sure we don't generate p-values 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 K-Nearest Neighbor to use the new classification/learning interfaces;
  • Adding parallelism to the non-data-structure-based version of K-Nearest Neighbors;
  • Accord.Imaging:
  • Adding support for LocalBinaryPattern and Haralick in Bag-of-Visual-Words.

New in Accord.NET Framework Portable 3.4.0 (Jun 12, 2019)

  • Version updates and fixes:
  • GH-19: Implement Grubbs' test;
  • GH-129: Possible error in Special.BSpline function;
  • GH-153: Visual Studio 2015;
  • GH-172: Add Random Forest Implementation;
  • GH-177: AugmentedLagrangian with NonlinearConstraints - Gradient NullReferenceException issue;
  • GH-183: Severity Check in NumberOfVertices Set Property on DiscreteCurveEvolution Class;
  • GH-229: Can't build cloned repository;
  • GH-250: Prediction interval - Accord.Statistics.Models.Regression.LogisticRegression;
  • GH-264: Integer division instead of double in GetSpectralResolution;
  • GH-264: Incorrect use of loop variables in sample converter;
  • GH-264: Checking same arguments multiple times in blob counter;
  • GH-264: Checking length of same vector in a loop;
  • GH-264: Integer division instead of double in Math.Tools;
  • GH-264: Dependency classes of Denavit Harternberg IK solver should be marked as Serializable;
  • GH-264: Error when checking whether component mixtures implement IFormattable;
  • GH-264: Multivariate Empirical Distribution outdated/unecessary argument checks;
  • GH-264: Correcting the support for weighted samples in Inverse Gaussian Distribution;
  • GH-275: Examples for the GoldfarbIdnani solver are not up to date and do not compile;
  • GH-291: Accord.Imaging nuget dependencies;
  • GH-295: Accord.Video.FFMPEG.VideoFileWriter ignores bitrate;
  • GH-296: Update documentation for hidden Markov models;
  • GH-299: Update to .NET 4.6 and VS2015;
  • GH-302: Regression (SVMs) : NullReferenceException on clicking 'Create Machine';
  • GH-309: Compile error with release 3.2.2;
  • GH-310: Examples for L1-regularized (Logistic) regression;
  • GH-313: Inaccuracy in Accord.Math Pseudoinverse;
  • GH-314: V3.3.0 Cannot set input and output names in LogisticRegressionAnalysis;
  • GH-320: Shared Covariance Matrix for Gaussian Mixture Models;
  • GH-325: ClusterCollection doesn't implement IEnumerable properly (runtime error);
  • GH-327: NegativeBinomialDistribution Cum Dist func not returning expected value;
  • GH-301: Bug in Accord.Statistics.Analysis.DistributionAnalysis
  • GH-304: Bug in GammaDistribution.ProbabilityDensityFunction
  • GH-330: Liblinear (Linear SVMs) does not train, exits with "index out of range";
  • GH-331: RandomForest is not serializable;
  • GH-332: Partial Least Squares issue with NIPALS method and the new API;
  • GH-337: ExpectationMaximization max Iterations can't be changed;
  • GH-340: PoissonDistribution InverseDistributionFunction not returning expected value;
  • GH-365: Can HOG to work with BoW'2 with SVM or OSVM.
  • 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 element-by-element type conversions.
  • Math:
  • Adding support for computing the full QR decomposition (besides only the economy one);
  • Adding methods to compute the null-space 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 pre-compute the entire kernel matrix by default.
  • Statistics:
  • Adding random generators for the von-Mises 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 log-domain by default;
  • Marking Moving and Running statistics as ISerializable;
  • Adding methods to compute the marginals in multivariate discrete distributions;
  • Adding RunningRangeStatistics and MovingRangeStatistics.

New in Accord.NET Framework Portable 3.3.0 (Jun 12, 2019)

  • Version updates and fixes:
  • GC-62: Add support for computing prediction intervals in linear and generalized linear models
  • GH-113: System.AggregateException thrown in C45Learning.Run;
  • GH-115: Add documentation about how to work with sparse data;
  • GH-130: Multi class support vector machine doesn't work with SparseGaussian kernel;
  • GH-139: Examples using explicit kernel matrices;
  • GH-178: DecisionTreeWriter uses local CultureInfo when writing values;
  • GH-249: Potential bug in RandomForest or C45Learning;
  • GH-201: Adding Generalized Pareto Distribution;
  • GH-245: Incorrect method usage in Distance.GetDistance;
  • GH-255: Adding examples on how to use Laplace rule in Naive Bayes learning;
  • GH-253: BlobCounter needs a IDisposable implementation;
  • GH-252: Bug in Kurtosis Contrast Function;
  • GH-270: Adding example to show to use continuous variables in C4.5;
  • GH-271: OneclassSupportVectorLearning does not use shrinking heuristics property;
  • GH-281: Possible bug in GammaDistribution generation function when k < 1;
  • GH-282: Issue in LogisticRegression.Transform() returns true for all inputs;
  • GH-280: Merge pull request #280 from fch-aa/Fix-SMO-CacheSize;
  • GH-278: Merge pull request #278 from kulov/development;
  • GH-272: Merge pull request #272 from kdbanman/GH-271;
  • GH-269: Merge pull request #269 from mikhail-barg/minor-fix;
  • GH-273: VideoFileWriter not working;
  • GH-274: Merge pull request #274 from hzawary:development;
  • GH-285: Deserialize of Codification error in 3.2.0;
  • GH-286: Ransac - possible bug in calculation of 'N' if pInlier = 0;
  • GH-288: NaiveBayes issue when probability is 0;
  • GH-289: 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.
  • Imaging:
  • Creating a new Accord.Imaging.Noncommercial assembly to hold non-commercial 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 L2-regularization in Logistic Regression.

New in Accord.NET Framework Portable 2.8.1 (Jan 7, 2013)

  • General:
  • Working on more source code examples for the documentation.
  • Accord.Math:
  • Adding Levenshtein distance for strings.
  • Accord.Imaging:
  • Updating BagOfVisualWords to be fully serializable.
  • Accord.MachineLearning:
  • Adding K-dimensional trees (K-d trees);
  • Adding Mean-Shift clustering algorithm;
  • Adding support for weights in Gaussian Mixture Models;
  • Correcting the name of the K-Nearest Neighbors algorithm;
  • Improving K-Nearest Neighbors for double[] using a K-d tree;
  • Changing K-Nearest Neighbors generic argument to represent the
  • instance type rather than the type of the array of instances.
  • Accord.Statistics:
  • Adding interfaces for density estimation kernels;
  • Adding Gaussian, Epanechnikov, Uniform density kernels;
  • Adding Bartlett's and Levene's tests for variances;
  • Adding hypothesis tests for comparing ROC curves;
  • Adding support for scatterplot generation directly from ROC curves;
  • Adding running Markov models and running Markov classifier filters;
  • Adding stochastic gradient descent learning for logistic regression models;
  • Updating Two-Sample Kolmogorov to work with number of samples in double-precision;
  • Correcting standard error calculation in Paired T-Tests.
  • Accord.Neuro:
  • Adding Boltzmann Machines, Contrastive Divergence Learning and Deep Neural Networks.
  • Accord.Vision:
  • Adding rectangle averaging support in the Haar object detector.
  • AForge Compatibility:
  • Compiled against AForge.NET Framework 2.2.4. May work with newer versions.