聚类算法开始之前的整理——第00篇

开始

在此之前,写过几个聚类的方法,以笔记的方法再次做一个记录。

一、K-means聚类

k-means聚类是最简单的聚类,其大致流程如下:
①根据分类数k,首先随机得到k个中心。
②求得每一个样本与k个中心的聚类,距离哪个最近,即分到哪个中心的门下。
③在每一个类簇中,求每一个样本与其他所有样本的距离之和,取max/min者为新中心。
④循环②③过程,直到达到循环条件,break
⑤以评价指标评测方法的好坏。
可能会遇到的问题:
首先是中心的选取问题,虽然说是随机,为了保持效率,第一次随机取,后面根据评价指标可以选取更好的代替掉随机取得中心。在划分类簇时,不同的方法会有不同的处理,具体待方法而定,距离公式同样。循环截止的条件,有的是给定循环的次数,有的是看划分类簇是否会改变…方法也有很多。

二、TCM聚类(three-way c-means)

TCM是一个有些复杂的方法,理解了并不是很难。
其特殊的地方在于中心的定义,和类簇的划分。
具体流程如下:
1、第一次的中心随机取得,然后根据距离做第一次类簇的划分。
2、中心的定义
首先定义4个公式:
B
假设有x1~xn,n个样本,k=3。
每一个样本都一个B集合,B中包括这个样本所属的类(包括正同域和边界域)。在这里不对B的性质做更多解释,下面几个同样。
μ
在这里插入图片描述
ps:c表示中心个数,1 ⩽ i ⩽ c, 1 ⩽ j ⩽ n,d表示距离,dij表示d(Ci,Xj),m为一个大于等于1的参数,属于input值。
最终得到μ的k×n矩阵
M
M是由B和μ得到的矩阵,如果Bxj = {1,3},那么Mxj = {µ1j, µ3j}。
∑Mxj = μ1j+μ3j
W
W首先也是一个k×n的矩阵
wij:
如果|Bij|=0或者i不属于Bij的元素,那么wij = 0。
如果|Bij|>1并且i属于Bij的元素,那么wij = µij/∑Mxj。
如果|Bij|=1并且i属于Bij的元素,那么Wij = 1。

综合上面的部分,可以得到中心,如下:
mi = ∑正同域中的xj*wij / ∑正同域的wij

3、划分类簇
R,f,G,L
rij = µij,
fj = max(µ1j, µ2j, . . . , µcj),
gij = f(rij , fj) , (G=k×n矩阵,f(x,y) xy的关系可为+,-,×,/)
lij = f(gij , £) , (£为一个参数具体而定,以£为界,将L转化为G的0-1矩阵,f(x,y)可为>,>=,<,<=)
ps:£也有一种公式定义,可自行查阅。

定义一种距离v(mi,xj) = gij/sum(:,j) (ps:同样用于μ公式)
if v(mi,xj) >= α:正同域
elif β <= v(mi,xj) < α:边界域
else:负反域
α,β
α = 1,β = £/sum(:,j)
ps:β不是一个固定不变的参数

如此迭代以上过程…

三、KWM聚类(k-multi-weighted-modes)

样本特性:这种聚类属于多维度样本,一个样本包括多条记录,一个记录包括多条属性。

1、ACDM距离算法
这里不解释公式,直接上例子:
在这里插入图片描述
对以上俩样本,求d(X1,X2)
d(X1,X2) = 1/2∑£(X1A1,X2A1)
以X1,X2的A1为例:
S = 0
U = {8,5,7,3,1} (并集)
For i in U:
S += |1/3-1/4| (i=8)
最终可求得d(X1,X2)
2、中心算法
这个方法包括两种中心算法,分别是HAFMWM,GAFMWM

方法 特点
HAFMWM 准确率偏低,运算速度快
GAFMWM 准确率偏高,运算速度慢

在这里只提供HAFMWM算法,如下:
定义 V = 0 , input:μ
①在每一个类簇中,求每一个样本与其他所有样本的距离之和,取min者为新中心,将每一个min的距离相加得到W。
②判断|W-V|与μ的关系,若前者小则跳出循环,否则W->V并转入下一次循环。

发布了6 篇原创文章 · 获赞 0 · 访问量 71

猜你喜欢

转载自blog.csdn.net/qq_44851357/article/details/105032092
今日推荐