コード例 #1
0
 public bool Equals(SlashConfig other)
 {
     if (other == null)
     {
         return(false);
     }
     return(Data.Equals(other.Data) &&
            Output.Equals(other.Output) &&
            Index.Equals(other.Index) &&
            HilbertClassifier.Equals(other.HilbertClassifier) &&
            DensityClassifier.Equals(other.DensityClassifier) &&
            Math.Abs(AcceptableBCubed - other.AcceptableBCubed) <= 0.0001
            );
 }
コード例 #2
0
        /// <summary>
        /// Recluster the data, starting with an initial classification and further combining points into fewer clusters.
        /// </summary>
        void Recluster()
        {
            LoadData();
            var classifier = new HilbertClassifier(InitialClassification, Configuration.Index.BitsPerDimension)
            {
                IndexConfig               = Configuration.Index.Budget,
                MaxNeighborsToCompare     = Configuration.HilbertClassifier.MaxNeighborsToCompare,
                OutlierDistanceMultiplier = Configuration.HilbertClassifier.OutlierDistanceMultiplier,
                OutlierSize               = Configuration.Index.Budget.OutlierSize,
                UseExactClusterDistance   = Configuration.HilbertClassifier.UseExactClusterDistance
            };

            //TODO: Follow this with the DensityClassifier.
            Timer.Start("Classify by distance");
            FinalClassification = classifier.Classify();
            Timer.Stop("Classify by distance");
            MergeSquareDistance = classifier.MergeSquareDistance;
            ReclassifyByDensity();
            Logger.Info(Summary());
            SaveData();
        }
コード例 #3
0
 public override int GetHashCode()
 {
     return(AcceptableBCubed.GetHashCode() + Data.GetHashCode() + DensityClassifier.GetHashCode()
            + HilbertClassifier.GetHashCode() + Index.GetHashCode() + Output.GetHashCode());
 }