机器学习理论之(14):聚类算法的有监督(supervised)评估方式:purity v.s. entropy

  • 聚类算法是一类典型的无监督算法,那么为什么还有有监督的评估方式呢?
  • 所谓的 “无监督” 算法指的是模型对于数据的训练和划分不依靠数据的标签,但是我们可以用标签来判断这个模型划分的是不是符合我们的要求。

纯度 Purity

  • 假设对包含 N N N 个样本的数据集,用 kmeans 划分成 k k k 个聚类簇 C i , . . . C k C_i,...C_k Ci,...Ck ∣ C i ∣ |C_i| Ci 表示的是这个簇中的样本个数, P i ( j ) P_i(j) Pi(j) 代表在第 i i i 个聚类簇中标签为 j j j 的样本的概率;纯度 purity 的公式如下:
    在这里插入图片描述

在这里插入图片描述

  • 在这个例子中,一共有两个聚类簇,即 i = 1 , 2 i=1,2 i=1,2,一共有两种不同的标签,因此 j = 1 , 2 j=1,2 j=1,2
    • 在第一个 cluster 中 P y e s = 1 P_{yes}=1 Pyes=1, P n o = 0 P_{no}=0 Pno=0,因此 max ⁡ j \max_{j} maxj 的结果是 P y e s = 1 P_{yes}=1 Pyes=1
    • 在第二个 cluster 中 P y e s = 0.6 , P n o = 0.4 P_{yes}=0.6, P_{no}=0.4 Pyes=0.6,Pno=0.4,因此,选最大的 P y e s = 0.6 P_{yes}=0.6 Pyes=0.6
  • 然后套用 purity 的公式可以得到对两个聚类中心按照样本的数量进行加权求和: C 1 N ∗ 1 + C 2 N ∗ 0.6 = 2 12 ∗ 1 + 10 12 ∗ 0.6 = 0.67 \frac{C_1}{N} * 1 + \frac{C_2}{N} * 0.6=\frac{2}{12} * 1 + \frac{10}{12} * 0.6=0.67 NC11+NC20.6=1221+12100.6=0.67
  • 因此,通过 purity 这个指标衡量当前聚类算法的结果是 0.67。
  • 通过上面的例子可以看出 purity 衡量了什么呢?其实最理想的聚类情况是,每个 cluster 中只有一个类标签,这个时候对数据的划分是最精确的,基本上等价于拟合数据很好的分类器。因此让我们看一下这时候的 purity 是不是最大。
ClusterPlay=yesPlay=no
120
2010
  • 还是按照上面的思路:
    • 在第一个 cluster 中,最终选择 P y e s = 1 P_{yes}=1 Pyes=1
    • 在第二个 cluster 中,最终选择 P n o = 1 P_{no}=1 Pno=1
  • 按照系数加权求和 2 12 ∗ 1 + 10 12 ∗ 1 = 1 \frac{2}{12} * 1 + \frac{10}{12} * 1=1 1221+12101=1 这时候纯度最高。
  • 无论怎么对数据划分,只要每个 cluster 中只有一种标签的样本,那么纯度就是最高的 1 1 1

熵 Entropy

  • 与 purity 不同的是,我们希望聚类算法最后的熵越小越好。
    在这里插入图片描述
  • N N N 个样本, k k k 个簇,第 i i i 个簇的样本数 ∣ C i ∣ |C_i| Ci,每个 cluster 中关于标签 label 的信息熵为 H ( c l a s s ) H(class) H(class)
  • 根据熵的定义 e n t r o p y = ∑ − P l o g 2 P entropy=\sum-Plog_2P entropy=Plog2P,数据越趋向于均匀分布,熵就越大,而数据越趋向于集中,熵就越小。
  • 在当前的情境下,如果一个 cluster 中的标签非常一致,只有一种,那么熵肯定是最小的,而相反,如果一个 cluster 各种标签的样本是均匀的,那么熵就是大的。下面也用上面的例子来演示:

在这里插入图片描述

  • 对于第一个 C 1 C_1 C1 H 1 = − ∑ j = 1 c P 1 ( j ) l o g 2 ( P 1 ( j ) ) = − 1 l o g 2 ( 1 ) − 0 l o g 2 0 = 0 H_1=-\sum_{j=1}^c P_1(j)log_2(P_1(j))=-1log_2(1)-0log_20=0 H1=j=1cP1(j)log2(P1(j))=1log2(1)0log20=0
  • 对于第二个 C 2 C_2 C2, H 2 = − 0.6 l o g 2 ( 0.6 ) − 0.4 l o g 2 0.4 = 0.97 H_2=-0.6log_2(0.6)-0.4log_20.4=0.97 H2=0.6log2(0.6)0.4log20.4=0.97
  • 再根据 entropy 指标的定义加权求和所有 cluster 的 entropy = 2 12 ∗ 0 + 10 12 ∗ 0.97 = 0.81 \frac{2}{12} * 0 + \frac{10}{12} * 0.97=0.81 1220+12100.97=0.81
  • 所以使用 entropy 指标衡量当前的聚类算法的结果是 0.81 0.81 0.81
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值