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)


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


相关文章
|
关系型数据库 MySQL
Mysql连接无效(invalid connection)解决方案
Mysql连接无效(invalid connection)解决方案
1757 0
Mysql连接无效(invalid connection)解决方案
|
计算机视觉 异构计算
【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪
【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪
|
11月前
|
消息中间件 前端开发 NoSQL
试用期被裁是有补偿的!一定要记得领取~
试用期被裁是有补偿的!一定要记得领取~
315 6
试用期被裁是有补偿的!一定要记得领取~
|
弹性计算
阿里云服务器公网IP和私网IP地址在哪查询?
阿里云服务器公网IP和私网IP地址在哪查询?阿里云服务器IP地址在哪查看?在云服务器ECS管理控制台即可查看,阿里云服务器IP地址包括公网IP和私有IP,阿里云百科分享阿里云服务器IP地址查询方法
567 0
|
机器学习/深度学习 数据采集 数据可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
R语言电影数据分析:随机森林探索电影受欢迎程度因素、参数调优可视化
|
编译器 C语言 C++
【C语言】free()函数详解(动态内存释放函数)
【C语言】free()函数详解(动态内存释放函数)
494 0
|
缓存 算法 Linux
Linux内存管理宏观篇(六)物理内存:分配小内存块
Linux内存管理宏观篇(六)物理内存:分配小内存块
206 1
|
存储 机器学习/深度学习 传感器
数字图像处理(二) 数字图像处理基础(上)
数字图像处理(二) 数字图像处理基础(上)
381 0
金隅集团与阿里云签署战略合作协议
金隅集团与阿里云签署战略合作协议
264 0
|
SQL 安全 关系型数据库
自建MySQL数据库免费上云?手把手教你用阿里云数据传输服务DTS!
数据传输服务(Data Transmission Service,简称DTS)支持关系型数据库、NoSQL、大数据(OLAP)等数据源,集数据迁移、订阅及实时同步功能于一体,能够解决公共云、混合云场景下,远距离、秒级异步数据传输难题。其底层基础设施采用阿里双11异地多活架构,为数千下游应用提供实时数据流,已在线上稳定运行7年之久。
17734 2
自建MySQL数据库免费上云?手把手教你用阿里云数据传输服务DTS!