@@ -141,13 +141,10 @@ object PowerIterationClusteringExample {
141
141
}
142
142
143
143
/**
144
- * Gaussian Similarity:
145
- * http://www.stat.wisc.edu/~mchung/teaching/MIA/reading/diffusion.gaussian.kernel.pdf
144
+ * Gaussian Similarity: http://en.wikipedia.org/wiki/Radial_basis_function_kernel
146
145
*/
147
146
def gaussianSimilarity (p1 : (Double , Double ), p2 : (Double , Double ), sigma : Double ) = {
148
- (1.0 /
149
- (math.sqrt(2.0 * math.Pi ) * sigma)) * math.exp((- 1.0 / (2.0 * math.pow(sigma, 2.0 ))
150
- * (math.pow(p1._1 - p2._1, 2 ) + math.pow(p1._2 - p2._2, 2 ))))
147
+ math.exp((p1._1 - p2._1)* (p1._1 - p2._1) + (p1._2 - p2._2)* (p1._2 - p2._2))
151
148
}
152
149
153
150
private [mllib] def similarity (p1 : (Double , Double ), p2 : (Double , Double )) = {
@@ -169,10 +166,10 @@ object PowerIterationClusteringExample {
169
166
.run(circlesRdd)
170
167
171
168
val clusters = model.assignments.collect.groupBy(_._2).mapValues(_.map(_._1))
172
- println( s " Cluster assignments: "
173
- + s " ${clusters.toList.sortBy{ case (k,v) => v.length}
174
- .map { case (k, v) => s " $k -> ${v.sorted.mkString(" [" , " ," , " ]" )}" }
175
- .mkString( " , " )} " )
169
+ val assignments = clusters.toList.sortBy{ case (k,v) => v.length}
170
+ val assignmentsStr = assignments
171
+ .map { case (k, v) => s " $k -> ${v.sorted.mkString(" [" , " ," , " ]" )}" }.mkString( " , " )
172
+ println( s " Cluster assignments: $assignmentsStr " )
176
173
177
174
sc.stop()
178
175
}
0 commit comments