在”无监督学习” (unsupervised learning) 中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。
聚类(clustering)就是一种研究最多、应用最广的无监督学习。对于大量未知标注的数据集,按照数据的内在相似性将数据集划分为多个类别,将相似的对象归到同一个簇中,使得簇内的数据相似度较大,而簇间的数据相似度较小。即有点像全自动分类,簇内的对象越相似,聚类的效果越好。
(1)Silhouette Coefficient - 轮廓系数
较高的 Silhouette Coefficient 得分与具有更好定义的聚类的模型相关。Silhouette Coefficient 是为每个样本定义的,由两个得分组成:
然后将单个样本的 Silhouette 系数 s 给出为:
实现代码如下:
from sklearn.metrics.cluster import silhouette_score
silhouette_score(X, labels, metric='euclidean')
(2)Calinski-Harabaz
较高的 Calinski-Harabaz 的得分与具有更好定义的聚类的模型相关。类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分数会高。 最大的优势是比轮廓系数快很多。
对于 k 簇,Calinski-Harabaz 得分 s 是作为 between-clusters dispersion mean (簇间色散平均值)与 within-cluster dispersion(群内色散之间)的比值给出的:
N 为数据中的点数,C_q为 cluster (簇) q 中的点集, C_q 为 cluster(簇) 的 q 中心,c 为 E 的中心,n_q为 cluster(簇) 中的 q 点数。
实现代码如下:
from sklearn.metrics.cluster import calinski_harabaz_score
calinski_harabaz_score(X, labels)
(3)Compactness - 紧密性 CP
CP计算每一个类各点到聚类中心的平均距离。CP越低意味着类内聚类距离越近。但没有考虑类间效果。
(4)Separation - 间隔性 SP
SP计算各聚类中心两两之间平均距离。SP越高意味类间聚类距离越远。但没有考虑类内效果。
(5)Davies-Bouldin Index - DBI
DB计算任意两类别的类内距离平均距离(CP)之和除以两聚类中心距离,求最大值。DB越小意味着类内距离越小,同时类间距离越大。但因使用欧式距离,所以对于环状分布,聚类评测很差。
(6)Dunn Validity Index - DVI
DVI计算任意两个簇元素的最短距离(类间)除以任意簇中的最大距离(类内)。DVI越大意味着类间距离越大,同时类内距离越小。但对离散点的聚类测评很高、对环状分布测评效果差。
(1)Homogeneity - 均一性
每个簇只包含一个类的成员。
实现代码如下:
from sklearn.metrics.cluster import homogeneity_score
homogeneity_score(labels_true, labels_pred)
若labels_true = [0, 0, 1, 1],labels_pred = [1, 1, 0, 0];homogeneity_score = 1.0。
(2)Completeness - 完整性
给定类的所有成员都分配给同一个簇。
实现代码如下:
from sklearn.metrics.cluster import completeness_score
completeness_score(labels_true, labels_pred)
若labels_true = [0, 0, 1, 1],labels_pred = [0, 1, 0, 1];completeness_score = 0.0。
(3)V-measure
均一性和完整性的加权平均。
实现代码如下:
from sklearn.metrics.cluster import v_measure_score
v_measure_score(labels_true, labels_pred)
若labels_true = [0, 0, 1, 2],labels_pred = [0, 0, 1, 1];v_measure_score = 0.8。
(4)Rand index - 兰德指数 RI 、Adjusted Rand index - 调整兰德指数 ARI
为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:
实现代码如下:
from sklearn.metrics.cluster import adjusted_rand_score
adjusted_rand_score(labels_true, labels_pred)
若labels_true = [0, 0, 1, 2],labels_pred = [0, 0, 1, 1];v_measure_score = 0.57。
(5)Normalized Mutual Information - 标准互信息NMI、Mutual Information - 互信息MI、Adjusted Mutual Information - 调整互信息MI
利用基于互信息的方法来衡量聚类效果需要实际类别信息,NIM是用熵做分母将MI值调整到0与1之间。NMI与MI取值范围为[0,1],AMI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。
实现代码如下:
from sklearn.metrics.cluster import adjusted_mutual_info_score
adjusted_mutual_info_score(labels_true, labels_pred)
若labels_true = [0, 0, 0, 0],labels_pred = [0, 1, 2, 3];v_measure_score = 0.0。
“距离度量” (distance measure) ,则需满足一些基本性质:
以古希腊数学家欧几里得命名的距离;也就是我们直观的两点之间直线最短的直线距离。
是由十九世纪的赫尔曼·闵可夫斯基所创词汇;是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和;也就是和象棋中的“車”一样横平竖直的走过的距离;曼哈顿距离是超凸度量。
以俄罗斯数学家闵可夫斯基命名的距离;是欧式距离的推广,p=2时等价于欧氏距离,和p-范数等值。
越大越相似;分子是A和B的交集大小,分母是A和B的并集大小。
分子是两个集合的交集大小,分母是两个集合大小的几何平均值。是余弦相似性的一种形式。
即相对熵;是衡量两个分布(P、Q)之间的距离;越小越相似。
===========文档信息============
学习笔记由博主整理编辑,供非商用学习交流用
如本文涉及侵权,请随时留言博主,必妥善处置
版权声明:非商用自由转载-保持署名-注明出处
署名(BY) :dkjkls(dkj卡洛斯)
文章出处:http://blog.csdn.net/dkjkls