1. k-Medoids

之前的kmeans算法 对于异常点数据特别敏感,更新中心点的时候,是对于该簇的所有样本点求平均,这种方式对于异常样本特别敏感,



kmedoids算法克服这个问题,实现方式所有属于该簇的样本点每一个维度 取中位数 这样得到新的中心点 就对于异常点没那么敏感了

总结:更新中心点的方法 由求平均改成求中位数

2. 二分KMEANS

为克服K-Means算法收敛于局部最小值问题,提出了二分K-Means算法

  1. 使用以前的KMEANS算法 k=2, 得到两个簇,两个中心点,
  2. 选取其中的一个簇,再使用k=2的KMEANS算法,相比上一步,只不过输入的样本换一下而已,选取其中的一个簇,根据一定的指标来选,例如:样本数量大的,需进行再分,或者 SSE总误差更大的
  3. 重复步骤,直到分类的总数等于目标分类数

总结:每次分两个簇,选择其中一个簇再分成两个,直到分类的总数=k

3. KMeans++

KMeans++ 与KMeans的不同就是在初始中心点的选取上不同,初始中心点的选取会直接影响算法的收敛,容易只得到局部最优,所以初始中心点的选取就要尽量的相离的分散,如何实现

  1. 随机选取一个中心点
  2. 计算其他点到 已知中心点 中最近邻的的距离 根据这个距离 来选择他是否能做为下一个中心点,被选择的概率和计算出来的距离成正比
  3. 重复2 直到k个中心被选中

实现方式伪代码:

  1. 已知的中心点 c1, c2, c3
  2. 对于剩余的样本点 x4,x5,--- ,xn,

    拿x4来说: min(d(c1, x4), d(x2, x4), d(c3,x4)) 得到x4 距离已知中心点的最近邻距离 记为 dist4, 依次得到 dist5, ---, distn

    将这距离进行归一化操作, 记sum=sum(dist4, dist5, ---, distn)

    (dist4, dist5, ---, distn)/sum 记为 (p4, p5, p6, ,,, pn)

    将这些距离画在数轴上



    np.random.rand() 0-1之间随机的取一个数,看下它落在数轴上的那个位置,则那个样本点就被选中,这也就是为什么距离远远的点越容易被选中。

4. elkan KMeans

由于计算每个样本到 类中心 的距离比较耗时

对于x样本 是属于b中心点还是c中心点 只需要作出判断 不需要全部计算出

利用两边之和大于第三边

假设x是一个点,b和c是中心点



bx 肯定是小于bc x点肯定是分类到b

elkan K-Means比起传统的K-Means迭代速

度有很大的提高。但是如果我们的样本的特征是稀疏的,有缺失值的话,这个方法就不使用了,此时某些距离无法计算,则不能使用该算法

5. min batch KMeans算法

KMeans算法 对所有的样本点 通过计算距离最近 将其划分到对应类 这样会特别耗时

能否只抽取部分的样本 计算距离最近 将其划分到对应类 输出新的中心点

这就叫做mini batch KMeans

与批量梯度下降法 计算梯度类似,计算梯度的时候也只使用部分样本 只要能大致的指明梯度的方向就行 不需要完全精确计算出梯度

6.小结:

原理比较简单,实现也是很容易,收敛速度快(在大规模数据集上收敛较慢,可尝试使用Mini

Batch K-Means算法)。

1 原理比较简单,实现也是很容易,收敛速度快(在大规模数据集上收敛较慢,可尝试使用MiniBatch K-Means算法)

2 聚类效果较优。

3 算法的可解释度比较强。

4 主要需要调参的参数仅仅是簇数k。

缺点:

机器学习-无监督机器学习-kmeans衍生的算法-18的更多相关文章

  1. 1(1).有监督 VS 无监督

    对比一 : 有标签 vs 无标签 有监督机器学习又被称为“有老师的学习”,所谓的老师就是标签.有监督的过程为先通过已知的训练样本(如已知输入和对应的输出)来训练,从而得到一个最优模型,再将这个模型应用 ...

  2. 学习笔记CB008:词义消歧、有监督、无监督、语义角色标注、信息检索、TF-IDF、隐含语义索引模型

    词义消歧,句子.篇章语义理解基础,必须解决.语言都有大量多种含义词汇.词义消歧,可通过机器学习方法解决.词义消歧有监督机器学习分类算法,判断词义所属分类.词义消歧无监督机器学习聚类算法,把词义聚成多类 ...

  3. 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换

    自动编码器是一种有三层的神经网络:输入层.隐藏层(编码层)和解码层.该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标 ...

  4. darktrace 亮点是使用的无监督学习(贝叶斯网络、聚类、递归贝叶斯估计)发现未知威胁——使用无人监督 机器学习反而允许系统发现罕见的和以前看不见的威胁,这些威胁本身并不依赖 不完善的训练数据集。 学习正常数据,发现异常!

    先说说他们的产品:企业免疫系统(基于异常发现来识别威胁) 可以看到是面向企业内部安全的! 优点整个网络拓扑的三维可视化企业威胁级别的实时全局概述智能地聚类异常泛频谱观测 - 高阶网络拓扑;特定群集,子 ...

  5. <机器学习>无监督学习算法总结

    本文仅对常见的无监督学习算法进行了简单讲述,其他的如自动编码器,受限玻尔兹曼机用于无监督学习,神经网络用于无监督学习等未包括.同时虽然整体上分为了聚类和降维两大类,但实际上这两类并非完全正交,很多地方 ...

  6. kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归

    使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...

  7. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  8. 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...

  9. R语言︱机器学习模型评估方案(以随机森林算法为例)

    笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...

  10. Python机器学习笔记:奇异值分解(SVD)算法

    完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote 奇异值分解(Singu ...

随机推荐

  1. 使用动画曲线编辑器打造炫酷的3D可视化ACE

    前言 在制作3D可视化看板时,除了精细的模型结构外,炫酷的动画效果也是必不可少的.无论是复杂的还是简单的动画效果,要实现100%的自然平滑都是具有挑战性的工作.这涉及到物理引擎的计算和对动画效果的数学 ...

  2. Oracle-Rman备份全解析

    RMAN备份数据库物理文件到备份集(backupset)中.在创建备份集时,仅备份已经使用的数据库(不备份空闲的数据块),而且还可以采用压缩功能. RMAN恢复时指当数据库出现介质失败时,使用RMAN ...

  3. Python 潮流周刊第 32 期(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  4. 如何使用libgdx做游戏01---libgdx的安装

    一般来说使用这个工具做游戏的都是java开发者,这种技术在国外勉强算是必学的,而在国内却很少有这方面的知识. 接下来,我将讲解如何安装libgdx,也算是简单的libgdx入门 工具:idea.jdk ...

  5. 从零玩转人脸识别验证-face

    title: 从零玩转人脸识别验证 date: 2022-05-15 21:05:52.974 updated: 2023-05-16 00:00:11.594 url: https://www.yb ...

  6. Python趣味入门12:初遇类与实例

    小牛叔用轻松有趣的故事,带你进入Python的编程世界. 1.类 一提到类大神们就经常说封装.说白了,封装即把围绕同一个对象相同的代码.数据整合在一起.比如在某段游戏代码中(比如熊猫厨房),有一个&q ...

  7. IBM DS5020存储更换硬盘操作

    前期准备:笔记本.网线 连接存储控制器操作,在笔记本上安装DS Storage Manager 11 Client,然后在笔记本IP设备为192.168.128.X(A控制器管理口1和2的管理IP地址 ...

  8. Java 并发编程(三)锁与 AQS

    本文 JDK 对应的版本为 JDK 13 由于传统的 synchronized 关键字提供的内置锁存在的一些缺点,自 JDK 1.5 开始提供了 Lock 接口来提供内置锁不具备的功能.显式锁的出现不 ...

  9. docker: 'buildx' is not a docker command

    解决方法 sudo apt install docker-buildx-plugin

  10. 详解JQuery框架的五大选择器

    摘要:今天来和大家分享一下JQuery的五种选择器的详细使用方法. 本文分享自华为云社区<[JQuery框架]五大选择器"全家桶"详解!!!>,原文作者:灰小猿 . 今 ...