轮廓系数(一个异型簇的分类标准)

定义

轮廓系数是"簇内紧密性" 和 "簇间分离度" 量化聚类效果,取值范围为 [-1, 1],越接近 1 表示聚类质量越好。

簇内紧密性:指的该样本到同簇内距离的平均值

簇间分离度:指的是最小化(该样本到每个异簇的距离的平均值)

公式

弹性网络损失函数

ElasticNet融合L1和L2惩罚,损失函数为:

样本 i 的轮廓系数 } s 公式为

s= \\begin{cases} 1 - \\dfrac{a_i}{b_i}, \& \\text{若 } a_i \< b_i \\ (\\text{簇内紧、簇间远,聚类好}) \\\\ 0, \& \\text{若 } a_i = b_i \\ (\\text{簇内与簇间距离相当,聚类一般}) \\\\ \\dfrac{a_i}{b_i} - 1, \& \\text{若 } a_i \> b_i \\ (\\text{簇内松、簇间近,聚类差}) \\end{cases}

个人理解核心目标是最小化紧密型 最大化分离度

根据这个目标推算公式

全局轮廓系数就是所有轮廓系数的平均值

复制代码
from sklearn.metrics import silhouette_samples,silhouette_score
    score = silhouette_score(X, cluster_labels)  # 计算全局轮廓系数


  # 4.3 计算所有样本的轮廓系数(包括新样本)
    sample_silhouettes = silhouette_samples(X_combined, labels_combined)
    # 4.4 提取新样本的轮廓系数(最后一个元素)
    new_sample_score = sample_silhouettes[-1]

总结

首先轮廓系数是可以作为聚类算法的评估指标,同样也可用二分法在大数据上进行优化

相关推荐
isyoungboy3 小时前
PIL与OpenCV双线性插值实现差异导致模型精度不够踩坑
人工智能·opencv·计算机视觉
云青黛3 小时前
肘部法找k
人工智能·算法·机器学习·聚类
IT_陈寒3 小时前
Java性能调优:从GC日志分析到实战优化的5个关键技巧,让你的应用快如闪电!
前端·人工智能·后端
Hs_QY_FX3 小时前
Python 分类模型评估:从理论到实战(以信用卡欺诈检测为例)
人工智能·python·机器学习·数据挖掘·多分类评估
Gitpchy3 小时前
Day 18 推断聚类后簇的类型
python·机器学习·聚类
Aspect of twilight3 小时前
3D Gaussian Splatting论文简要解读与可视化复现(基于gsplat)
人工智能·深度学习·gsplat
CHANG_THE_WORLD3 小时前
if条件语句 三目运算符 汇编分析
汇编·算法·条件语句·if 语句·汇编分析·条件语句汇编分析
tumu_C3 小时前
无用知识研究:在trailing return type利用decltype,comma operator在对函数进行sfinae原创 [二]
开发语言·c++·算法
web安全工具库3 小时前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化