核聚类与支持向量聚类

聚类是数据挖掘中用来发现数据分布和隐含模式的一项重要技术[1]。作为一种常见的数据分析工具和无监督机器学习方法,聚类的目的是把数据集合分成若干类(或簇),使得每个类中的数据之间最大限度地相似,而不同类中的数据最大程度地不同。根据聚类算法所采用的基本思想,大致可以将它们分为五种[2],即划分聚类、层次聚类、基于密度的聚类、基于网格的聚类和基于模型的聚类。目前对聚类算法的研究正在不断深入,其中核聚类算法和谱聚类算法是近年来受到广泛关注的两种算法[3]。

核聚类方法的主要思想是通过一个非线性映射,将输入空间中的数据点映射到高维特征空间中,并选取合适的Mercer核函数代替非线性映射的内积,在特征空间中进行聚类。该方法是普适的,它比经典的聚类方法有较大的改进。它通过非线性映射增加了数据点线性可分的概率,即能较好地分辨、提取并放大有用的特征,从而实现更为准确的聚类,算法收敛速度也较快。在经典聚类算法失效的情况下,核聚类算法常常能得到较好的聚类结果[4]。

支持向量聚类(Support Vector Clustering, SVC属于核聚类的一种,它以支持向量机(Support Vector Machine, SVM)为工具进行聚类[5]。它是Ben-Hur等在基于高斯核的SVDD(Support Vector Domain Description)算法基础上进一步发展起来的无监督非参数型的聚类算法[6]。它的基本思想是:利用高斯核,将数据空间中的数据点映射到一个高维的特征空间中。再在特征空间中寻找一个能包围所有数据点象的半径最小的球,将这个球映回到数据空间,则得到了包含所有数据点的等值线集。这些等值线就是簇的边界。每一条闭合等值线包围的点属于同一个簇[7, 8]。SVC算法主要分为两个阶段:SVC训练阶段和聚类分配阶段。其中SVC训练阶段包括高斯核宽度系数的确定、核矩阵的计算、Lagrange乘子的计算、支持向量的选取和高维特征空间中特征球半径的计算。聚类分配阶段首先生成邻接矩阵,然后根据邻接矩阵进行聚类分配[9]。

SVC算法具有两大显著优势:能产生任意形状的簇边界;能分析噪声数据点且能分离相互交叠的簇。这是许多聚类算法无法做到的。但SVC算法仍存在两个瓶颈: Lagrange乘子的计算和邻接矩阵的计算。相对而言,后者需要消耗的计算时间远比前者多[9]。因此很多新的SVC算法都旨在提高邻接矩阵的计算效率[10, 11]。

from: http://www.sciencenet.cn/m/user_content.aspx?id=252321

参考文献

[1] Xu R, Wunsch D. Survey of Clustering Algorithms. IEEE Transaction on Neural Networks, 2005, 16(3): 645-678.

[2] Han J, Kamber M. Data Mining: Concepts and Techniques, Second Edition. Morgan Kaufmann, San Francisco, 2006.

[3] Filippone M, Camastra F, Masulli F, Rovetta S. A Survey of Kernel and Spectral Methods for Clustering. Pattern Recognition, 2008, 41(1): 176-190.

[4] 张莉,周伟达,焦李成. 核聚类算法. 计算机学报, 2002, 25(6): 587-590.

[5] Burges C J C. A Tutorial on Support Vector Machines for Pattern Recognition. Data Mining and Knowledge Discovery, 1998, 2(2): 121-167.

[6] Tax D M J, Duin R P W. Support Vector Domain Description. Pattern Recognition Letters, 1999, 20(11-13): 1191-1199.

[7] Ben-Hur A, Horn D, Siegelmann H T, Vapnik V. Support Vector Clustering. Journal of Machine Learning Research, 2001, 2(12): 125-137.

[8] Scholkopf B, Williamson R, Smola A, Shawe-Taylor J, Platt J. Support Vector Method for Novelty Detection. Advances in Neural Information Processing System 12. 2000: 582-588.

[9] 吕常魁,姜澄宇,王宁生. 一种支持向量聚类的快速算法. 华南理工大学学报. 2005, 33(1): 6-9.

[10] Lee J, Lee D. An Improved Cluster Labeling Method for Support Vector Clustering. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2005, 27(3): 461-464.

[11] Camastra F, Verri A. A Novel Kernel Method for Clustering. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2005, 27(5):801-805.

核聚类与支持向量聚类相关推荐

  1. 了解聚类是什么。聚类方法:k-means、核聚类、层次聚类、谱聚类

    聚类 1.什么是聚类 2.聚类方法 2.1 划分式聚类方法 k-means k-means++ bi-kmeans 基于密度的方法 DBSCAN OPTICS算法 层次化聚类算法 核聚类 支持向量聚类 ...

  2. python多维向量聚类_机器学习:Python实现聚类算法(三)之总结

    考虑到学习知识的顺序及效率问题,所以后续的几种聚类方法不再详细讲解原理,也不再写python实现的源代码,只介绍下算法的基本思路,使大家对每种算法有个直观的印象,从而可以更好的理解函数中参数的意义及作 ...

  3. python 最小二乘回归 高斯核_机器学习技法6-(支持向量回归)

    一.核岭回归 线性分类模型加入了L2正则化以后,最佳解是w关于z的线性组合,因此带有L2正则化的线性分类模型能引入核函数,也就是把线性模型变成核函数的形式. 在线性回归模型中,损失函数为: 当给线性回 ...

  4. 基于w2v词向量聚类出现的问题(有待解决)

    基于w2v词向量聚类出现的问题(有待解决) 参考文章: (1)基于w2v词向量聚类出现的问题(有待解决) (2)https://www.cnblogs.com/kjkj/p/9768578.html ...

  5. matlab对手写数字聚类的方法_scikitlearn — 聚类

    可以使用模块sklearn.cluster对未标记的数据进行聚类.每个聚类算法都有两种变体:一个是类(class)实现的 fit方法来学习训练数据上的聚类:另一个是函数(function)实现,给定训 ...

  6. 支持向量回归预测怎么做_机器学习如何在油气开发预测中发挥作用?

    机器学习主要作用是分类.回归.降维和聚类.在开发指标预测中主要是回归和降维.机器学习的主要理论基础就是使目标函数最小化,而目标函数主要由经验风险和结构风险组成.经验风险就是预测值和真实观测值的差异,结 ...

  7. 【聚类算法】常见聚类算法总结

    转自:https://blog.csdn.net/u010062386/article/details/82499777 感谢博主 1.常见算法 1.原型聚类 "原型"是指样本空间 ...

  8. python谱聚类算法_谱聚类(spectral clustering)原理总结

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  9. 迈向数据科学的第一步:在Python中支持向量回归

    什么是支持向量回归? (What is Support Vector Regression?) Support vector regression is a special kind of regre ...

最新文章

  1. 照葫芦画瓢-python editors(编辑器 IDE)
  2. libc++abi.dylib: terminate_handler unexpectedly
  3. 推荐一个 Vue3 全家桶 + TS+ Vite2 + element-plus 的网站实战项目
  4. 设计模式的理解:迭代器模式(Iterator)
  5. Java json序列化库gson(2)
  6. BlazeDS入门教程-很详细-赞原创作者一个
  7. java中容器如何维护其内容
  8. iOS最全学习资源汇总
  9. 一位 Google 大佬的辞职感言..
  10. Matlab coder生成C++代码
  11. English 英文邮件致谢的10种表达方式十种不同场合的英文表达
  12. CentOS6.5搭建asterisk及配置软电话
  13. 什么是元数据?为何需要元数据?
  14. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)
  15. [附源码]计算机毕业设计JAVA校园二手交易平台的设计
  16. Hibernate_day03(转载传智播客的老师讲义,博主只图查看方便)
  17. operate1c语言,operate的第三人称单数和例句
  18. PS 软件操作应用处理——粒子化任务效果
  19. (2)RabbitMQ基础概念及工作流程详解
  20. 关于FFmpeg将m3u8合并成mp4之后时长不对的解决方法

热门文章

  1. [云炬创业学笔记]第三章商业创意的发掘与评估测试3
  2. 科大星云诗社动态20210508
  3. 周志华《机器学习》课后习题(第三章):线性模型
  4. 回馈读者:赠花书一本!
  5. Coursera吴恩达《神经网络与深度学习》课程笔记(4)-- 浅层神经网络
  6. linux退出 putty_使用putty远程连接linux防止关闭putty程序就停止
  7. oop中构造函数编写的注意事项
  8. Hybrid app 学习资料收集
  9. windows 包管理器scoop的使用
  10. C语言再学习 -- 数组和指针