@@ -57,7 +57,9 @@ class SelectNearestCentroid implements ExtendedSerializableFunction<Point, Point
57
57
var minDistance = Double . POSITIVE_INFINITY
58
58
var nearestCentroidId = -1
59
59
for (c in centroids) {
60
- var distance = sqrt(p. pts. indices. collect{ p. pts[it] - c. pts[it] }. sum{ it ** 2 } as double )
60
+ var distance = sqrt(p. pts. indices
61
+ .collect{ p. pts[it] - c. pts[it] }
62
+ .sum{ it ** 2 } as double )
61
63
if (distance < minDistance) {
62
64
minDistance = distance
63
65
nearestCentroidId = c. cluster
@@ -90,7 +92,7 @@ var randomPoint = { (0..<dims).collect { r.nextGaussian() + 2 } as double[] }
90
92
var initPts = (1 .. k). collect(randomPoint)
91
93
92
94
var context = new WayangContext ()
93
- .withPlugin(Java . basicPlugin())
95
+ // .withPlugin(Java.basicPlugin())
94
96
.withPlugin(Spark . basicPlugin())
95
97
var planBuilder = new JavaPlanBuilder (context, " KMeans ($url , k=$k , iterations=$iterations )" )
96
98
@@ -111,7 +113,7 @@ var finalCentroids = initialCentroids.repeat(iterations, currentCentroids ->
111
113
112
114
println ' Centroids:'
113
115
finalCentroids. each { c ->
114
- println " Cluster $c. cluster : ${ c.pts.collect { sprintf '%.2f', it } .join(', ')} "
116
+ println " Cluster $c. cluster : ${ c.pts.collect( '%.2f'::formatted) .join(', ')} "
115
117
}
116
118
117
119
println ()
@@ -120,7 +122,7 @@ var allocations = pointsData.withIndex()
120
122
.collect{ pt , idx -> [allocator. apply(pt). cluster, distilleries[idx]] }
121
123
.groupBy{ cluster , ds -> " Cluster $cluster " }
122
124
.collectValues{ v -> v. collect{ it[1 ] } }
123
- .sort{ e1 , e2 -> e1 . key <=> e2 . key }
125
+ .sort{ it . key }
124
126
allocations. each{ c , ds -> println " $c (${ ds.size()} members): ${ ds.join(', ')} " }
125
127
/*
126
128
Centroids:
0 commit comments