Ejemplo n.º 1
0
 public RootCluster(Cluster firstCluster, Cluster secondCluster, LinkageFunctionTypes linkageFunction, DistanceMeasurementTypes distanceMeasurement)
 {
     FirstCluster  = firstCluster;
     SecondCluster = secondCluster;
     Distance      = LinkageFunctionHelper.Calculate(linkageFunction, distanceMeasurement, FirstCluster, SecondCluster);
     FirstCluster.ComputeDistance(linkageFunction, distanceMeasurement);
     SecondCluster.ComputeDistance(linkageFunction, distanceMeasurement);
 }
        public static double Calculate(LinkageFunctionTypes linkageFunction, DistanceMeasurementTypes distanceMeasurement, List <double[]> firstClusterDatapoints, List <double[]> secondClusterDatapoints)
        {
            switch (linkageFunction)
            {
            case LinkageFunctionTypes.Single:
                return(CalculateSingle(distanceMeasurement, firstClusterDatapoints, secondClusterDatapoints));

            case LinkageFunctionTypes.Complete:
                return(CalculateComplete(distanceMeasurement, firstClusterDatapoints, secondClusterDatapoints));
            }

            return(default(double));
        }
Ejemplo n.º 3
0
        public void ComputeDistance(LinkageFunctionTypes linkageFunction, DistanceMeasurementTypes distanceMeasurement)
        {
            if (Child == null)
            {
                Distance = LinkageFunctionHelper.Calculate(linkageFunction, distanceMeasurement, new List <double[]> {
                    FirstDatapoint
                }, new List <double[]> {
                    SecondDatapoint
                });;
                return;
            }

            Distance = LinkageFunctionHelper.Calculate(linkageFunction, distanceMeasurement, new List <double[]> {
                FirstDatapoint
            }, Child.GetAllDatapoints());
            Child.ComputeDistance(linkageFunction, distanceMeasurement);
        }
 public static double Calculate(LinkageFunctionTypes linkageFunction, DistanceMeasurementTypes distanceMeasurement, Cluster firstCluster, Cluster secondCluster)
 {
     return(Calculate(linkageFunction, distanceMeasurement, firstCluster.GetAllDatapoints(), secondCluster.GetAllDatapoints()));
 }