加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

干货 | 全面理解无监督学习基础知识

发布时间:2019-04-06 00:02:36 所属栏目:建站 来源:Evanyzh
导读:副标题#e# 一、无监督学习 无监督学习的特点是,模型学习的数据没有标签,因此无监督学习的目标是通过对这些无标签样本的学习来揭示数据的内在特性及规律,其代表就是聚类。与监督学习相比,监督学习是按照给定的标准进行学习(这里的标准指标签),而无监督
副标题[/!--empirenews.page--]

干货|全面理解无监督学习基础知识

一、无监督学习

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

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

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

二、聚类的性能度量

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

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

在介绍外部指标之前先作以下定义。对于样本集合,我们可以给每一个样本一个单独的编号,并且我们以干货 | 全面理解无监督学习基础知识表示编号为i j 的样本属于同一个簇,这里 i<j 可以避免重复。因此有

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

常用的外部指标如下

干货 | 全面理解无监督学习基础知识

以上的性能度量的结果都在[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)

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!