/** * Calculates the k-means costs of the ClusteringFeature and another ClusteringFeature too a * center. * * @param center the center too calculate the costs * @param points the points too calculate the costs * @return the costs */ public double calcKMeansCosts(double[] center, ClusteringFeature points) { assert (this.sumPoints.length == center.length && this.sumPoints.length == points.sumPoints.length); return (this.sumSquaredLength + points.sumSquaredLength) - 2 * Metric.dotProductWithAddition(this.sumPoints, points.sumPoints, center) + (this.numPoints + points.numPoints) * Metric.dotProduct(center); }
/** * Calculates the k-means costs of the ClusteringFeature and a point too a center. * * @param center the center too calculate the costs * @param point the point too calculate the costs * @return the costs */ public double calcKMeansCosts(double[] center, double[] point) { assert (this.sumPoints.length == center.length && this.sumPoints.length == point.length); return (this.sumSquaredLength + Metric.distanceSquared(point)) - 2 * Metric.dotProductWithAddition(this.sumPoints, point, center) + (this.numPoints + 1) * Metric.dotProduct(center); }