样本轮廓系数(原理、sklearn.metrics.silhouette_score、silhouette_samples参数介绍)
https://blog.csdn.net/maple05/article/details/110454075?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170902662116800226570765%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170902662116800226570765&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-110454075-null-null.142^v99^pc_search_result_base1&utm_term=Silhouette%20Coefficient&spm=1018.2226.3001.4187
一、轮廓系数含义:
轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式。
最佳值为1,最差值为-1。接近0的值表示重叠的群集。负值通常表示样本已分配给错误的聚类,因为不同的聚类更为相似
二、计算步骤:
1)对于簇中的每个向量,分别计算它们的轮廓系数。
对于其中的一个点 i 来说:
计算 簇内不相似度a(i) :i向量到同簇内其他点不相似程度的平均值,体现凝聚度
计算 簇间不相似度b(i) :i向量到其他簇的平均不相似程度的最小值,体现分离度
那么第i个对象的轮廓系数就为:
S(i)=b(i)−a(i)max{a(i),b(i)}
�
(
�
)
=
�
(
�
)
−
�
(
�
)
�
�
�
{
�
(
�
)
,
�
(
�
)
}
所有样本的s i 的均值称为聚类结果的轮廓系数,定义为S,是该聚类是否合理、有效的度量。聚类结果的轮廓系数的取值在【-1,1】之间,值越大,说明同类样本相距约近,不同样本相距越远,则聚类效果越好。
三、sklearn.metrics.silhouette_score 介绍及参数含义
详细参考scikit-learn官网
此函数返回所有样本的平均轮廓系数。要获取每个样本的值,请使用silhouette_samples
sklearn.metrics.silhouette_score(X, labels, metric='euclidean', sample_size=None, random_state=None)
参数
X:数组[n_samples_a,n_samples_a](如果metric ==“ precomputed”),否则为[n_samples_a,n_features] 样本之间的成对距离数组或特征数组。
labels:数组,形状= [n_samples] 每个样品的预测标签。
metric : 计算要素阵列中实例之间的距离时使用的度量。默认是euclidean(欧氏距离)。
如果metric是字符串,则必须是允许的选项之一metrics.pairwise.pairwise_distances。如果X是距离数组本身,请使用metric="precomputed"。
return 样本平均轮廓系数
可参考实例:Demo of DBSCAN clustering algorithm
四、silhouette_samples参数介绍
此函数返回所有样本的轮廓系数。
sklearn.metrics.silhouette_samples(X, labels, etric='euclidean')
参数 X:数组[n_samples_a,n_samples_a](如果metric ==“ precomputed”),否则为[n_samples_a,n_features] 样本之间的成对距离数组或特征数组。
labels:数组,形状= [n_samples] 每个样品的预测标签。
metric : 计算要素阵列中实例之间的距离时使用的度量。默认是euclidean(欧氏距离)。
如果metric是字符串,则必须是允许的选项之一metrics.pairwise.pairwise_distances。如果X是距离数组本身,请使用metric="precomputed"。
return 每个样本的轮廓系数
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/maple05/article/details/110454075