深入浅出聚类算法!如何对王者英雄聚类分析,探索英雄之间的秘密

 Datawhale 

作者:小一,Datawhale优秀学习者

寄语:首先,对聚类算法进行了介绍;然后,解释了EM算法E步、M步的原理;最后,对sklearn参数进行了详解,并对王者荣耀英雄利用EM算法聚类,助力深入理解EM算法。

EM算法(Expectation Maximization Algorithm),译作最大期望化算法或期望最大算法。它是一种迭代算法,是常见且经典的聚类算法之一,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计。

对聚类算法、EM算法的原理及其实践进行详细的讲解之前。首先来看一张EM算法的聚类图,有个大致直观地了解。

学习框架

数据集及聚类分析代码后台回复 王者荣耀 获取

聚类算法

先来一段西瓜书里面的定义:在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,此类学习任务中研究最多、应用最广的是“聚类”(clustering)。

总结一下关键词:标记信息未知、学习、内在性质及规律、聚类。对,还有一个:无监督学习,无监督算法大多都可以用上面的关键词来描述。

以聚类算法为例,其目的是对一批未知标记的数据通过某种方式进行聚类,使其能够有效的分成若干个类别,每一个类别里面的数据特征都类似,不同类别的数据差异性较大。

举个简单的例子:在中国的乡村有这样一个现象,一个村子的姓氏大多相同,不同村子有不同的姓氏。那如果现在把王家村、李家村、赵家村的所有人都聚集在一起,前提是不知道他们是哪个村子的,如何对他们进行聚类?

  • 特性①:姓名,通过姓氏进行聚类,最终聚成三类:王+李+赵+其它

  • 特性②:性别,通过性别进行聚类,最终聚成两类:男+女

  • 特性③:年龄,通过年龄进行聚类,最终聚成三类:儿童+青年+老年

  • 特性④:价值,通过价值进行聚类,最终聚成三类:高收入+中收入+低收入

  • 特性⑤:属性,通过属性进行聚类,最终聚成三类:村领导+村干部+村民

上面的姓氏、性别、年龄、价值和属性等都是村民的内在性质(人物特征),这样的内在性质有很多,也就决定了聚类的标准并不唯一。

ok,想必大家已经明白了什么是聚类,通过上面的例子我们总结一下。

1. 何为聚类

聚类:将数据集中的样本划分为若干个不相交的子集,每个子集内部的样本之间具有相同的性质,不同子集之间差异性较大。通常情况下,我们会将子集称之为“簇”(cluster)

2. 如何聚类

聚类的本质是将具有相似特征的样本划分在一个簇里面,根据聚类算法的不同,聚类的实现过程也不尽相同。

例如,聚类算法中k-means是基于均值的聚类,DBSCAN是基于密度的聚类,AGNES是基于层次的聚类,可以针对不同的样本集使用不同算法进行聚类。

3. 评估聚类

聚类性能的评估比较麻烦,主要有两个原因:

  • 样本集不存在已标记的类别数据,无法直接计算聚类算法的准确率。

  • 若存在标记类别数据,无法直接通过预测前后类别之间的对应关系进行性能评估

针对上面的问题,可以大致分为两种,一种是存在已经确定的标记类别数据(类似于分类数据集),一种是完全没有标记的类别数据。

有标记类别数据的评估:当前的样本数据有标记类别数据C1和预测后的标记类别数据C2,但是无法直观的通过C1、C2去计算聚类错误率。

这个时候,可以通过条件熵去分析,可以认识到两个指标,分别是齐次性和完整性。通过这两个指标可以评估带有类别标记样本的聚类性能。

其中齐次性表示一个聚类元素只由一种类别的元素组成;完整性则表示给定的已标记的类别 ,全部分配到一个聚类里。

没有标记的类别数据的评估:大多应用于聚类算法的数据都是无标记的,因为既然数据都有标记了,直接用分类算法不香吗?

有一个指标叫做轮廓系数,它可以在不需要已标记数据集的前提下,对聚类算法的性能进行评估。

轮廓算法由以下两个指标构成:

  • a:一个样本与其所在相同聚类的平均距离

  • b:一个样本与其距离最近的下一个聚类里的点的平均距离

则针对这个样本,其轮廓系数s的值为:

针对一个数据集,其轮过系数s 为其所有样本的轮廓系数的平均值。轮廓系数的数值介于[-1,1]之间,-1表示完全错误的聚类,1表示完美的聚类,0表示聚类重叠。

EM原理

EM的英文全称是:Expectation Maximization,所以EM算法也叫最大期望算法。

学习EM之前,希望你已经理解了什么是极大似然估计,不了解的点这个:太赞了!机器学习基础核心算法:贝叶斯分类!(附西瓜书案例及代码实现)

1. 极大似然估计

先说一下极大似然估计:已知某个随机样本满足某种概率分布,且某个参数能使这个样本出现的概率最大,我们把这个参数作为估计的真实值叫做最大似然估计。也就是求解出现样本结果的最佳参数θ。

所以极大似然估计需要面临的概率分布只能有一个,但是要是不止一个呢?看个例子:

假设现在有两枚硬币A和B,随机抛掷后正面朝上概率分别为P_A,P_B。为了估计这两个概率,需要每次取一枚硬币,连掷10下并记录下结果,结果如下:

ok,根据以上分布结果,可以轻松算出:

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值