博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聚类任务基础详解
阅读量:3967 次
发布时间:2019-05-24

本文共 1656 字,大约阅读时间需要 5 分钟。

聚类任务基础详解

前言

本篇博客将详解聚类的基础内容,为之后的几种聚类算法做铺垫。

本文中图片来自自己的PPT或者百度百科,没有剽窃,没有剽窃,没有剽窃!

聚类任务

聚类属于无监督学习。再无监督学习中,训练样本是没有标记的,目标通过对训练样本的学习来揭示数据的内在规律,性质,为进一步的数据分析提供基础,而聚类是其中研究最多,引用最广的。

聚类的任务:聚类试图将数据集中的样本,划分为若干个(通常是)不相交的子集,而这每个子集称之为簇,通过这样的划分之后,每个子集可能会对应一个潜在的概念,或者说对应一个类。这些概念聚类算法是不知道的,需要使用者对其进行命名。
从集合的角度来看,我们可以直观的看图:
在这里插入图片描述
将一个集合D(样本空间包含m个样本)划分为N个(通常)不相交的子集,每个子集中包含了若干个样本,而每个样本有自己的簇标记,聚类的结果最终可用一个包含了m个元素的簇标记向量来表示,如下:
在这里插入图片描述

聚类的两个基本问题

在这里插入图片描述

性能度量

聚类的性能度量也叫聚类的"有效性指标",与监督学习中的性能度量相似,聚类的性能度量主要有两种功能

  • 判断聚类结果的好坏
  • 提前确定性能度量方式之后,可以直接作为聚类过程中的优化参考,从而更好的得到符合要求的聚类结果。

从直观的角度来看,我们希望的聚类结果,自然是"物以类聚",从簇的角度来看,就是簇内的距离尽可能的小,而簇间的距离尽可能的大。专业化一点就是簇内相似度高,簇间相似度低

度量聚类结果的方法通常分为两种:

  1. 外部指标:将聚类结果与某个参考模型进行比较。
  2. 内部指标:直接考察聚类结果,不利用其他参考模型。
    在这里插入图片描述

外部指标

在这里插入图片描述

在这里插入图片描述在这里插入图片描述以上为聚类常用的几种外部指标值,不难想象,当a越大时,其他值固定时,意味着聚类结果与参考中相同的对数越多,且以上值越大,意味着聚类的结果越准确,所以当值越大时,聚类的结果越好。

内部指标

对于内部指标,我们需要考虑结果簇的划分。

在这里插入图片描述在这里插入图片描述在这里插入图片描述对于BDI的值,当其他值固定avg越小时,意味着簇内相似度越高,所以结果就越好。但是对于DI来说却不同,当簇间最小距离最大的时候,意味着簇间相似度越低,也就以为着结果越好,因此

BDI越大,结果越好。

DI越小,结果越好。

这里注意不要搞反了。

距离计算

有序属性

我们在前文中可以看到一个dist(.)函数,该函数负责计算样本间的距离,那么样本间的距离是怎么算的呢,我们来看下文。

首先dist作为一个距离计算的函数,它需要符合一些基本的性质:
在这里插入图片描述
这四个性质可以从直观的角度理解,不需要细讲。
我们在计算距离时常用的闵可夫斯基距离,也就是:
在这里插入图片描述很显然,当p为1时,该距离为曼哈顿距离,当p为2时,该距离为欧几里得距离(欧氏距离)。

所谓的欧式距离,也就是在一个n维的空间中两点的真实距离,实际距离,也可以说是该向量的自然长度,总之就那么回事。

曼哈顿距离:曼哈顿距离也是闵可夫斯基提出的,笼统的概念来说,就是两个点在标准坐标系上的绝对轴距总和
闵可夫斯基:犹太人,四维时空理论的创建者,同时也是爱因斯坦的老师,一生传奇,老天才了,知道他厉害就行了😂。

下图可以清晰的反映出,绿色为欧氏距离,红色,黄色,蓝色都是曼哈顿距离的值。

在这里插入图片描述

无序属性

那么我们继续看,在利用闵可夫斯基距离计算时,对于常规的数字,小数,构成的坐标,向量来说都很容易计算,但是如果我们遇到类似于定义域为{篮球,足球,飞机,火车},这样的属性时,显然已经无法计算了,我们无法利用属性值直接计算距离,这种属性称为无序属性,与之相对的就是有序属性,也就是我们常见的{1,2,3,4,5.6,7.88}等等。显然在任务重不可能值存在有序属性,因此我们引入VDM算法,计算无序属性。

在这里插入图片描述

混合距离计算

在这里插入图片描述当样本空间中属性的重要性不同时,我们可以使用加权距离,例如加权闵可夫斯基距离:

在这里插入图片描述
特别注意的一点:我们常用某种形式的距离进行相似度的度量,距离越大,相似度越小,但是在有些时候我们需要知道用于度量相似度的距离并不一定满足度量的基本性质,我们将这种距离称之为非度量距离(后面会说到)

OVER

转载地址:http://kkcki.baihongyu.com/

你可能感兴趣的文章
Flutter UI基础 - Image.asset 图片铺满布局
查看>>
Flutter UI基础 - Row、Column详解
查看>>
Flutter UI基础 - 添加背景图片
查看>>
Flutter UI基础 - 布局之Row/Column/Stack
查看>>
Flutter UI基础 - 层叠布局Stack的使用
查看>>
Go - 解决 go get 超时问题
查看>>
SQL - SQL Server 之遍历数据集合的几种方法
查看>>
SQL - SQL Server 之处理JSON数据
查看>>
SQL - SQL Server 之WHILE循环的坑
查看>>
SQL - SQL Server 性能优化之SQL语句总结
查看>>
Docker - docker-compose常用命令
查看>>
SQL - SQL Server判断字符串中是否有中文
查看>>
SQL - SQL Server查询近7天的连续日期
查看>>
SQL - SQL Server中如何取年、月、日 -DATEPART函数
查看>>
SQL - SQL Server 一列或多列重复数据的查询,删除
查看>>
NET - .NET Core WebAPI + Vue + Axios 导出Excel / CSV
查看>>
NET - NET Core quartz.net 时间表达式----- Cron表达式详解
查看>>
NET - .NET Core 之 Abp Audit-Logging
查看>>
NET - .NET Core 之 Abp 整合 Quartz
查看>>
Spring - Nacos 配置实时更新原理分析
查看>>