机器学习模型评估指标

1.回归模型评估指标

(1).绝对误差

预测和实际之间误差的绝对值之和。

(2).均方误差

预测和实际之间距离之差平方和的均值

2.分类的评估准则

分类的评估标准很多,不同的评估标准侧重点不一样,我们不可能做到万事俱备,甚至有的指标是相互冲突。我们这里先引入混淆矩阵。

假设我们要做二分类,标签为0和1,预测值当然也是0和1

预测为0 预测为1
真实标签为0 TN FP
真实标签为1 FN TP

我们以预测为标准,来分析结果,如果你对一个数据预测,预测为1,结果他真的是1,那么他就是真正(True Position)类,也就是TP,如果你的写得算法很垃圾,全靠猜,那么很不幸,他就是假正(False Position)类FP,同理,就有真负(True Negative)类TN和假负(Flase Negative)类。

于是就有了如下几个评估

(1).准确率

预测正确所占的比例

accuracy=(TP+TN)/(TP+FP+TN+FN)

(2).精度

预测为正的全部样本中真正类所占的比例。所以又叫做查准率,查询正确的正类的比率,也就是所查询出来的这些信息,有多少是我想要的。

Position=TP/(TP+FP)

(3).召回率

正类中有多少被查询出来?于是就有了下面这个标准。所以又叫查全率。顾名思义的名字。

Recall=TP/(FN+TP)

精度和召回率就是一对对立的标准,一个高另一个就会低。根据实际情况选择一个标准。但是总有人想全都要,于是出现了第三个标准F1分数

(4).F1分数

Position为纵坐标,Recall为横坐标,在评估过程中,修改阈值,这两个值会形成一条曲线,如果一个曲线覆盖另一个,则说明覆盖范围更大的曲线对应的算法更好。这么描述,很多人都不会明白,百度一下吧。总之会有这么一条曲线,在y=x上会有个交点,这个交点就是平衡点F1。

F1=(2*Position*Recall)/(Positive+Recall)

F1分数也有很多变种,其中有一个Fβ,可以修改position和recall之间的比例

(5)ROC曲线

(引入).这个稍微有点复杂,假设我们做一个二分类,结果是根据分类的概率来分类,比如一个数据它被分为1的概率是0.55,那么我们应该怎么算它的类别?如果我们设置一个阈值为0.5,概率大于0.5就被认为是1,反之为0;如果我们设置阈值为0.6,那么他就被分类为0;

(a).如果我们得到一组预测样本,还有对应的预测概率值,那么我们就将概率值从大到小排列。

(b).依次从大到小选择对应的概率值作为阈值,大于等于这个阈值设置为正,反之设置为负。

(c).将设置结果与实际进行比较,然后计算TP和TP,TP为纵坐标,FP为横坐标

一般来讲,曲线面积越大,则表示分类器效果越好

于是就有了AUC,AUC就是ROC曲线的面积,这就没什么好说的,累加求面积。

(6).AUC

3.聚类模型的评估标准

聚类就是把一组数据划分为不相关的子集,也就是样本簇,我们希望统一簇内的样本尽可能相似,而不同簇的样本之间尽可能不同。也就是同一类样本内的差距尽可能小,不同类之间相差尽可能大。实现这个目标主要有外部指标和内部指标。

1.外部指标

外部指标需要提供一个参考模型,然后将聚类结果与该模型进行比较得到一个评判值,常用的评估标准有Jaccard系数,FM指数,Rand指数和标准化互信息。

假设给定数据集为T=\{x_1,x_2,...,x_m\},被某个参考划分为C^*=\{c_1^*,c_2^*,c_3^*,...,c_J^*\},也就是实际被划分为J个簇;如果选择一个算法,被划为C=\{c_1,c_2,c_3,...,c_k\},将它划分为k个簇,假设\gamma^*\gamma分别表示C^*和C的簇向量标记,我们将样本两两配对得到下面的结果

SS:同时属于\gamma_i\gamma^*_j的样本对数量为a

SD:属于\gamma_i但不属于\gamma^*_j的样本对数量b

DS:不属于\gamma_i但属于\gamma^*_j的样本对数量c

DD:不属于\gamma_i\gamma^*_j的样本对数量d

(1).Jaccard系数

JC=a/(a+b+c)

(2).FM指数

FMI=\sqrt{a/(a+b)*a/(a+c)}

(3).Rand指数

RI=\tfrac{2(a+b)}{M(M+1)}

M代表样本总数

(4).标准互信息

这个没什么好说,基本意思时一个随机变量由于另一个变量的随机性下降而减少的随机性

I(x,y)=H(Y)-H(Y/X)

2.内部指标

将一堆数据分为K个簇,希望他们尽可能聚拢在一起。每个簇都有自己如下的数据

(1).avg(ck),簇ck每对样本之间的平均距离

(2).diam(ck),簇ck中距离最远的两个点

(3).d_{min}(ck,cl),簇ck,cl之间最近的点

(4).d_{cen}(ck,cl),簇ck,cl中心点之间的距离

(1)DB指数

每一对簇的平均距离之和,然后除以他们的中心距离,最后取均值

(2).Dunn指数

任意两个簇之间的衡量标准,簇ck,cl之间之间最短距离与簇ck内最远距离对的比值

(3).轮廓系数

这个系数适用于样本类别位置未知的情况。

一个样本的轮廓系数为s=(b-a)/max(a,b)

簇的轮廓系数等于所有样本的均值

4.距离

1.曼哈顿距离

d_{12}=\sum_{i=1}^{n}|x_{1i}-x_{2i}|

2.欧氏距离

这个没什么好说的,就是平面直角坐标系的距离

3.闵可夫斯基距离

欧式距离的推广,平方改为p次方

4.切比雪夫距离

每一对数据数据绝对值中的最大值

max(xi, yi)

5.夹角余弦

衡量两个方向向量之间的角度差异,高中知识

6.汉明距离

两个字符串中不相同位数的数目,比如‘1100’与'1000'的汉明距离为1

7.杰卡徳相似系数

两个类的交集与两个类的并集的比值

8.杰徳卡距离

1减去杰徳卡相似系数

你可能感兴趣的:(机器学习,人工智能)