聚类算法(k_means)

聚类

  • 通过一定的算法将原始数据划分成多个数据簇
  • 没有预先定义好的类别
  • 同一簇内部数据样本之间有很大的相似性,不同簇内部的数据相似性很小

相似度与距离度量
定义距离来度量表示相似度:欧式距离,曼哈顿距离( D i j = ∣ x i − x j ∣ + ∣ y i − y j ∣ D_{ij}=|x_i-x_j|+|y_i-y_j| Dij=xixj+yiyj),闵可夫斯基距离(n次欧式距离),切比雪夫距离( D i j = m a x ∣ x i − x j ∣ D_{ij}=max|x_i-x_j| Dij=maxxixj

1 聚类算法分类

1.基于划分
给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。
特点:计算量大。很适合发现中小规模的数据库中小规模的数据库中的球状簇。
算法:K-means算法、K-medians算法、CLARANS算法
2.基于层次
对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。
特点:较小的计算开销。然而这种技术不能更正错误的决定。
算法:BIRCH算法、CURE算法、CHAMELEON算法
3.基于密度
只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。
特点:能克服基于距离的算法只能发现“类圆形”的聚类的缺点。
算法:DBSCAN算法、OPTICS算法、DENCLUE算法
4.基于网格
将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。
特点:处理速度很快,通常这是与目标数据库中记录的个数无关的,只与把数据空间分为多少个单元有关。
算法:STING算法、CLIQUE算法、WAVE-CLUSTER算法

硬聚类和软聚类
硬聚类(hard clustering)是指数据集中的样本只能划分到一个簇中,如k-means算法。软聚类(soft clustering)或模糊聚类(fuzzy clustering)可以将一个样本划分到多个不同的簇中,如C-means(FCM)算法,FCM的计算步骤与k-means相似,只是FCM是使用样本属于不同簇的概率来代替k-means中的类标。样本属于不同簇的概率之和为1。

2 k-means

K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

2.1 算法描述

输入:
迭代收敛定义:
(1)聚类中心不再有变化
(2)每个样本到对应聚类中心的距离之和不再有很大变化

损失函数
假定 u 1 , u 2 , . . . , u k u_1,u_2,...,u_k u1,u2,...,uk 为K个聚类中心,用 r n k ∈ 0 , 1 r_{nk}\in{0,1} r

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值