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 ); }
/// <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(); }
public override int GetHashCode() { return(AcceptableBCubed.GetHashCode() + Data.GetHashCode() + DensityClassifier.GetHashCode() + HilbertClassifier.GetHashCode() + Index.GetHashCode() + Output.GetHashCode()); }