Python实现KMeans算法

1.外部指标

将聚类结果与某个“参考模型进行比较”

每次抽出两个样本,讨论所属聚类结果和参考模型,确定四个值:

  • a:聚类结果同属于一类,参考模型同属于一类
  • b:聚类结果同属于一类,参考模型同属于一类
  • c:聚类结果同属于一类,参考模型属于同一类
  • d:聚类结果同属于一类,参考模型同属于一类

1.1Jaccard系数(JC)

JC=aa+b+cJC=\frac{a}{a+b+c} JC=a+b+ca​

1.2FM指数(FMI)

FMI=aa+b∗aa+cFMI=\sqrt{\frac{a}{a+b}*\frac{a}{a+c}} FMI=a+ba​∗a+ca​​

1.3Rand指数(RI)

RI=2(a+d)m(m−1)RI=\frac{2(a+d)}{m(m-1)} RI=m(m−1)2(a+d)​
上述性能度量的结果值均在[0,1]区间,值越大越好。

2.内部指标

直接考察聚类结果而不利用任何参考模型

将聚类结果的簇划分为C={C1,C2,...,Ck}C=\{C_1,C_2,...,C_k\}C={C1​,C2​,...,Ck​},也就是总共划分为k个簇
avg(C)=2∣C∣(∣C∣−1)∑1≤i<j≤∣C∣dist(xi,xj)avg(C)=\frac{2}{|C|(|C|-1)}\sum_{1\leq i<j\leq|C|} dist(x_i,x_j) avg(C)=∣C∣(∣C∣−1)2​1≤i<j≤∣C∣∑​dist(xi​,xj​)

  • avg(C)avg(C)avg(C):对应于簇C内样本间的平均距离
    diam(C)=max1≤i<j≤∣C∣dist(xi,xj)diam(C)=max_{1\leq i<j\leq|C|}dist(x_i,x_j) diam(C)=max1≤i<j≤∣C∣​dist(xi​,xj​)
  • diam(C)diam(C)diam(C):对应于簇C内样本间的最远距离
    dmin(Ci,Cj)=minxi∈Ci,xj∈Cjdist(xi,xj)d_{min}(C_i,C_j)=min_{x_i\in C_i,x_j\in C_j}dist(x_i,x_j) dmin​(Ci​,Cj​)=minxi​∈Ci​,xj​∈Cj​​dist(xi​,xj​)
  • dmin(Ci,Cj)d_{min}(C_i,C_j)dmin​(Ci​,Cj​):对应于簇CiC_iCi​与簇CjC_jCj​最近样本间的距离
    dcen(Ci,Cj)=dist(ui,uj)d_{cen}(C_i,C_j)=dist(u_i,u_j) dcen​(Ci​,Cj​)=dist(ui​,uj​)
  • dcen(Ci,Cj)d_{cen}(C_i,C_j)dcen​(Ci​,Cj​):对应于簇CiC_iCi​与簇CjC_jCj​中心点间的距离

2.1DB指数(DBI)

DBI=1k∑i=1kmaxj≠i(avg(Ci)+avg(Cj)dcen(Ci,Cj))DBI=\frac{1}{k}\sum_{i=1}^{k}max_{j\ne i}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)}) DBI=k1​i=1∑k​maxj​=i​(dcen​(Ci​,Cj​)avg(Ci​)+avg(Cj​)​)

2.2Dunn指数(DI)

DI=min1≤i≤k{minj≠i(dmin(Ci,Cj)max1≤l≤kdiam(Cl)))}DI=min_{1\leq i\leq k}\{min_{j\ne i}(\frac{d_{min}(C_i,C_j)}{max_{1\le l\le k}diam(C_l))})\} DI=min1≤i≤k​{minj​=i​(max1≤l≤k​diam(Cl​))dmin​(Ci​,Cj​)​)}
DBI的值越小越好,DI值越大越好.

3距离计算

dist(,)若它是一个“距离度量”,则需要满足一些基本性质:

  • 非负性:dist(xi,xj)≥0dist(x_i,x_j)\geq0dist(xi​,xj​)≥0
  • 同一性:dist(xi,xj)=0dist(x_i,x_j)=0dist(xi​,xj​)=0当且仅当xi=xjx_i=x_jxi​=xj​
  • 对称性:dist(xi,xj)=dist(xj,xi)dist(x_i,x_j)=dist(x_j,x_i)dist(xi​,xj​)=dist(xj​,xi​)
  • 直递性:dist(xi,xj)≤dist(xi,xk)+dist(xk,xj)dist(x_i,x_j)\le dist(x_i,x_k)+dist(x_k,x_j)dist(xi​,xj​)≤dist(xi​,xk​)+dist(xk​,xj​)

给定样本xi=(xi1;xi2;...;xin)x_i=(x_{i1};x_{i2};...;x_{in})xi​=(xi1​;xi2​;...;xin​)与xj=(xj1;xj2;...;xjn)x_j=(x_{j1};x_{j2};...;x_{jn})xj​=(xj1​;xj2​;...;xjn​),最常用的是"闵可夫斯基距离"(Minkokski distance)
distmk(xi,xj)=(∑u=1n∣xiu−xju∣)1pdist_{mk}(x_i,x_j)=(\sum_{u=1}^n|x_{iu}-x_{ju}|)^{\frac{1}{p}} distmk​(xi​,xj​)=(u=1∑n​∣xiu​−xju​∣)p1​
p≥1p\geq 1p≥1时,满足上述的距离基本性质

当p=2p=2p=2时,闵可夫斯基距离就是我们熟知的欧式距离(Euclidean distance)
disted(xi,xj)=∣∣xi−xj∣∣2=∑u=1n∣xiu−xju∣2dist_{ed}(x_i,x_j)=||x_i-x_j||_2=\sqrt{\sum_{u=1}^n|x_{iu}-x_{ju}|^2} disted​(xi​,xj​)=∣∣xi​−xj​∣∣2​=u=1∑n​∣xiu​−xju​∣2​
当p=1p=1p=1时,闵可夫斯基距离为曼哈顿距离(Manhattan distance)
distman(xi,xj)=∣∣xi−xj∣∣1=∑u=1n∣xiu−xju∣dist_{man}(x_i,x_j)=||x_i-x_j||_1=\sum_{u=1}^n|x_{iu}-x_{ju}| distman​(xi​,xj​)=∣∣xi​−xj​∣∣1​=u=1∑n​∣xiu​−xju​∣

聚类性能度量指标及距离计算相关推荐

  1. 机器学习之性能度量指标

    机器学习的模型性能度量指标 在机器学习中,衡量,评估和选择一个模型好坏是通过一些常见指标实现的,称之为性能指标(Metrics). 对于一个二分类问题,我们首先给出如下基本指标基于这些指标可以推导出其 ...

  2. 【AI面试题】分类问题常用的性能度量指标(评价指标)

    分类问题常用的性能度量指标有精确率.召回率.F1.TPR.FPR. 分类问题度量指标的基础是混淆矩阵: 上表中: TP表示正样本被预测为正样本(真正例,True Positive) FN表示正样本被预 ...

  3. 分类性能度量指标:准确性(AC)、敏感性(SE)、特异性(SP)、F1评分、ROC曲线、PR(Precision-Recall)曲线、AUC曲线,混淆曲线

    一:比较容易理解的比喻 以糖尿病人的筛查为例.第一个钟形代表正常人,第二个钟形代表糖尿病人.理想中,如果正常人和糖尿病人的血糖范围完全没有重合就好了.这样我就把标准定在中间那个最低点.低于此点的,就是 ...

  4. 分类器性能度量指标之ROC曲线、AUC值

    目录 概述 混淆矩阵(Confusion matrix) ROC曲线 AUC(Area under the ROC curve) AUC能拿来干什么 总结 参考资料: 概述 二分类问题在机器学习中是一 ...

  5. 机器学习之性能度量指标——决定系数R^2、PR曲线、ROC曲线、AUC值、以及准确率、查全率、召回率、f1_score

    一.线性回归的决定系数(也称为判定系数,拟合优度) 相关系数是R哈~~~就是决定系数的开方! 正如题所说决定系数是来衡量回归的好坏,换句话说就是回归拟合的曲线它的拟合优度!也就是得分啦~~ 决定系数它 ...

  6. 机器学习知识点(三十六)分类器性能度量指标f1-score

    在用python机器学习库scikit-learn训练模型时,常用f1-score来度量模型性能,下面回顾和学习下这个指标. 内容概要¶ 模型评估的目的及一般评估流程 分类准确率的用处及其限制 混淆矩 ...

  7. 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

    北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分 ...

  8. 分类性能度量指标:ROC曲线、AUC值、正确率、召回率、敏感度、特异度

    在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分的样例比例.实际上,这样的度量错误掩盖了样例如何被分错的事实.在机器学习中,有一个普遍适用的称为混淆矩阵 ...

  9. 【AI面试题】回归问题常用的性能度量指标(评价指标)

    1. 均方误差(MSE) MSE(Mean Square Error):是反映估计值与被估计值之间差异程度的一种度量.公式如下: 2. 均方根误差(RMSE) RMSE(Root Mean Squar ...

最新文章

  1. 解密京东618大促数据库运维的攻守之道
  2. Python接口自动化测试框架(基础篇)-- 流程控制之循环语句forwhile
  3. nodejs文件服务器断点续传,基于Nodejs的大文件上传之断点续传
  4. linux 套接字选项定义
  5. 事件模型、事件流(冒泡与捕获)、事件代理
  6. 禁止复制粘贴_网页禁止复制粘贴? 教你5招, 绕过网页限制, 免费复制全网内容!...
  7. HTML+CSS+JS实现 ❤️照相机快门图片动画特效❤️
  8. 946. 验证栈序列
  9. NXOpen.BlockStyler的一些用法
  10. 整合Spring与Hibernate
  11. 5nm及3nm推动 台积电2024及2025年产能将主要集中在台南科学园
  12. L1-076 降价提醒机器人 (10 分)-PAT 团体程序设计天梯赛 GPLT
  13. 范德蒙(Vander Monde)行列式的计算与应用
  14. 【Windows】 rundll32.exe 在 Windows10 上的应用
  15. JSP七动作---<jsp:setProperty>
  16. 教你在“狼人杀”中实现变声效果
  17. MATLAB 剔除异常点
  18. 程序员的第三次 “创业” 我选择继续开发在线客服系统,终于得到了积极反馈
  19. 珠海到各大机场的线路
  20. html5学生大作业,帮同学做的大一大作业:《我的家乡—郑州》 - 梦涵的帅爸爸...

热门文章

  1. hdu 1856 并查集 求最大的子树含有元素的个数
  2. 【DP】LeetCode 85. Maximal Rectangle
  3. 李航《统计学习方法》第三章课后答案链接
  4. 使用Eclipse编写Processing小程序
  5. matlab常用函数通俗解释(fft2和fftshift函数设置问题等)
  6. 一个back propagation的例子
  7. body-parser 是一个Http请求体解析中间件
  8. JavaScript中一些常用的方法整理
  9. WPF DataGrid 获取选中的当前行某列值
  10. web.xml文件中的web-app元素 部署