聚类质量评估指标

简介:

Adjusted Rand index 调整兰德系数

image

>>> from sklearn import metrics
>>> labels_true = [0, 0, 0, 1, 1, 1]
>>> labels_pred = [0, 0, 1, 1, 2, 2]

>>> metrics.adjusted_rand_score(labels_true, labels_pred)  
0.24

Mutual Information based scores 互信息

image

Two different normalized versions of this measure are available, Normalized Mutual Information(NMI) and Adjusted Mutual Information(AMI). NMI is often used in the literature while AMI was proposed more recently and is normalized against chance:

from sklearn import metrics
 labels_true = [0, 0, 0, 1, 1, 1]
labels_pred = [0, 0, 1, 1, 2, 2]

 metrics.adjusted_mutual_info_score(labels_true, labels_pred)  
0.22504

.

Homogeneity, completeness and V-measure

同质性homogeneity:每个群集只包含单个类的成员。
完整性completeness:给定类的所有成员都分配给同一个群集。

>>> from sklearn import metrics
>>> labels_true = [0, 0, 0, 1, 1, 1]
>>> labels_pred = [0, 0, 1, 1, 2, 2]

>>> metrics.homogeneity_score(labels_true, labels_pred)  
0.66...

>>> metrics.completeness_score(labels_true, labels_pred) 
0.42...

两者的调和平均V-measure:

>>> metrics.v_measure_score(labels_true, labels_pred)    
0.51...

.

Fowlkes-Mallows scores

The Fowlkes-Mallows score FMI is defined as the geometric mean of the pairwise precision and recall:
image

>>> from sklearn import metrics
>>> labels_true = [0, 0, 0, 1, 1, 1]
>>> labels_pred = [0, 0, 1, 1, 2, 2]
>>>
>>> metrics.fowlkes_mallows_score(labels_true, labels_pred)  
0.47140...

.

Silhouette Coefficient 轮廓系数

image

>>> import numpy as np
>>> from sklearn.cluster import KMeans
>>> kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)
>>> labels = kmeans_model.labels_
>>> metrics.silhouette_score(X, labels, metric='euclidean')
...                                                      
0.55...

.

Calinski-Harabaz Index

这个计算简单直接,得到的Calinski-Harabasz分数值ss越大则聚类效果越好。Calinski-Harabasz分数值ss的数学计算公式是(理论介绍来源于:用scikit-learn学习K-Means聚类):

image

 也就是说,类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分数会高。
 在scikit-learn中, Calinski-Harabasz Index对应的方法是metrics.calinski_harabaz_score.
在真实的分群label不知道的情况下,可以作为评估模型的一个指标。
同时,数值越小可以理解为:组间协方差很小,组与组之间界限不明显。
与轮廓系数的对比,笔者觉得最大的优势:快!相差几百倍!毫秒级

>>> import numpy as np
>>> from sklearn.cluster import KMeans
>>> kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)
>>> labels = kmeans_model.labels_
>>> metrics.calinski_harabaz_score(X, labels)  
560.39...

致敬原创:http://blog.csdn.net/sinat_26917383/article/details/70577710

目录
相关文章
|
4月前
|
数据采集 运维 监控
|
4月前
|
敏捷开发 安全 算法
软件质量度量维度
软件质量度量维度
142 1
|
4月前
|
敏捷开发 监控 安全
你的项目质量度量指标有哪些?
你的项目质量度量指标有哪些?
347 0
|
测试技术 Docker 容器
自动化质量评估维度
上篇文章讲了下关于终端自动化的一个探索《终端自动化测试探索之路》,今天来聊聊关于自动化质量评估的维度,包括UI和接口。
725 0
|
1月前
评估与预测
【8月更文挑战第21天】评估与预测。
27 1
|
4月前
|
敏捷开发 数据可视化 安全
测试度量指标
测试度量指标
|
4月前
|
监控 小程序 数据挖掘
九大数据分析方法-单指标分析方法与多指标分析方法
九大数据分析方法-单指标分析方法与多指标分析方法
聊聊自动化测试的度量指标
在聊自动化测试度量指标前,有必要回到做自动化的初衷上,就是为什么要做自动化测试,要解决什么问题。
|
机器学习/深度学习 算法
评估系统或算法质量的重要指标
准确性(Accuracy):衡量系统或算法输出结果与真实结果之间的接近程度。通常使用分类准确率、回归误差等指标来评估。 精确率(Precision)和召回率(Recall):主要用于评估分类模型的性能。精确率衡量预测为正例的样本中实际为正例的比例,召回率衡量实际为正例的样本中被正确预测为正例的比例。
263 4
|
Web App开发 运维 监控
量化日常工作指标
量化日常工作指标