Пример #1
0
        public static double GetCost(Signature sig1, Signature sig2, DtwType dtwType, List <FeatureDescriptor> features)
        {
            switch (dtwType)
            {
            case DtwType.DtwPy:
                return(DtwPy.Dtw(sig1.GetAggregateFeature(features), sig2.GetAggregateFeature(features), DtwPy.EuclideanDistance));

            case DtwType.NDtw:
                //hatalmas hack, csak egy-egy featurere működik, kombinációra nem
                return(new NDtw.Dtw(sig1.GetFeature <List <double> >(features[0]).ToArray(), sig2.GetFeature <List <double> >(features[0]).ToArray(),
                                    DistanceMeasure.Manhattan).GetCost());

            case DtwType.FrameworkDtw:
                return(new SigStat.Common.Algorithms.Dtw(Accord.Math.Distance.Manhattan)
                       .Compute(sig1.GetAggregateFeature(features).ToArray(), sig2.GetAggregateFeature(features).ToArray()));

            case DtwType.MyDtw:
                return(new Common.Dtw(sig1, sig2, features).CalculateDtwScore());

            default:
                throw new ArgumentException(nameof(dtwType) + typeof(DtwType) + "not exists");
            }
        }
Пример #2
0
 public DTWClassifier(List <FeatureDescriptor> inputFeatures, DtwType dtwType) : this(inputFeatures)
 {
     DtwType = dtwType;
 }