Machine Learning-L14-聚类(上)

简介: Machine Learning-L14-聚类

聚类把数据对象集划分成多个组成或簇的过程,使得簇中的对象彼此相似,但与其他簇中的对象不相似。


聚类主要有以下应用场景:


Data summarization, compression and reduction.

Outlier detection

Collaborative filtering, recommendation system and customer segmentation: find like-minded user or similar products

Dynamic trend detection

Multimedia data, biological data, social network analysis

聚类过程一般步骤如下:


数据处理:包括清洗、特征标准化和降维;

特征工程:从最初的特征中选择最有效的特征,并将其存储于向量中,并根据需要进行转换;

聚类:选择合适特征类型的某种距离函数(或构造新的距离函数)进行接近程度的度量,执行聚类(分组)过程;

评估:对聚类结果进行评估


1. 距离度量


设  X1 = ( X11, X22 , . . . , X1 n) 和  X2 = (  X21,X22, . . . , X2n) 是两个被n 个数值属性描述的对象。


(1)欧氏距离

image.png


20200427164402176.png


(2)曼哈顿距离


曼哈顿距离也称作“城市街区距离”

image.png


20200427164414420.png


(3)闵可夫斯基距离


闵可夫斯基距离(Minkowski distance)是欧几里得距离和曼哈顿距离的推广,又称L p范数,p = 1时,表示曼哈顿距离(L 1范数);p = 2 时,表示欧几里得距离(L 2 范数)。

image.png

(4)上确界距离


上确界距离又称切比雪夫距离(Chebyshev distance),L ∞ 范数,L m a x 范数,是h → ∞时的闵可夫斯基距离。


image.png

(5)夹角余弦


余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个样本差异的大小。余弦值越接近1,说明两个向量夹角越接近0度,表明两个向量越相似。


image.png


20200427164430608.png



2. 主要聚类算法


image.png


3. 划分方法


假设数据集D = { x 1 , x 2 , . . . , x m }划分方法把D中的对象分配到k kk个簇C 1 , C 2 , . . . , C k 中,使得对于1 ≤ i , j ≤ k , C i ⊂ D 且 C i ∩ C j = ∅


3.1 K-means


K-means(K-均值)针对聚类算法的划分,最小化平方误差


image.png


其中,d i s t ( x , c i 表示簇中的点与形心的欧氏距离,c i为簇C i  的形心(centroid)。


簇的形心为簇的中心点,可用簇的均值(或中心点等多种形式)定义:

image.png

算法流程如下:


从数据集D DD中随机选择k kk个对象作为簇的初始均值(形心)c i , i = { 1 , 2 , . . . , k }

根据样本x j , j = { 1 , 2 , . . . , m } }与c i , i = { 1 , 2 , . . . , k }的距离,将x i 划入最近形心所在簇

重新计算每个簇的均值,并更新(即重新选择簇的形心)


until 簇均值不再发生变化


2020042716463752.png



k-means算法的复杂度是O ( m k t ) ,m 是样本数目,k是簇的数目,t 是迭代次数。通常k < < n , t < < n

k-means算法不适合发现非凸形的簇,或者大小差别很大的簇;此外对噪声和离群点敏感。

k-means算法由于k个均值的选择、相异度的计算、簇均值的计算策略上的不同有一些变种:


k-modes(k-众数):使用簇众数代替簇均值来聚类标称数据,使用新的相异性度量,并使用基于频率的方法来更新簇的众数。


K-Medians:Handing outliers.

K-Means++:Choosing better initial centroid estimates.

** Kernel K-Means**:Detect non-convex clusters: project data onto high-dimensional kernel space


3.2 K-medoids


K-medoids(K-中心点)选择实际对象来代表簇,每个簇使用一个代表对象,其余对象被分配到最近的代表对象所在的簇中,以最小化绝对误差(absolute-error):


image.png


其中dist(x,o i)表示簇中的点与代表对象的曼哈顿距离,o i为簇C i 的代表对象。


算法流程如下:


从数据集D中随机选择k kk个对象作为簇的代表对象 o i , i = { 1 , 2 , . . . , k }


repeate


根据样本x j , j = { 1 , 2 , . . . , m }}与oi , i = { 1 , 2 , . . . , k } 的距离,将x i 划入最近的代表对象所在簇


随机选择一个非代表对象image.png,计算代价函数image.png

if S < 0 , image.png代替 oi ,形成新的k 个代表对象的集合


until 不再发生变化


20200427164653739.png



k-medoids在数据存在噪声和离群点时,比k-means更鲁棒。

k-medoids算法的复杂度是O ( t k ( m − k ) 2,当m 和k 的值较大时,计算开销远高于k-means,难以应用于大数据集。

CLARA(Clustering LARge Application)


基于抽样的方法来处理大型数据集,有效性依赖于样本的大小

CLARANS(Clustering Large Application based upon RANdomized Search)


在使用样本得到聚类的开销和有效性之间权衡


相关文章
|
机器学习/深度学习 算法 vr&ar
Machine Learning-L19-条件随机场
Machine Learning-L19-条件随机场
Machine Learning-L19-条件随机场
|
机器学习/深度学习 算法
Machine Learning-L8-SVM:支持向量机全面解析
Machine Learning-L8-SVM:支持向量机全面解析
Machine Learning-L8-SVM:支持向量机全面解析
|
机器学习/深度学习 算法 数据挖掘
周志华《Machine Learning》学习笔记(11)--聚类
聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。
124 0
周志华《Machine Learning》学习笔记(11)--聚类
|
存储 编解码 算法
Machine Learning-L14-聚类(下)
Machine Learning-L14-聚类(下)
Machine Learning-L14-聚类(下)
|
机器学习/深度学习 自然语言处理 算法
Machine Learning-L20-降维
Machine Learning-L20-降维
Machine Learning-L20-降维
|
算法
Machine Learning-L5-回归分析
Machine Learning-L5-回归分析
Machine Learning-L5-回归分析
|
人工智能 BI
Machine Learning-L2-数据特征
Machine Learning-L2-数据特征
Machine Learning-L2-数据特征
|
机器学习/深度学习 算法 Python
Machine Learning-L6-逻辑回归
Machine Learning-L6-逻辑回归
Machine Learning-L6-逻辑回归
|
算法 数据建模 数据挖掘
Machine Learning-L4-决策树
Machine Learning-L4-决策树
Machine Learning-L4-决策树
|
人工智能 算法 关系型数据库
Machine Learning-L17-贝叶斯网络
Machine Learning-L17-贝叶斯网络
Machine Learning-L17-贝叶斯网络