Python机器学习与深度学习7.聚类
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xiT x j xi x j
o 使用余弦相似度平方作为目标函数:
J 1, 2,k
1 2
K j 1
Nj
cos2
i 1
xi , j
o 对关于 1, 2,, k 的函数求偏导,其驻点为:
J
j
Nj
cos
i 1
xi , j
sin
xi , j
xi 令 0 j
?
Python机器学习与深度学习
对k-Means的思考
o k-Means将簇中所有点的均值作为新质心, 若簇中含有异常点,将导致均值偏离严重。 以一维数据为例:
n 数组1、2、3、4、100的均值为22,显然距离 “大多数”数据1、2、3、4比较远
n 改成求数组的中位数3,在该实例中更为稳妥。 n 这种聚类方式即k-Mediods聚类(K中值距离)
n 重复最后两步,直到类别中心的变化小于某阈值。
o 中止条件:
n 迭代次数/簇中心变化率/最小平方误差MSE(Minimum Squared Error)
Python机器学习与深度学习
8/88
k-Means过程
Python机器学习与深度学习
9/88
Code
Python机器学习与深度学习
10/88
s.t. 0
2 2 pxqxdx
pxdx qxdx 2 pxqxdx
px 2 pxqx qxdx
px
qx
2
dx
o 该距离满足三角不等式,是对称、非负距离
Python机器学习与深度学习
5/88
余弦相似度与Pearson相似系数
o n维向量x和y的夹角记做θ,根据余弦定理,其余弦值为:
o 初值的选择,对聚类结果有影响吗?
n 如何避免?
Python机器学习与深度学习
11/88
k-Means是初值敏感的
Python机器学习与深度学习
12/88
二分k-Means
Python机器学习与深度学习
13/88
Code2
Python机器学习与深度学习
14/88
k-Means的公式化解释
o 记数K目个为簇N中1, N心2 ,为,1N, k 2 ,, k ,每个簇的样本 o 使用平方误差作为目标函数:
J 1, 2,k
1 K Nj 2 j1 i1
xi j 2
o 对关于 1, 2,, k 的函数求偏导,其驻点为:
J
j
Nj
i 1
xi j
令 0
j
1 N
Nj
xi
Python机器学习与深度学习
15/88
如果使用其他相似度/距离度量
o 如:余弦相似度:cos xi , x j
o 假定输入样本为S=x1,x2,...,xm,则算法步骤为:
n 选择初始的k个类别中心μ1μ2…μk n 对于每个样本xi,将其标记为距离类别中心最近的类别,即:
labeli arg min xi j 1 jk
n 将每个类别中心更新为隶属该类别的所有样本的均值
j
1 | cj
| ic j
xi
n 这即解释了为何文档间求距离使用夹角余弦——因为这一物理 量表征了文档去均值化后的随机向量间相关系数。
Python机器学习与深度学习
6/88
聚类的基本思想
o 给定一个有N个对象的数据集,构造数据的k 个簇,k≤n。满足下列条件:
n 每一个簇至少包含一个对象 n 每一个对象属于且仅属于一个簇 n 将满足上述条件的k个簇称作一个合理划分
聚类
本次目标
o 理解相似度度量的各种方法与相互联系
o 掌握K-means聚类的思路和使用条件 o 了解层次聚类的思路和方法 o 理解密度聚类并能够应用于实践
n DBSCAN n DensityPeak密度最大值聚类
o 掌握谱聚类的算法
n 考虑谱聚类和PCA的关系
Python机器学习与深度学习
2/88
聚类Baidu Nhomakorabea定义
o 聚类就是对大量未知标注的数据集,按数据 的内在相似性将数据集划分为多个类别,使 类别内的数据相似度较大而类别间的数据相 似度较小
n 无监督
Python机器学习与深度学习
3/88
相似度/距离计算方法总结
1
o
闵可夫斯基距离Minkowski/欧式距离
dist
X
,
Y
n
i1
xi
yi
p p
Python机器学习与深度学习
21/88
k-Means聚类方法总结
o 优点:
n 是解决聚类问题的一种经典算法,简单、快速 n 对处理大数据集,该算法保持可伸缩性和高效率 n 当簇近似为高斯分布时,它的效果较好
o 缺点
o
杰卡德相似系数(Jaccard)
J A, B
A B A B
o
余弦相似度(cosine similarity)
cos aTb
ab
o
Pearson相似系数
XY
covX ,Y
XY
EX
X Y
XY
Y
n X i X Yi Y
i 1
n X i X 2 n Yi Y 2
i 1
i 1
16/88
Mini-batch k-Means算法描述
Python机器学习与深度学习
17/88
Code3
Python机器学习与深度学习
18/88
Mini-batch k-Means效果
Python机器学习与深度学习
19/88
k-Means适用范围
Python机器学习与深度学习
20/88
k-Means++算法测试
n
cos xT y
x y
xi yi
i 1
n
n
xi2
yi 2
o 这两个向量的相关系数是: i1
i 1
n
XY
covX ,Y
XY
EX
X Y
XY
Y
xi X yi Y
i 1
n
n
xi X 2 yi Y 2
i 1
i 1
o 相关系数即将x、y坐标向量各自平移到原点后的夹角余弦!
o kMeans基本思想:对于给定的类别数目k, 首先给出初始划分,通过迭代改变样本和簇 的隶属关系,使得每一次改进之后的划分方 案都较前一次好。
Python机器学习与深度学习
7/88
k-Means算法
o k-Means算法,也被称为k-平均或k-均值,是一种广泛使用的聚类算法, 或者成为其他聚类算法的基础。
o
相对熵(K-L距离)
D
p
||
q
x
pxlog
px qx
E
px
log
px qx
o
Hellinger距离
D
p
||
q
2 1
2
1
px
1 2
qx
1 2
dx
Python机器学习与深度学习
4/88
Hellinger distance
D
p
||
q
2
1
2
1
px
1 2
qx
1 2
dx
DH p || q 2 1 pxqxdx