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.