private void ComputeCentroid(IEnumerable <IEntitySpecification> items, IMetricItem mean) { var minDist = double.MaxValue; foreach (var item in items) { var currentDistance = _metric.Distance(item, mean); if (!(currentDistance < minDist)) { continue; } minDist = currentDistance; Height = item.Height; Weight = item.Weight; } }
public double Distance(IEntitySpecification item, IMetricItem centroid) { var sumSquaredDiffs = Math.Pow(item.Height - centroid.Height, 2) + Math.Pow(item.Weight - centroid.Weight, 2); return(Math.Sqrt(sumSquaredDiffs)); }