首先,随意猜测几个中心(有时中心的数量也是要猜测的)
其次,看所有的点离这个中心的间距是多少,找出所有离该中心点距离较近的那个,这样就把点分类了,比如假设有两个中心,那么就依据这两个中心把点分为两类。
再次,在这个基础上寻找使得点与中心距离的平方和最小的位置
这样就相当于重新确定了中心点的位置。
那么再根据这些中心的位置重复‘其次、再次’中的步骤,直到中心的位置稳定
对于randomly 分布的样本而言,初始点的位置选择非常重要:
skearn.cluster.KMeans(n_cluster = 8,.....,max_iter = 300,...,n_init = 10),
n_cluster这个参数表示的是中心点的数量。需要经常做调整。#最为重要
max_iter是最大的迭代次数
n_init是选择不同起始位置的次数
k-means的局限:
即使对于很明显的有确定个数的聚类数量时,依据不同的中心位置,依然可能形成与事实不符的分割方式,比如下面这两种情况:
领取专属 10元无门槛券
私享最新 技术干货