kmeans 算法,即k 均值聚类算法(k-means clustering algorithm),是一种迭代求解的聚类分析算法。其步骤是,预将数据分为 K 组,则随机选取 K 个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
kmeans,Go 的现用 Kmeans 算法包:
package mainimport ( "fmt" "github.com/salkj/kmeans") func main() { data := []kmeans.Point{} data = append(data, kmeans.Point{[]float64{1.0,3.0,5.0,2.0}}) data = append(data, kmeans.Point{[]float64{43.0,7.0,12.0,7.0}}) data = append(data, kmeans.Point{[]float64{2.0,12.0,5.0,8.0}}) data = append(data, kmeans.Point{[]float64{12.0,1945.0,34.0,65.0}}) fmt.Println(kmeans.KMEANS(data, 2, 0.001)) }
评论