k-means笔记

k-means:

伪代码:
创建k个点作为起始中心点(随机选择)
当任意一个点的簇分配结果发生改变时
对数据种的每个数据点
对每个质心
计算质心与数据点之间的距离
将数据点分配到距离最近的簇
对每个簇,计算簇种所有点的均值并将其作为质心

距离计算:欧式距离
停止条件:直到数据点的簇分配不再改变
评价方法:误差平方和(SSE)
后处理优化方法:
1.将最大SSE值的簇划分为两个簇,具体实现是将最大簇包含的点过滤出来,再其上运行K-means算法(k = 2)
2.合并距离最近的两个质心/合并两个使得SSE增幅最小的质心

算法改进:
(1)二分K-mean
先将数据看成一个簇,然后将其一分为2,选择可以最大降低SSE值的簇继续划分,直到达到用户指定的簇数目
伪代码:
将所有数据看成一个簇
当簇的数目小于K时
对于每一个簇
计算簇的误差
在给定的簇上进行K-means(k = 2)
计算将该簇一分为二之后的误差
选择使误差更小的簇继续划分(或SSE最大的簇进行划分)

(2)k-means++:初始随机点尽可能的远,方法使n+1个点中心点选择时,对于前n个点选择到的概率更大

(3)mini batch kemans:每次只用一个子集重入类并找到类心

(4)ISODATA:对于K值比较难选取,当下类样本较小时,剔除;类下样本较多时拆分

(5)kernl k-mean:距离计算方式换成核函数映射到高维空间再聚类

异常值处理:
(1)软聚类剔除(不常用)
(2)局部异常因子
(3)多元高斯分布异常点检测:
(4)PCA/自编码机进行异常点检测

评估算法精度指标:
a. 外部法(基于有标注):Jaccard系数、纯度(信噪比-)
b. 内部法(无标注):内平方和WSS,外平方和BSS
c. 此外还要考虑到算法的时间空间复杂度、聚类稳定性等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值