一、无监督学习

无监督学习的特点是,模型学习的数据没有标签,因此无监督学习的目标是通过对这些无标签样本的学习来揭示数据的内在特性及规律,其代表就是聚类。与监督学习相比,监督学习是按照给定的标准进行学习(这里的标准指标签),而无监督学习则是按照数据的相对标准进行学习(数据之间存在差异)。以分类为例,小时候你在区分猫和狗的时候,别人和你说,这是猫,那是狗,最终你遇到猫或狗你都能区别出来(而且知道它是猫还是狗),这是监督学习的结果。但如果小时候没人教你区别猫和狗,不过你发现猫和狗之间存在差异,应该是两种动物(虽然能区分但不知道猫和狗的概念),这是无监督学习的结果。

聚类正是做这样的事,按照数据的特点,将数据划分成多个没有交集的子集(每个子集被称为簇)。通过这样的划分,簇可能对应一些潜在的概念,但这些概念就需要人为的去总结和定义了。

聚类可以用来寻找数据的潜在的特点,还可以用来其他学习任务的前驱。例如在一些商业引用中需要对新用户的类型进行判别,但是“用户类型”不好去定义,因此可以通过对用户进行聚类,根据聚类结果将每个簇定义为一个类,然后基于这些类训练模型,用于判别新用户的类型。


二、聚类的性能度量

聚类有着自己的性能度量,这和监督学习的损失函数类似,如果没有性能度量,则不能判断聚类结果的好坏了。

聚类的性能大致有两类:一类是聚类结果与某个参考模型进行比较,称为外部指标;另一种则是直接考察聚类结果而不参考其他模型,称为内部指标。

在介绍外部指标之前先作以下定义。对于样本集合,我们可以给每一个样本一个单独的编号,并且我们以

表示编号为i j 的样本属于同一个簇,这里 i可以避免重复。因此有

a表示在聚类结果中样本i j 属于同一个簇,而在参考模型中i j 也同属于一个簇。b表示在聚类结果中样本i j 属于同一个簇,而在参考模型中i j 不同属于一个簇。cd同理。以上定义两两样本在聚类结果和参考模型结果可能出现的情况。

常用的外部指标如下

以上的性能度量的结果都在[0,1]区间中,并且结果越大,说明性能越好。

倘若没有可参考的模型,一个好的聚类结果应是类内的点都足够近,类间的点都足够远,这就是内部指标说要描述的。对于内部指标我们需要先做以下定义

常用的内部指标有

DBI值越小说明聚类效果好,DI则相反,DI值越大说明聚类效果越好。


三、距离度量

样本点分布空间中,如果两个样本点相距很近,则认为样本点应该属于同一个簇。如果样本相距很远,则不会认为它们属于同一个簇。当然这里的远近是一种相对的概念而不是单纯的数值。我们可以使用VDM(Value Difference Metric)距离:

以上表示了属性u上两个离散值a与b之间的VDM距离。

表示属性u上取值为a的样本数

表示在第i个样本簇中属性u上取值为a的样本数,k为样本簇数。

距离度量在聚类中非常重要,因为距离度量描述的是不同类别的相似度,距离越大相似度越小,由于不同概念之相似度的度量有所不同,在现实任务中,需要通过样本确定合适的距离计算公式,这可以通过距离度量学习实现。


四、常见的距离算法

k-means

k均值是常用的快速聚类方法,该方法在学习开始之初,随机设置若干个簇心,样本点隶属于离它最近的簇心。因此每个簇心会有一个隶属于它自己的样本集合。每次迭代,每个簇心找到隶属于自己的样本集合,并根据其隶属的样本集合中计算出中心位置(均值),然后簇心移动到此处。直到聚类结果不发生改变。k-means对球状簇比较高效,针对其他的效果较差。

关于聚类簇心的设置,现实中我们往往会设置不同数量的簇心,通过聚类的性能度量来选择最佳的簇心个数。

以上是西瓜数据集的聚类过程。

学习向量量化(Learin Vector Quantization)

LVQ和K均值算法很像,同样是通过移动簇心来实现聚类,不同的是LVQ假设数据样本有类别标记,通过这些监督信息辅助聚类。算法过程如下

以上算法的过程可以简单概括为,如果随机选择的点与簇心的类别不对应则令簇心远离该样本点,否则靠近该样本点。迭代结束后对于任意样本x,它将被划入与其距离最近的原型向量所代表的簇中。

以上是LVQ在西瓜数据集聚类的过程。

高斯混合聚类

高斯混合聚类才用概率模型来表达聚类原型,我们可以定义高斯混合分布为

其中

为混合系数且

。使用高斯混合聚类其实是假设样本是在高斯混合分布中采样的结果。对于样本我们可以通过计算

得出某样本由第i个高斯分布生成的后验概率,该样本的类别为使得该概率最大的分布的类别。有关于高斯混合模型的具体介绍,将会与EM算法一起介绍。

密度聚类

顾名思义,密度聚类从样本密度的角度来考察样本之间的关联性,其经典算法为DBSCAN,该算法通过设置的邻域样本邻域内最少样本点数为标准设置核心对象,倘若核心对象密度相连则将它们合并到同一簇,因此DBSCAN的聚类结果的一个簇为最大的密度相连的样本集合。以下是DBSCAN的一些概念的定义:

上面MinPts = 3,虚线表示核心对象的邻域。X1与X2密度直达,X1与X3密度可达X3与X4密度相连。

DBSCAN能够将足够高密度的区域划分成簇,并能在具有噪声的空间数据库中发现任意形状的簇。

层次聚类

层次聚类开始时把所有的样本归为一类,然后计算出各个类之间的距离,然后合并距离最小的两个类。从上面的描述来看,层次聚类就像是在用克鲁斯卡尔算法建立最小生成树一样,不过当层次聚类当前类别数下降到给定的类别数是就会终止。这里层次聚类所使用的聚类是不同类别之间的平均距离。

因为层次聚类所需要计算的距离很多,因此层次聚类并不适合在大的数据集中的使用。

无监督和有监督的区别_干货|全面理解无监督学习基础知识相关推荐

  1. 频率计的交流耦合和直流耦合的区别_风机盘管直流无刷与普通交流电机有什么区别和不同?...

    注:水舒适整理原创,转载请注明出处,面斥不雅直流无刷风机盘管由于具有节能.无级调速.安静.寿命长等优点,所以在许多新建项目中都被广泛应用,并且也越来越得到市场的认可与青睐.那么,直流无刷风机盘管与普通 ...

  2. lcl手术和飞秒区别_干货科普:目前市面上4种近视手术方式有何区别(全飞秒、半飞秒、全激光、晶体植入)...

    写这篇文章的初衷是因为我18年写过一篇全飞秒手术分享贴,有不少想做手术的知友在评论区问了很多问题,80%的问题都是大家不清楚目前市面上几种手术方式的区别,以及自己到底应该选择怎样的手术方式,所以我才写 ...

  3. c语言 异或_编程入门:C语言基础知识全网超全不用到处找了!(文末附清单)

    你背或者不背,干货就在那里,不悲不喜 你学或者不学,编程就在那里,不来不去 听到这话的你是否略感扎心? 01基础知识 1. 计算机系统的主要技术指标与系统配置. 2. 计算机系统.硬件.软件及其相互关 ...

  4. hashcode是什么意思_什么才是 Java 的基础知识?

    作者:晓风轻 链接:zhuanlan.zhihu.com/p/28615617 近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java ...

  5. 计算机基础知识整理大全_【干货整理】高中文言文基础知识大全,速度收藏!...

    今天和大家分享的是 高中文言文基础知识大全 高中文言文基础知识大全 文言文是以古汉语文雅的口语为基础的书面形式,在远古时代文言文与平常的口语的差异微乎其微.现今文言文是中国古代的一种书面语言组成的文章 ...

  6. java入门应该学什么_初学Java应该掌握哪些基础知识?

    Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档.这对于那些迷恋于WEB浏览的人们来说简直不可容忍.Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中 ...

  7. mvc试图 下拉框不重复_面试前不巩固一下基础知识、刷刷题吗?

    其实面试就像一场相亲,在你心动人的面前,肯定要展示自己最好的一面,无论是穿着还是言行举止.作为一个软件开发工程师,看过很多公司的面试题,也参与过很多公司的面试,也给不少人新人面过时不试,虽说我现在并没 ...

  8. 华为ensp命令大全_电脑网络:华为交换机基础知识及基本命令配置大全,新手的福音...

    一.交换机常识. 华为作为全球领先的电信解决方案供应商,其产品和业务的分布十分广泛,是众多通信行业的公司学习的典范. 本文主要将以华交换机为例,了解华为交换机的基础知识. 华为交换机基础知识 华为27 ...

  9. dp线和hdmi区别_干货| 认识VGA、DVI、HDMI、DP视频接口

    在我们的生活中,无论是电脑.电视还是投影设备等等,都离不开视频输出接口,尤其在显卡上面,通常会出现3种甚至更多的接口.今天,我们就来和大家说一说VGA.DVI.HDMI.DP四种接口之间有什么区别.一 ...

最新文章

  1. C语言case次数有限制吗,用switch...case语句统计数字、空格和其他字符出现的次数...
  2. 服务器反馈为空,反馈服务器端error的处理
  3. 【数据结构与算法】之深入解析“不同的二叉搜索树”的求解思路与算法示例
  4. YBTOJ洛谷P2223:软件开发(费用流)
  5. vue 学习之路 —— 图片的引入
  6. 借汉诺塔理解栈与递归
  7. 现代软件工程系列 学生的精彩文章 (6) 项目总结
  8. validation 参数校验和统一异常处理
  9. 【微信小程序】初识小程序
  10. maven 打包javadoc乱码解决方案
  11. 什么是JAP,什么是ORM,与hibernate的关系
  12. 【js】event(事件对象)详解
  13. Umbraco中根据ID获取IPublishedContent
  14. java局域网发送文件_Java如何实现局域网文件传输代码案例分享
  15. js获取当前html路径,JavaScript获取当前url根目录(路径)
  16. 钉钉打卡作弊软件案件的介绍
  17. CCF计算机职业资格认证考试201403-2“窗口”试题及答案
  18. 我的春招实习+秋招总结【前端开发】
  19. 短视频平台类的社交媒体市场现状与发展前景到底如何?
  20. html让gif图片暂停,控制GIF动画暂停播放的代码

热门文章

  1. 灰色的rgb值_一行代码实现图片的灰色效果
  2. console修改 ajax,【快速】chrome中console下ajax访问后台
  3. oracle 查看并行数据库,Oracle数据库并行查询出错的解决方法
  4. 当identity_insert 设置为off时不能为表_硬盘跳线怎么设置 硬盘跳线设置方法【详解】...
  5. 计算机网络-基本概念(9)【传输层】TCP拥塞控制 【网络层】拥塞避免
  6. 自然语言处理综述(一)
  7. Github 热榜项目:如何让你的终端酷炫到没朋友
  8. mysql 中文字段名_10个MySQL的数据库技巧~
  9. matlab绘图 excel,『在matlab上如何导入excel表格然后画图』excle表格如何使用绘图笔...
  10. c语言不可见字符的ascii,转CHAR不可见字符