【总结】分类、聚类的评估指标

 
 

1. 分类问题评价指标

1-1. 精确率与召回率

精确率(Precision)指的是模型判为正的所有样本中有多少是真正的正样本;召回率(Recall)指的是所有正样本有多少被模型判为正样本,即召回。感觉精确率是个局部的,召回率是个全局的。


精确率与召回率

1-2. ROC

真正类率(true positive rate ,TPR),刻画的是分类器所识别出的 正实例占所有正实例的比例(正样本预测结果数 / 正样本实际数)。负正类率(false positive rate, FPR),计算的是分类器错认为正类的负实例占所有负实例的比例(被预测为正的负样本结果数 /负样本实际数)。

( TPR=0,FPR=0 ) 把每个实例都预测为负类的模型
( TPR=1,FPR=1 ) 把每个实例都预测为正类的模型
( TPR=1,FPR=0 ) 理想模型


ROC曲线

ROC曲线下方的面积(Area Under the ROC Curve, AUC)提供了评价模型平均性能的另一种方法。如果模型是完美的,那么它的AUC = 1,如果模型是个简单的随机猜测模型,那么它的AUC = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大

首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

1-3. 对数损失

对数损失(Log loss)亦被称为逻辑回归损失(Logistic regression loss)


对数损失通用式

二分类对数损失

1-4. 铰链损失

铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。
铰链损失最开始出现在二分类问题中,假设正样本被标记为1,负样本被标记为-1,y是真实值,w是预测值,则铰链损失定义为:


铰链损失

1-5. 混淆矩阵

又被称为错误矩阵,通过它可以直观地观察到算法的效果。它的每一列是样本的预测分类,每一行是样本的真实分类(反过来也可以),顾名思义,它反映了分类结果的混淆程度。混淆矩阵i行j列的原始是原本是类别i却被分为类别j的样本个数,计算完之后还可以对之进行可视化:


混淆矩阵

1-6. kappa系数

kappa系数用来衡量两种标注结果的吻合程度,标注指的是把N个样本标注为C个互斥类别。计算公式为


kappa系数

两种标注结果完全相符时,K=1,越不相符其值越小,甚至是负的

1-7. 海明距离

  • 在信息领域,两个长度相等的字符串的海明距离是在相同位置上不同的字符的个数,也就是将一个字符串替换成另一个字符串需要的替换的次数。

  • 机器学习方面,当预测结果与实际情况完全相符时,距离为0;当预测结果与实际情况完全不符时,距离为1;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况

1-8. Jaccard系数

可将 Jaccard相似系数用在衡量样本的相似度上。


Jaccard相似系数


这里p+q+r可理解为A与B的并集的元素个数,而p是A与B的交集的元素个数。

2. 拟合问题评价指标

2-1. 平均绝对误差

平均绝对误差MAE(Mean Absolute Error)又被称为l1范数损失(l1-norm loss):


平均绝对误差MAE

2-2. 平均平方误差

平均平方误差MSE(Mean Squared Error)又被称为l2范数损失(l2-norm loss):


平均平方误差MSE

2-3. 解释变异

解释变异( Explained variance)是根据误差的方差计算得到的:


解释变异( Explained variance)


当需要比较两组数据离散程度大小的时候,如果两组数据的测量尺度相差太大,或者数据量纲的不同,直接使用标准差来进行比较不合适,此时就应当消除测量尺度和量纲的影响,而变异系数可以做到这一点,他是原始数据标准差与原始数据平均数的比。

事实上,可以认为变异系数和极差、标准差和方差一样,都是反映数据离散程度的绝对值。一般来说,变量值平均水平高,其离散程度的测度值越大,反之越小。

2-4. 决定系数

决定系数(Coefficient of determination)又被称为R2分数:


决定系数(Coefficient of determination)


当R2越接近1时,表示相关的方程式参考价值越高;相反,越接近0时,表示参考价值越低。这是在一元回归分析中的情况。但从本质上说决定系数和回归系数没有关系,就像标准差和标准误差在本质上没有关系一样。

3. 聚类的评价指标

3-1. 兰德指数

兰德指数(Rand index)需要给定实际类别信息C,假设K是聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数,则兰德指数为:


兰德指数(Rand index)


RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。

  • 为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:

ARI(Adjusted rand index)


ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。

3-2. 互信息

  • 互信息(Mutual Information)是用来衡量两个数据分布的吻合程度。也是一有用的信息度量,它是指两个事件集合之间的相关性。
  • 用互信息的方法,在某个类别C中的出现概率高,而在其它类别中的出现概率低的词条T,将获得较高的词条和类别互信息,也就可能被选取为类别C的特征
  • 互信息是term的存在与否能给类别c的正确判断带来的信息量。
  • 词条和类别的互信息体现了词条和类别的相关程度,互信息越大,词条和类别的相关程度也越大。得到词条和类别之间的相关程度后,选取一定比例的,排名靠前的词条作为最能代表此种类别的特征。

互信息(Mutual Information)

3-3. 轮廓系数

轮廓系数(Silhouette coefficient)适用于实际类别信息未知的情况。对于单个样本,设a是与它同类别中其他样本的平均距离,b是与它距离最近不同类别中样本的平均距离,轮廓系数为:


轮廓系数(Silhouette coefficient)


对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。
轮廓系数取值范围是[−1,1],同类别样本越距离相近且不同类别样本距离越远,分数越高

作者:袁一帆 链接:http://www.jianshu.com/p/b5996bf06bd6 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一份基于Python的K-means聚类算法的课程设计方案,供您参考: 一、课程设计目标 本课程设计的主要目标是让学生掌握K-means聚类算法的原理和应用,了解Python编程语言的基本语法和数据处理能力,同时通过实现一个K-means聚类算法的Python程序,提高学生的编程能力和数据分析能力。 二、数据集选择 在本课程设计中,我们选择Iris鸢尾花数据集作为示例数据集。该数据集包含了150个鸢尾花样本,每个样本有4个特征,包括花萼长度、花萼宽度、花瓣长度和花瓣宽度等信息。该数据集可用于分类聚类等数据挖掘任务。 三、数据预处理 在进行K-means聚类算法之前,我们需要对数据进行预处理,以便更好地适应算法的要求。具体预处理步骤如下: 1. 数据清洗 检查数据集中是否有缺失值或异常值,并对其进行处理。在Iris数据集中,不存在缺失值或异常值,因此无需进行数据清洗。 2. 数据变换 对数据进行变换,以便更好地适应算法的要求。在Iris数据集中,由于各个特征的取值范围不同,因此需要进行归一化处理。 四、算法原理介绍 K-means聚类算法是一种常用的聚类算法,其基本思想是将数据集中的样本分为K个类别,使得每个样本都属于距离其最近的类别。K-means聚类算法的主要流程如下: 1. 随机选择K个中心点,每个中心点代表一个类别。 2. 对于每个样本,计算其与K个中心点的距离,并将其归为距离最近的类别。 3. 对于每个类别,重新计算其中心点的坐标。 4. 重复执行步骤2和步骤3,直到聚类结果不再发生变化或者达到最大迭代次数。 K-means聚类算法的优点包括简单易实现、效率高等,但其也存在一些缺点,例如对初始中心点的敏感性、对噪声和异常点的容忍度较低等。 五、算法实现 在本课程设计中,我们使用Python编程语言实现了K-means聚类算法,并使用matplotlib库对聚类结果进行可视化。具体实现步骤如下: 1. 导入数据 首先,我们需要将Iris数据集导入到Python中,并进行归一化处理。 2. 初始化中心点 我们随机选择K个样本作为初始中心点,并将其作为K个类别的代表。 3. 计算距离 对于每个样本,我们计算其与K个中心点的距离,并将其归为距离最近的类别。 4. 更新中心点 对于每个类别,我们重新计算其中心点的坐标。 5. 重复执行 重复执行步骤3和步骤4,直到聚类结果不再发生变化或者达到最大迭代次数。 6. 可视化结果 最后,我们使用matplotlib库对聚类结果进行可视化,以便更好地观察和分析聚类效果。 六、性能评估 为了评估我们实现的K-means聚类算法的性能,我们使用了轮廓系数(Silhouette Coefficient)和Calinski-Harabasz指数两个指标。轮廓系数度量了每个样本聚类的紧密程度,其取值范围为[-1,1],取值越大代表聚类效果越好;Calinski-Harabasz指数度量了类别间的差异性和类别内的相似性,其取值越大代表聚类效果越好。 通过对K值的不同选择,我们可以得到不同的轮廓系数和Calinski-Harabasz指数,以便更好地选择最优的K值。 七、总结 通过本次课程设计,我们了解了K-means聚类算法的原理和应用,掌握了Python编程语言的基本语法和数据处理能力,同时提高了编程能力和数据分析能力。在实现K-means聚类算法的过程中,我们对数据集进行了预处理,并使用Python编程语言实现了算法,最后使用轮廓系数和Calinski-Harabasz指数对算法进行了性能评估

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值