【聚类算法】

计算方法

传统的聚类分析计算方法主要有如下几种:

1、划分方法(partitioning methods)

给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。而且这K个分组满足下列条件:(1 每一个分组至少包含一个数据纪录;(2)每一个数据纪录属于且仅属于一个分组(注意:这个要求在某些模糊聚类算法中可以放宽);对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。使用这个基本思想的算法有:K-MEANS算法K-MEDOIDS算法、CLARANS算法;

大部分划分方法是基于距离的。给定要构建的分区数k,划分方法首先创建一个初始化划分。然后,它采用一种迭代的重定位技术,通过把对象从一个组移动到另一个组来进行划分。一个好的划分的一般准备是:同一个簇中的对象尽可能相互接近或相关,而不同的簇中的对象尽可能远离或不同。还有许多评判划分质量的其他准则。传统的划分方法可以扩展到子空间聚类,而不是搜索整个数据空间。当存在很多属性并且数据稀疏时,这是有用的。为了达到全局最优,基于划分的聚类可能需要穷举所有可能的划分,计算量极大。实际上,大多数应用都采用了流行的启发式方法,如k-均值和k-中心算法,渐近的提高聚类质量,逼近局部最优解。这些启发式聚类方法很适合发现中小规模的数据库中小规模的数据库中的球状簇。为了发现具有复杂形状的簇和对超大型数据集进行聚类,需要进一步扩展基于划分的方法

其中k-均值和k-中心算法

k-means
k均值算法: 
1. 首先给定聚类中心,所有样本求和聚类中心的欧氏距离,取数值小的作为当前距离并归入那个中心点。 
2. 计算归入个中心的点的平均值作为新的聚类中心,再重复步骤1,直到达到规定迭代次数或阈值。 
(步骤二如果数据分布不均匀,可以选择中位数,就是k-mediods(k中值)算法) 
缺点是对初值敏感,初值的选择对聚类的影响很大。

setp1:指定K个聚类中心

setp2:(每一个数据点与初始聚类中心的距离)

setp3:(对每一个数据点x,找到最近的C(聚类中心),x分配到新的类C中)

setp4:(更新聚类中心点)

setp5:(计算每一类的偏差)

setp6:判断偏差是否小于阈值(自己设定),不小于则返回setp2

如何计算偏差?下面这个例子基本上没有看到计算偏差的地方

from sklearn.cluster import KMeans 
from sklearn import datasets 
from dask.array.learn import predict
import numpy as np
iris = datasets.load_iris() 
X = iris.data 
y = iris.target
clf=KMeans(n_clusters=3) 
model=clf.fit(X) 
predicted=model.predict(X) 
#设置区间
print(predicted)
k2y = np.array([0,1,2]) #
print(k2y[predicted])
print((k2y[predicted] == y).astype(int).mean())

k-means和K-medoids区别,k-means聚类中心在空间上(也就是可能是在数据上,也可能不再数据上),K-medoids呢,聚类中心要求在数据上

 

优点: 
速度快,计算简便 
缺点: 
我们必须提前知道数据有多少类/组。 
K-Medians是K-Means的一种变体,是用数据集的中位数而不是均值来计算数据的中心点。 
K-Medians的优势是使用中位数来计算中心点不受异常值的影响;缺点是计算中位数时需要对数据集中的数据进行排序,速度相对于K-Means较慢
原文:https://blog.csdn.net/Katherine_hsr/article/details/79382249 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值