聚类算法总结

这里内容值得一看,相关补充材料。聚类的形式化定义:样本集 D = { x 1 , x 2 , … , x m } D=\{x_1,x_2,\dots,x_m\} D={x1,x2,,xm},每个样本 x i = ( x i 1 ; x i 2 ; …   ; x i n ) x_i=(x_{i1};x_{i2};\dots;x_{in}) xi=(xi1;xi2;;xin)是一个特征向量。聚类算法将 D D D分割为 k k k个不相交的簇 { C l ∣ l = 1 , 2 , … , k } \{C_l|l=1,2,\dots,k\} {Cll=1,2,,k},这些簇两两不交且并集是样本集 D D D(即构成了一个划分)。聚类结果以 λ = { λ 1 , λ 2 , … , λ m } \lambda=\{\lambda_1,\lambda_2,\dots,\lambda_m\} λ={λ1,λ2,,λm}表示,其中 λ j ∈ { 1 , 2 , … , k } \lambda_j\in\{1,2,\dots,k\} λj{1,2,,k} x j x_j xj的簇标记(即 x j ∈ C λ j x_j\in C_{\lambda_j} xjCλj)。聚类性能度量也叫聚类“有效性指标”,一般希望簇内相似度高,簇间相似度低,可以有与专家参考模型比较的外部指标,直接考察聚类结果的内部指标。聚类时有序属性的距离以范数定义, x i − x j x_i-x_j xixj L p L_p Lp范数是闵可夫斯基距离, p = 1 p=1 p=1时是曼哈顿距离, p = 2 p=2 p=2时是欧式距离;无序属性的距离以 V D M VDM VDM定义。现实任务中距离并不是必须满足范数定义(尤其是三角不等式),可以通过距离度量学习基于数据来确定合适的距离计算式。聚类算法可以分为原型聚类(原型是样本空间中有代表性的点),密度聚类,层次聚类。

《机器学习》给出的“距离度量”性质和范数的定义中第二条不相同,两个定义是否等价?

原型聚类先对原型初始化,再对原型迭代求解:

  • k − m e a n s k-means kmeans算法针对簇划分 { C l ∣ l = 1 , 2 , … , k } \{C_l|l=1,2,\dots,k\} {Cll=1,2,,k}最小化平方误差(度量簇内样本相似度) E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − μ i ∣ ∣ 2 2 E=\sum_{i=1}^{k}\sum_{x\in C_i}||x-\mu_i||_2^2 E=i=1kxCi∣∣xμi22,通过贪心策略近似求解这个 N P NP NP难问题:随机初始化 k k k个样本点作为初始均值向量 μ i \mu_i μi,然后将样本依据与 μ i \mu_i μi的距离聚类,之后重新在簇内计算均值向量 μ i \mu_i μi,重复上述过程直到无变化,代码在这
  • 学习向量量化 L V Q LVQ LVQ要求样本点带有类别标签,它的学习结果是一组 n n n维原型向量 { p 1 , p 2 , … , p k } \{p_1,p_2,\dots,p_k\} {p1,p2,,pk},每个原型向量代表一个聚类簇,有簇标记。如果原型向量 p i p_i pi与最近样本点 x j x_j xj类别相同就更新 p i p_i pi x j x_j xj的方向靠近,否则就远离,更新直到最大迭代次数或者原型向量更新很小。预测时根据样本与原型向量的距离分类到最近的原型向量代表的簇中,这种对样本空间的划分称为 V o r o n o i Voronoi Voronoi剖分,代码在这
  • 高斯混合聚类使用概率模型来表达原型(上面两个都是用向量表示),根据多元高斯分布的概率密度函数 p ( x ∣ μ , Σ ) p(x|\mu,\Sigma) p(xμ,Σ)定义高斯混合分布 p M ( x ) = ∑ i = 1 k α i p ( x ∣ μ i , Σ i ) p_M(x)=\sum_{i=1}^k\alpha_ip(x|\mu_i,\Sigma_i) pM(x)=i=1kαip(xμi,Σi),如果样本的生成是以高斯混合分布给出,算法的流程是首先假设 k k k个高斯分布,然后判断每个样本符合各个分布的概率,将该样本划为概率最大的那个分布簇内,然后一轮后,利用极大似然更新高斯分布参数,然后再基于新的分布去计算符合各个分布的概率,不断迭代至模型收敛达到局部最优解,具体流程可以看这里。这个过程很类似 k − m e a n s k-means kmeans的过程:初始随机给定簇,然后遍历样本根据准则分到相应的簇中,然后更新簇的表征信息,然后再分样本,直到收敛。只是 k − m e a n s k-means kmeans的簇由均值向量确定,高斯混合聚类的簇由各个高斯分布确定。

密度聚类通过样本间的紧密程度进行聚类,即某一片样本密度高的区域判断为一簇, D B S C A N DBSCAN DBSCAN是一种著名的密度聚类算法,流程看这,代码在这
层次聚类通过在不同层次对数据集进行划分,产生树形的聚类结构,划分策略可以是自底向上的聚合,也可以是自顶向下的分拆。 A G N E S AGNES AGNES是一种聚合策略算法,初始将每个样本看成一个簇,然后不断合并簇间距离最近的两个簇,直到合并到给定簇类个数。簇间距离的度量不同时 A G N E S AGNES AGNES被称为不同的算法,代码在这

你可能感兴趣的:(学习笔记,聚类,算法)