算法的评估指标

简介: 分类:精度(accuracy)、召回率、精确率、F值、ROC-AUC 、混淆矩阵、PRC回归:RMSE(平方根误差)、MSE(平均平方误差)、MAE(平均绝对误差)、SSE(和方差, 误差平方和)、R-square(确定系数)聚类:兰德指数、互信息、轮廓系数

分类:


精度(accuracy)、召回率、精确率、F值、ROC-AUC 、混淆矩阵、PRC


回归:


   RMSE(平方根误差)、MSE(平均平方误差)、MAE(平均绝对误差)、SSE(和方差, 误差平方和)、R-square(确定系数)


聚类:


   兰德指数、互信息、轮廓系数


分类算法的评估方法


●精度

被正确分类的样本占总样本的比

Accuracy = (预测正确的样本数)/(总样本数)=(TP+TN)/(TP+TN+FP+FN)


●召回率

比如病人调查 需要找到所有的病人 这时候就需要用到召回率

Recall = (预测为1且正确预测的样本数)/(所有真实情况为1的样本数) = TP/(TP+FN)


●精确率

Precision = (预测为1且正确预测的样本数)/(所有预测为1的样本数) = TP/(TP+FP)


●F值

但由于Precision/Recall是两个值,无法根据两个值来对比模型的好坏。有没有一个值能综 合Precision/Recall呢?有,它就是F1

F1 = 2*(Precision*Recall)/(Precision+Recall)


●ROC-AUC

ROC曲线:Receiver Operating Characteristic Curve

AUC:Area Under Curve

通常二分类分类用这种方式来衡量

纵轴:真阳性率(True positive rate、敏感性)-收益

横轴:假阳性率(False positive rate、误诊率=1-特异性)-代价

(1)真阳性率(True positive rate、敏感度sensitivity、Recall):TPR=TP/(TP+FN),即分类器预测的正确的正实例占所有正实例的比值。

(2)真阴性率(True negative rate、特异度specificity):TNR=TN/(FP+TN),即分类器预测的正确的负实例占所有负实例的比值。

(3)假阳性率(False positive rate、误诊率):FPR=FP/(FP+TN),即分类器错误预测为正实例的负实例占所有负实例的比值。

(4)假阴性率(False negative rate、漏诊率):FNR=FN/(TP+FN),即分类器错误预测为负实例的正实例占所有正实例的比值。


20190329140235837.png


●混淆矩阵


20190329140408798.png


from sklearn .metrics import confusion_matrix
con_mat = confusion_matrix(y_true = y_test, y_pred = y_pred)
print(con_mat)
[[13 1]
[1 23]]


●PRC

precision recall curve

和ROC一样,先看平滑不平滑(蓝线明显好些),在看谁上谁下(同一测试集上),一般来说,上面的比下面的好(绿线比红线好)。F1(计算公式略)当P和R接近就也越大



20190329141214330.jpg


回归算法的评估方法


●RMSE(平方根误差)


20190329141808171.png



●MSE(平均平方误差)

这的observed 便是 h(x)


20190329142313891.png



●MAE(平均绝对误差)

fi表示预测值,yi表示真实值



20190329142521979.png


●SSE(和方差, 误差平方和)



20190329143111567.png



●R-square(确定系数)


20190329143756860.png


聚类的评估方法

●兰德指数

需要true_label


●互信息

我们定义互信息的公式为:


20190329144324288.png


可以看出,如果X与Y独立,则P(X,Y)=P(X)P(Y),I(X,Y)就为0,即代表X与Y不相关


轮廓系数

a(i) :i向量到同一簇内其他点不相似程度的平均值

b(i) :i向量到其他簇的平均不相似程度的最小值


20190329144537414.png



目录
相关文章
|
4月前
|
数据采集 算法 数据可视化
基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好
本文介绍了基于Python实现的k-means聚类分析算法,并通过微博考研话题的数据清洗、聚类数量评估、聚类分析实现与结果可视化等步骤,展示了该算法在文本聚类领域的应用效果。
147 1
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
77 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
70 4
|
5月前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
【7月更文挑战第23天】在Python编程中,掌握算法复杂度—时间与空间消耗,是提升程序效能的关键。算法如冒泡排序($O(n^2)$时间/$O(1)$空间),或使用Python内置函数找最大值($O(n)$时间),需精确诊断与优化。数据结构如哈希表可将查找从$O(n)$降至$O(1)$。运用`timeit`模块评估性能,深入理解数据结构和算法,使Python代码更高效。持续实践与学习,精通复杂度管理。
67 9
|
4月前
|
机器学习/深度学习 算法 搜索推荐
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
|
5月前
|
机器学习/深度学习 数据采集 算法
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
|
6月前
|
机器学习/深度学习 算法
GBDT算法超参数评估(一)
GBDT(Gradient Boosting Decision Tree)是一种强大的机器学习技术,用于分类和回归任务。超参数调整对于发挥GBDT性能至关重要。其中,`n_estimators`是一个关键参数,它决定了模型中弱学习器(通常是决策树)的数量。增加`n_estimators`可以提高模型的复杂度,提升预测精度,但也可能导致过拟合,并增加训练时间和资源需求。
|
6月前
|
机器学习/深度学习 算法
GBDT算法超参数评估(二)
GBDT算法超参数评估关注决策树的不纯度指标,如基尼系数和信息熵,两者衡量数据纯度,影响树的生长。默认使用基尼系数,计算快速,而信息熵更敏感但计算慢。GBDT的弱评估器默认最大深度为3,限制了过拟合,不同于随机森林。由于Boosting的内在机制,过拟合控制更多依赖数据和参数如`max_features`。相比Bagging,Boosting通常不易过拟合。评估模型常用`cross_validate`和`KFold`交叉验证。
|
6月前
|
搜索推荐 算法 UED
基于Python的推荐系统算法实现与评估
本文介绍了推荐系统的基本概念和主流算法,包括基于内容的推荐、协同过滤以及混合推荐。通过Python代码示例展示了如何实现基于内容的推荐和简化版用户-用户协同过滤,并讨论了推荐系统性能评估指标,如预测精度和覆盖率。文章强调推荐系统设计的迭代优化过程,指出实际应用中需考虑数据稀疏性、冷启动等问题。【6月更文挑战第11天】
1083 3
|
6月前
|
算法 物联网 调度
操作系统调度算法的演进与性能评估
本文深入探讨了操作系统中进程调度算法的发展轨迹,从早期的先来先服务(FCFS)到现代的多级队列和反馈控制理论。通过引用实验数据、模拟结果和理论分析,文章揭示了不同调度策略如何影响系统性能,特别是在响应时间、吞吐量和公平性方面。同时,本文也讨论了在云计算和物联网等新兴领域,调度算法面临的挑战和未来的发展方向。