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

定义

轮廓系数是"簇内紧密性" 和 "簇间分离度" 量化聚类效果,取值范围为 [-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]

总结

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

相关推荐
im_AMBER13 分钟前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
kyle~23 分钟前
算法数学---差分数组(Difference Array)
java·开发语言·算法
apocalypsx28 分钟前
深度学习-深度卷积神经网络AlexNet
人工智能·深度学习·cnn
leafff12344 分钟前
一文了解LLM应用架构:从Prompt到Multi-Agent
人工智能·架构·prompt
橘颂TA1 小时前
机器人+工业领域=?
算法·机器人
无风听海1 小时前
神经网络之特征值与特征向量
人工智能·深度学习·神经网络
艾莉丝努力练剑1 小时前
【C++:红黑树】深入理解红黑树的平衡之道:从原理、变色、旋转到完整实现代码
大数据·开发语言·c++·人工智能·红黑树
九章云极AladdinEdu1 小时前
论文分享 | BARD-GS:基于高斯泼溅的模糊感知动态场景重建
人工智能·新视角合成·动态场景重建·运动模糊处理·3d高斯泼溅·模糊感知建模·真实世界数据集
希露菲叶特格雷拉特2 小时前
PyTorch深度学习笔记(二十)(模型验证测试)
人工智能·pytorch·笔记
NewsMash2 小时前
PyTorch之父发离职长文,告别Meta
人工智能·pytorch·python