分类知识

  分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中。机器学习中常见的分类算法有:SVM(支持向量机)、KNN(最邻近法)、Decision Tree(决策树分类法)、Naive Bayes(朴素贝叶斯分类)、Neural Networks(神经网络法)等。

  但当对海量数据进行分类时,为了降低数据满足分类算法要求所需要的预处理代价,往往需要选择非监督学习的聚类算法,如K-Means Clustering(K均值聚类)。


算法原理

选择K个不相同的点作为初始质心
repeat  将每个点指派到最近的质心,形成K个簇  重新计算每个簇的质心
until 簇不发生变化或达到最大迭代次数

质心计算

  对于分类后的产生的k个簇,分别计算到簇内其他点距离均值最小的点作为质心(对于拥有坐标的簇可以计算每个簇坐标的均值作为质心)


距离度量

  一般情况下,在欧式空间中采用的是欧式距离,在处理文档中采用的是余弦相似度函数,有时候也采用曼哈顿距离作为度量

欧式距离:

d(x,y)=(x1−y1)2+(x2−y2)2+⋯+(xn−yn)2=∑i=1n(xi−yi)2d(x, y)=\sqrt{\left(x_{1}-y_{1}\right)^{2}+\left(x_{2}-y_{2}\right)^{2}+\cdots+\left(x_{n}-y_{n}\right)^{2}}=\sqrt{\sum_{i=1}^{n}\left(x_{i}-y_{i}\right)^{2}}d(x,y)=(x1​−y1​)2+(x2​−y2​)2+⋯+(xn​−yn​)2​=∑i=1n​(xi​−yi​)2​

余弦相似度:

  给定两个属性向量,A和B,其余弦相似性 θ 由点积和向量长度给出,如下所示:

            cos⁡(θ)=A⋅B∥A∥∥B∥=∑i=1nAi×Bi∑i=1n(Ai)2×∑i=1n(Bi)2\cos (\theta)=\frac{A \cdot B}{\|A\|\|B\|}=\frac{\sum_{i=1}^{n} A_{i} \times B_{i}}{\sqrt{\sum_{i=1}^{n}\left(A_{i}\right)^{2}} \times \sqrt{\sum_{i=1}^{n}\left(B_{i}\right)^{2}}}cos(θ)=∥A∥∥B∥A⋅B​=∑i=1n​(Ai​)2​×∑i=1n​(Bi​)2​∑i=1n​Ai​×Bi​​

  给出的相似性范围从-1到1:-1意味着两个向量指向的方向正好截然相反,1表示它们的指向是完全相同的,0通常表示它们之间是独立的,而在这之间的值则表示中间的相似性或相异性。

曼哈顿距离:

               d(i,j)=∣xi−xj∣+∣yi−yj∣d(i, j)=|xi-xj|+|yi-yj|d(i,j)=∣xi−xj∣+∣yi−yj∣


聚类效果评价

   轮廓系数结合了聚类的凝聚度和分离度, 用于评估聚类的效果。该值处于-1~1之间,值越大,表示聚类效果越好。具体计算方法如下:

  1. 对于每个样本点 iii,计算点i与其同一个簇内的所有其他元素距离的平均值,记作a(i)a(i)a(i),用于量化簇内的凝聚度。
  2. 选取i外的一个簇bbb,计算iii与bbb中所有点的平均距离,遍历所有其他簇,找到最近的这个平均距离,记作b(i)b(i)b(i),即为i的邻居类,用于量化簇之间分离度。
  3. 对于样本点iii,轮廓系数s(i)=(b(i)–a(i))/(max(a(i),b(i)))s(i) = (b(i) – a(i))/(max({a(i),b(i)}))s(i)=(b(i)–a(i))/(max(a(i),b(i)))计算所有i的轮廓系数,求出平均值即为当前聚类的整体轮廓系数,度量数据聚类的紧密程度。

  从上面的公式,不难发现若s(i)s(i)s(i)小于0,说明i与其簇内元素的平均距离大于最近的其他簇,表示聚类效果不好。如果a(i)a(i)a(i)趋于0,或者b(i)b(i)b(i)足够大,即a(i)a(i)a(i)远远小于b(i)b(i)b(i),那么s(i)s(i)s(i)趋近与1,说明聚类效果比较好。另外需要注意的是,使用轮廓系数,族数量必须大于等于2

  另外,还有sklearn聚类算法评估方法:Calinski-Harabaz Index、互信息…


K-Means算法优缺点

优点

  1. 原理易懂、易于实现;
  2. 当簇间的区别较明显时,聚类效果较好;

缺点

  1. 当样本集规模大时,收敛速度会变慢;
  2. 容易局部最优,对孤立点数据敏感,少量噪声就会对平均值造成较大影响;
  3. k的取值十分关键,对不同数据集,k选择没有参考性,需要大量实验;

K-Means聚类算法 — 算法原理、质心计算、距离度量、聚类效果评价及优缺点相关推荐

  1. 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点

    层次聚类定义.层次聚类过程可视化.簇间距离度量.BIRCH.两步聚类.BIRCH算法优缺点 目录

  2. 简单粗暴理解与实现机器学习之K-近邻算法(三):距离度量、欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化距离、余弦距离、汉明距离、杰卡德距离、马氏距离

    K-近邻算法 文章目录 K-近邻算法 学习目标 1.3 距离度量 1 欧式距离**(Euclidean Distance):** 2 **曼哈顿距离(Manhattan Distance):** 3 ...

  3. 【机器学习】聚类【Ⅰ】基础知识与距离度量

    主要来自周志华<机器学习>一书,数学推导主要来自简书博主"形式运算"的原创博客,包含自己的理解. 有任何的书写错误.排版错误.概念错误等,希望大家包含指正. 由于字数限 ...

  4. 双边滤波算法的原理、流程、实现及效果

    一.引言     双边滤波在图像处理领域中有着广泛的应用,比如去噪.去马赛克.光流估计等等,最近,比较流行的Non-Local算法也可以看成是双边滤波的一种扩展.自从Tomasi et al等人提出该 ...

  5. o(1)复杂度之双边滤波算法的原理、流程、实现及效果

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/3406823.html  侵 ...

  6. Java实现的基于欧式距离的聚类算法的Kmeans作业

    Kmeans作业 环境配置 java环境,使用原生的Java UI组件JPanel和JFrame 算法原理 基于欧式距离的聚类算法,其认为两个目标的距离越近,相似度越大. 该实验产生的点为二维空间中的 ...

  7. BP算法:原理推导数据演示项目实战1(转)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fendouaini/article/details/79789440 </div>< ...

  8. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

  9. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

最新文章

  1. 谷歌最新的PlaNet对强化学习以及迁移学习的意义及启发
  2. 淘宝的人工封IP技术真好玩
  3. boost::stl_interfaces模块实现过滤的整数迭代器的测试程序
  4. Win关闭开启软件时的弹窗
  5. java 线程之对象的同步和异步
  6. 原生APP与移动Web App的比较
  7. kgtemp文件转换mp3_amr转换mp3格式文件
  8. Magicodes.IE之总体教程
  9. jmeter生成html报告修改,Jmeter生成html报告(示例代码)
  10. 第62课 捉迷藏 《小学生C++趣味编程》
  11. 高级语言中的关键字:const用法分析
  12. eclipse svn新增文件不显示在文件列表,只有修改文件可以提交!
  13. 前端md转html添加样式_前端文档站点搭建方案
  14. cssz中a标签鼠标选中去除选中边框
  15. 穿越火线好友服务器不稳定,穿越火线合区后新危机,玩家:卡顿掉帧没法玩
  16. 【Qt开发】StyleSheet使用总结
  17. 8款功能强大的最新HTML5特效实例
  18. Oracle查询优化改写技巧与案例总结四
  19. unity webgl 手机端微信直接打开链接
  20. bugkuCTF---flag在index里

热门文章

  1. OO ALV简单报表之DOCKING容器实现
  2. 测试术语-bug分类
  3. oracle timestamp 设置默认值,oracle的timestamp类型使用 毫秒
  4. 35岁大数据行业从业者,如何培养大数据核心竞争力
  5. Java switch和break用法
  6. GRE新东方推荐学习方法(2010年左右)
  7. R实战:【股票分析】用quantmod在股票的K线上添加标记
  8. 校园招聘--奇虎360笔试
  9. 常见七种逻辑门真值表
  10. 苹果主题商店_苹果手机怎么换铃声?全网最简单的教程来了,小白秒学会