整理最近学习的算法:kappa值、ROC曲线和AUC值、SVM支持向量机(简单)

1.分类精度的检验

(1)kappa系数检验一致性和分类效果

下面给出公式:

其中,p0是每一类正确分类的样本数量之和除以总样本数,也就是总体分类精度 。

假设每一类的真实样本个数分别为a1,a2,…,aC,而预测出来的每一类的样本个数分别为b1,b2,…,bC
总样本个数为n,则有:

kappa计算结果为-1-1,但通常kappa是落在 0-1 间,可分为五组来表示不同级别的一致性:0.0-0.20极低的一致性(slight)、0.21-0.40一般的一致性(fair)、0.41-0.60 中等的一致性(moderate)、0.61-0.80 高度的一致性(substantial)和0.81~1几乎完全一致(almost perfect)。


这里
p0=(1+5+9)/45=0.333
pe=[(1+4+7)×(1+2+3)+(2+5+8)×(4+5+6)+(3+6+9)×(7+8+9)] / 45^2=0.36

则有

此结果代表分类结果不太好。

(2)ROC曲线和AUC值

ROC曲线:

例如:
下面的表格代表某个二分类事件中分类的情况:

在ROC曲线中,横坐标为TPR,纵坐标为:FPR

TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。TPR=TP/(TP+FN)
FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率。FPR=FP/(FP+TN)

ROC曲线空间如下:

上图中每一个点代表一个分类器。

我们可以通过改变分类器分类的阈值来形成一条连续的曲线,即是ROC曲线。
如上,是三条ROC曲线,在0.23处取一条直线。那么,在同样的FPR=0.23的情况下,红色分类器得到更高的TPR。也就表明,ROC越往上,分类器效果越好。

AUC值:

AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。

AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

(3)accuracy

精度公式比较简单,如下给出计算公式:

公式中TP、TN、P、N含义与上面的相同。

2. SVM分类器以及核函数

SVM即是Support vector machine(支持向量机)在这里可能我记录的有些粗线条,但是理解起来绝对平民,在这里你会觉得这个东西并不像想象中的那么难。

2.1线性分类器

首先,我们知道线性分类器吧,比如g(x)=wx+b就是一个简单的线性分类器。假设其中g(x)>0 的样本为正类,g(x)<0的样本为负类,则wx+b=0即是分类边界。由平面的法向量可知,w即为这个分类超平面的法向量。


知道了线性分类器,接下来还要知道空间中的一个点到超平面的距离公式(高中知识呦)。公式给出如下:

这里不方便理解的话参考一下这个公式(点到平面的距离公式):

有了以上基础,就可以进一步往下看

2.2最大化分类间隔

在上面的二分类中我们可以有很多条分类边界,比如左图和右图。但是我们的目的是为了最大化上图中的margin,逻辑意义上讲就是把两类分的更开一点。

但是如何才能找出这个最大Margin,如何用数学表达式定义margin呢?
上图中两侧直线上的任何点到分类平面的距离为M。
所以最大间隔分类问题变成了两个公式:
(1)满足分类正确的公式
即当y=1的时候,wx+b>=1;
当y=-1的时候,wx+b<=-1;
上面两个不等式等价于下面的公式
=> y(wx+b)-1>=0
(2)最大化间隔公式

2.3 求解w、b的值

为了计算w和b的值,上面的两个公式通过拉格朗日乘子法得到如下公式:
对变量分别求导数:

把上面两公式代入Lp,得到:

这里有条件限制如下:

把L_D这个方程解出来就能得到许多α的值,并且每一个样本都有一个对应的α。大部分的α为0,不为0的α对应的样本就是支持向量。然后求得w和b,就把公式求出来了。注:这里的求解过程是个对偶问题,这里不细讲。

2.4核函数的讲解

先看下图:
对于左图线性不可分的情况,可以把自变量映射成其他变量。这里左图可以映射到右图中,只需要把x1,x2映射成x12和x22就可以。可以明显的看到两类样本在右图中变成线性可分了。
但是对于每一个问题不必像上图中单独设计一个映射,因为很多时候数据很复杂,凭借先验知识根本无从下手,所以便有了核函数。

核函数一般有几种固定的映射方法,比如下式:


其中向量维数为:

上式将一个m维向量映射到约等于m2/2维向量。

接下来分析两个映射后向量之间的内积

上式可以简化为下式:

根据上式可以看到,

上式中左项是在原本的m维样本空间做的运算,右项是在m2/2维空间做的运算。即低维空间的内积操作等价于高维空间做出的内积操作,运算量将大大减少。这样既能利用高维空间的数据可分性,又避免了高维空间数据计算的复杂性。

那么接下来如何计算w和b的值呢?其实在整个计算过程中,我们只要把原来公式中的x替换为Φ(x)即可。如下所示:

从公式中可以看出,我们不直接计算w,因为Φ(x)是未知的。而是计算w·Φ(x)的值。这样就可以转化为计算核函数K值,从而算出g(x)整个公式。

常用的核函数有:

好了好了,这篇文章到这里结束了,看客们喝口茶该退场了。
以上的算法都是前段时间学习的,但是最近编辑文章的时候不免又有很多不了解的地方。所以干脆自己写一遍,加深记忆免得忘记,毕竟强迫症的我真的想深入理解它们。同时也希望这篇文章能帮助你们理解SVM原理,好了,下次继续编辑机器学习的部分吧。

文章参考b站清华大学SVM视频讲解,个人觉得很清晰易懂

整理最近学习的算法:SVM支持向量机(简单)、kappa值、ROC曲线和AUC值相关推荐

  1. 深度学习基础----ROC曲线和AUC值

    这个链接里的视频就很好:[小萌五分钟]机器学习 | 模型评估: ROC曲线与AUC值_哔哩哔哩_bilibili

  2. 【深度学习-机器学习】分类度量指标 : 正确率、召回率、灵敏度、特异度,ROC曲线、AUC等

    来源于博文:https://blog.csdn.net/tanzuozhev/article/details/79109311 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指 ...

  3. 机器学习算法 03 —— 逻辑回归算法(精确率和召回率、ROC曲线和AUC指标、过采样和欠采样)

    文章目录 系列文章 逻辑回归 1 逻辑回归介绍 1.1 逻辑回归原理 输入 激活函数 1.2 损失以及优化 2 逻辑回归API介绍 3 案例:肿瘤良性恶性预测 4 分类模型的评估 4.1 分类评估方法 ...

  4. ROC曲线的AUC(以及其他评价指标的简介)知识整理

    相关评价指标在这片文章里有很好介绍 信息检索(IR)的评价指标介绍 - 准确率.召回率.F1.mAP.ROC.AUC:http://blog.csdn.net/marising/article/det ...

  5. 【20210914】【机器/深度学习】模型评价指标:精确率、召回率、特异性、敏感性、F1-score、ROC曲线、AUC

    一.区分精确率.召回率和特异性.敏感性 在数据科学中,查看精确率和召回率来评估构建的模型是十分常见的.而在医学领域,通常使用特异性和敏感性来评估医学测试.这一点在兆观的论文.以及 xxx院的沟通过程中 ...

  6. 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)

    文章目录 系列文章 支持向量机SVM算法 1 SVM算法简介 1.1 引入 1.2 算法定义 2 SVM算法原理 2.1 线性可分支持向量机 2.2 SVM计算过程与算法步骤(有点难,我也没理解透,建 ...

  7. 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

    目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...

  8. (8) 支持向量机(下)(模型评估指标、ROC曲线)

    文章目录 1 二分类SVC的进阶 1.1 参数C的理解进阶 1.2 二分类SVC中的样本不均衡问题:重要参数class_weight 2 SVC的模型评估指标 2.1 混淆矩阵 2.1.1 模型整体效 ...

  9. python:Sklearn SVM使用留一法时如何绘制ROC曲线与计算AUC

    在前面的一篇文章我们给出了使用Sklearn 中的SVM进行分类时如何使用留一法来进行分类. python基于sklearn的SVM和留一法(LOOCV)进行二分类 如何在使用留一法时绘制ROC曲线和 ...

最新文章

  1. 简述Python中的break和continue的区别
  2. Transformer: Training and fine-tuning(六)
  3. 程序员晒工资单,还是大厂香!据说大多数3年,35K还少了?
  4. 通过输入流获取的xml格式字符串转为json和map格式
  5. 腾讯安全Blade团队亮相CanSecWest峰会
  6. JVM调优之jstack找出最耗cpu的线程并定位代码
  7. MIT研究生解说数学体系
  8. oracle emctl start
  9. Lex和Yacc实现句子识别
  10. 网易云音乐encseckey算法php,[PHP]网易云音乐params计算及直链提取
  11. 机器学习实战之KNN实现mnist手写数字分类
  12. 固件中的单个二进制模拟:Tenda AC15 路由器 CVE-2018-5767 / CVE-2020-10987 漏洞分析与复现
  13. 推荐一个在线的icon图片合成工具(CSS Sprite)
  14. CUBA:如何准备上线
  15. css 文本超出显示省略号不起作用
  16. 直播人数的统计(一)
  17. 哈哈,手把手教你撸一个在线网盘(附源码)!
  18. 2019年胡润百富榜发布,比特大陆创始人詹克团成「中国区块链首富」!
  19. 优秀的LOGO设计都有哪些共同点,是需要我们借鉴的?
  20. Oracle查询前1个小时到后一个小时之间的数据

热门文章

  1. 厦门大学计算机技术专业学位是双证还是单证,报考厦门大学在职研究生选择单证还是双证呢...
  2. 诺基亚N97 mini - 不要被名字去
  3. java8——Optinal类
  4. 国企招聘:省通用航空产业发展有限公司(省属国企)招聘2023届管培生
  5. 5分钟将Node应用部署到SAP云平台Cloud Foundry
  6. SDUT-D-表达式语法分析——递归子程序法-附带解释函数
  7. 笔记本键盘字母变数字/字母数字如何切换
  8. Hive 3.1.2 Parquet 格式表的 rawDataSize 统计信息不正确
  9. Linux 硬盘分区、分区命名和分区格式化
  10. 如何在Mac电脑上创建一个签名身份(Signing Identity)