当前位置: 首页 > 面试题库 >

聚类算法有哪些,优缺点是什么?

慕仲渊
2023-03-14
本文向大家介绍聚类算法有哪些,优缺点是什么?相关面试题,主要包含被问及聚类算法有哪些,优缺点是什么?时的应答技巧和注意事项,需要的朋友参考一下

èå¾

  1. 基于层次的聚类

    做法是将每个对象都看做一个类,计算两两之间距离最小的对象归为一类,然后重复这样的操作直至成为一个类,这种方式是采用贪心的方法,一步错步步错,时间复杂度过高,可解释性比较好

  2. 基于划分的聚类(k-Means)

原则是保证簇内的数据距离尽可能小,簇间的距离尽可能大,做法是确定需要划分的k的类别数,然后选择初始点,计算所有点到这些点的距离,将距离最近的点划为一簇,然后计算每一簇的平均值当做新的中心点,重复这样的过程直至最后收敛,优点在于时间空间复杂度都不高,但是对于k比较敏感,容易陷入局部最优解

  1. 基于密度的聚类(DBSCAN)

k-means聚类解决不了不规则形状的聚类,而基于密度的聚类可以解决,并对于噪声点比较有效,能发现任意形状的聚类,但是聚类的结果和参数关系很大

  1. 基于网络的聚类

原理是将数据空间划分成网格,计算每个网格中的数据密度,将相邻的高密度网格划为一簇,优点就是划分速度很快,因为是按照网格划分的,和数据点个数没有关系,所以对数据个数不敏感,但是却是以牺牲精度作为代价来实现的

  1. 基于模型的聚类 (SOM)

原理是为每一簇拟定一个概率模型,主要是基于概率模型和神经网络模型的方法,假定随机选择的数据服从某种分布,找到获胜单元,然后调整获胜单元周围的向量向其靠拢,最后形成簇,优点是分成簇没有那么硬,分类比较柔和,是以概率的形式表示的,缺点是执行效率不高,当数据较多较复杂时很慢

  1. 基于模糊的聚类(FCM)

原理来自于模糊集合论,使用隶属度来确定每个数据属于哪一类的,不断迭代隶属矩阵直至收敛来确定类别,算法对满足正态分布的数据具有很好的效果,缺点是算法的性能依赖于初始簇心,不能保证收敛于一个最优解

 类似资料:
  • 主要内容:Python的优点,Python 的缺点Python 是一种开源的解释型脚本编程语言,它之所以非常流行,主要有三点原因: Python 简单易用,学习成本低,看起来非常优雅干净; Python 标准库和第三库众多,功能强大,既可以开发小工具,也可以开发企业级应用; Python 站在了人工智能和大数据的风口上,站在风口上,猪都能飞起来。 举个简单的例子来说明一下 Python 的简单: 比如要实现某个功能,C语言可能需要 100 行代码

  • 本文向大家介绍为什么用Nodejs,它有哪些优缺点?相关面试题,主要包含被问及为什么用Nodejs,它有哪些优缺点?时的应答技巧和注意事项,需要的朋友参考一下 Nodejs的优点 事件驱动,通过闭包很容易实现客户端的生命活期。 不用担心多线程,锁,并行计算的问题 V8引擎速度非常快 对于游戏来说,写一遍游戏逻辑代码,前端后端通用 当然Nodejs也有一些缺点: nodejs更新很快,可能会出现版本

  • 本文向大家介绍iframe框架都有哪些优缺点?相关面试题,主要包含被问及iframe框架都有哪些优缺点?时的应答技巧和注意事项,需要的朋友参考一下 优点: 可以实现异步刷新,单个 刷新不影响整体窗口的刷新(可以实现无刷新上传,在 无法使用时) 可以实现跨域,每个 的源都可以不相同(方便引入第三方内容) 多页面应用时,对于共同的 , 可以使用 加载,拆分代码(导航栏的应用) 缺点: 每一个 都对应着

  • 本文向大家介绍相似度的计算方法了解哪些,各自的优缺点是什么? 相关面试题,主要包含被问及相似度的计算方法了解哪些,各自的优缺点是什么? 时的应答技巧和注意事项,需要的朋友参考一下 1.皮尔逊相关系数 反映的是两个变量之间的线性相关性,它的一个缺点是针对用户之间只有一个共同的评分项不能进行比较,另外没有考虑重叠的评分项数量对相似度的影响 2.欧几里得距离 描述两个变量之间的直线距离,当两个变量至少有

  • 本文向大家介绍高阶组件(HOC)有哪些优点和缺点?相关面试题,主要包含被问及高阶组件(HOC)有哪些优点和缺点?时的应答技巧和注意事项,需要的朋友参考一下 HOC 优点 通过传递props去影响内层组件的状态,不直接改变内层组件的状态,降低了耦合度 缺点 组件多层嵌套, 增加复杂度与理解成本 ref隔断, React.forwardRef 来解决 高阶组件多层嵌套,相同命名的props会覆盖老属性

  • 1、Spring Boot简介 基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突、引用的不稳定性得到了解决。 2、Spring Boot 有哪些优点? 快速构建项目,可以选一些必要的组件; 对主流框架的无配置集成; 内嵌Tomcat容器,项目可独立