Using Cosine Similarity for KMeans clustering

You might want to look at the code in Distances.jl for cosine distance: https://github.com/JuliaStats/Distances.jl/blob/fa867d59098dd848fd71bc48005a1bf858928a47/src/metrics.jl#L399-L412

Also this:

Distances[:, i] = sum(1 .- ((X*C[[i], :]).^2 /(sum(X.^2, dims=2).*(C[[i],:]'*C[[i],:]))))

use .= maybe check the docs for broadcasting.