Kmeans聚类
1. 层次聚类 vs 非层次聚类
不同类之间有无包含关系
2. 硬聚类 vs 软聚类
硬聚类:每个对象只属于一个类
软聚类:每个对象以概率属于某个类。比如:样本1:A-0.8,B-0.1,C-0.1
3. 各样本之间的距离
① 将特征向量化,每个样本表示为高维空间的一个点
② 计算各个点之间的距离(距离与相似度成反比)
- 欧氏距离:
- 曼哈顿距离:
- 余弦相似度:
- 质心:
4. 层次聚类
自底向上:凝聚层次聚类
自顶向下:分裂层次聚类
算法描述:
- 每一个对象归为一类,共M类,每类只有一个对象
- 计算每一个类与其他类之间的距离
- 找到最接近的两个类合并长一个类A
- 删除其他类与类A内各类的距离
删除类A内各类与其他类的距离
插入其他类与类A的距离
更新类A与其他类的距离
5. 重复 3 4 直到最后合并为一个类为止(此类包含N个对象)
第二步中,计算类间距离的方法有三种:
- 单链:计算最近两个对象的距离,倾向先把大类聚在一起
- 全链:计算最远两个对象的距离,倾向先把小类聚在一起
- 组合链:质心之间的距离
算法复杂度 O(M^3)
5. Kmeans聚类
算法描述:
- 任意选择k个点作为初始聚类中心
- 计算每个对象到这k个点的距离,到哪个点最近,就归为哪一类
- 重新计算这k个类的聚类中心(质心)
- 重复 2 3 直到聚类中心变化不大或者损失函数
变化不大,xi是该类的样本,ck是该类的聚类中心
算法复杂度 O(M*K*T) T是迭代次数
算法缺点:
- 非常依赖于初始点的选择,如何选择初始点?多次训练,取使L(C)最小的初始点
- k取多少合适?看业务
- 适用于球面聚类
6. 评价方法
(1)内部评价(用于无监督)
判断标准:同类是否相似,异类是否相异
σi:类内各对象到该类聚类中心的平均距离
ci:该类的聚类中心
(2)外部评价(用于有监督学习)
分类预测类别 | |||
---|---|---|---|
y1 | y2 | ||
实际类别 | y1 | C11 | C12 |
y2 | C21 | C22 |
准确度
精确率
召回率
F值
β越小,越倾向于精确率;β越大,越倾向于精确率和召回率的混合。
最常见是β=1,此时就是常见的
欢迎转载,转载请标明出处。