文章目录

  • 0.关于TP、TN、FP、FN
  • 1.分类问题
    • 1.1Accuracy
    • 1.2Precision(P)
      • 1.2.1二分类中的precision
      • 1.2.2Precision at k (P@k):多分类中的precision
      • 1.2.3Multi-Label Classfication
    • 1.3Recall (R)
    • 1.4F1 score (F1)
      • 1.4.1二分类中的F1
      • 1.4.2多分类中的F1:weighted_f1:
    • 1.5Area under the ROC (Receiver Operating Characteristic) curve or simply AUC (AUC)
      • 1.5.1ROC
      • 1.5.2AUC
    • 1.6Log loss
      • 1.6.1二分类或多分类
      • 1.6.2Multi-Label Classfication
    • 1.7Quadratic Weighted Kappa(QWK)
    • 1.8Matthew’s Correlation Coefficient (MCC)
  • 2.回归问题
    • 2.1Mean absolute error MAE
    • 2.2Mean squared error (MSE)
    • 2.3Root mean squared error (RMSE)
    • 2.4Mean squared logarithmic error (MSLE)
    • 2.5Root mean squared logarithmic error (RMSLE)
    • 2.6Mean percentage error (MPE)
    • 2.7Mean absolute percentage error (MAPE)
    • 2.8R^2

0.关于TP、TN、FP、FN

TP:预测结果为positive,实际也为positive

TN:预测为negative,实际也为negative

FP:预测结果为positive,实际为negative

FN:预测结果为negative,实际positive

1.分类问题

1.1Accuracy

分类正确的数量除以总数。最简单最直观的metric,可用于均衡数据集的二分类问题。但是对于非均衡比例极端的二分类数据集,则毫无意义。

另一种计算方式:
A c c u r a c y S c o r e = ( T P + T N ) / ( T P + T N + F P + F N ) Accuracy Score = (TP+TN)/(TP+TN+FP+FN) AccuracyScore=(TP+TN)/(TP+TN+FP+FN)

1.2Precision(P)

1.2.1二分类中的precision

所有预测结果为positive中真实值也是positive所占的比例

P r e c i s i o n = T P / ( T P + F P ) Precision = TP/(TP+FP) Precision=TP/(TP+FP)

1.2.2Precision at k (P@k):多分类中的precision

宏平均精确度(Macro averaged precision)、微平均精确度(Micro averaged precision)和加权精确度(Weighted precision)。

  • 宏平均精确度:对所有类别分别计算精确度,然后对它们求平均。

  • 微平均精确度:计算每个类别的真阳性和假阳性,然后使用它们来计算总体精确度。

  • 加权精确度:与宏平均精确度相同,但在这种情况下,它是根据每个类别中的项目数量进行加权平均的。

1.2.3Multi-Label Classfication
  • Precision at k
def pk(y_true,y_pred,k):if k == 0:return 0y_pred = y_pred[:k]pred_set = set(y_pred)true_set = set(y_true)common_values = pred_set.intersection(true_set)#求交集return len(common_values)/len(y_pred[:k])
  • Average Precision at k
def apk(y_true,y_pred,k):pk_values = []for i in range(1,k+1):pk_values.append(pk(y_true,y_pred,i))if len(pk_values) == 0:return 0return sum(pk_values)/len(pk_values)
  • Mean average precision at k
def mapk(y_true,y_pred,k):apk_values =[]for i in range(len(y_true)):apk_values.append(apk(y_true[i],y_pred[i],k=k))return sum(apk_values)/len(apk_values)## 标题

1.3Recall ®

所有真实类别为positive中被正确预测到的比例

R e c a l l = T P / ( T P + F N ) Recall = TP/(TP+FN) Recall=TP/(TP+FN)

1.4F1 score (F1)

1.4.1二分类中的F1

当遇到非均衡数据集时,采用acc作为评价指标显然不是一种好的选择,此时就可以采用f1分数。

将精度(precision)和召回率(recall)联系起来,定义为精度和召回率的加权平均值:

F 1 = 2 P R / ( P + R ) F1 = 2PR/(P+R) F1=2PR/(P+R)

或者

F 1 = 2 T P / ( 2 T P + F P + F N ) F1 = 2TP/(2TP+FP+FN) F1=2TP/(2TP+FP+FN)

1.4.2多分类中的F1:weighted_f1:

对每个类别分别求F1,最后加权平均。

1.5Area under the ROC (Receiver Operating Characteristic) curve or simply AUC (AUC)

1.5.1ROC

ROC曲线是一条概率曲线,它展示了分类模型在不同阈值下的真阳性率(TPR)和假阳性率(FPR)之间的关系。其中:

T P R = T P / ( T P + F N ) TPR = TP/(TP+FN) TPR=TP/(TP+FN)

F P R = F P / ( T N + F P ) FPR = FP/(TN+FP) FPR=FP/(TN+FP)

提高阈值会降低假阳性率(FPR),但同时也会降低真阳性率(TPR),降低阈值则相反。因此ROC曲线可以用来根据实际情况选取最佳阈值。通常来说,在ROC曲线的左上方的点(y轴是TPR),会是最佳阈值点。

1.5.2AUC

AUC则是ROC曲线下方的面积,它衡量了分类模型对正负样本区分能力的一个指标。AUC的取值范围在0.5和1之间,值越大表示模型越能够区分正负样本

ROC和AUC经常用于非均衡二分类数据。

关于AUC的具体解释:

假设AUC为0.8,从数据集中随机选择一个正样本和一个负样本,那么正样本将以0.8的概率排名高于负样本。"排名高于"指的是分类模型为每个样本分配一个概率得分,表示该样本属于正类的概率。如果一个样本的得分高于另一个样本,那么可以说这个样本在模型中的排名高于另一个样本。在这个例子中,如果有正样本以0.8的概率排名高于负样本,这意味着正样本在模型中被分配了更高的概率得分,即模型认为它更可能属于正类。

1.6Log loss

1.6.1二分类或多分类

对数损失衡量了模型预测概率与真实标签之间的差异。对于数据集中的多个样本,所有样本的对数损失就是所有单个对数损失的平均值。

需要注意的是,对数损失对于错误预测或预测偏差较大的情况会给予较高的惩罚。也就是说,如果模型对某个样本的预测非常确定,但预测结果却非常错误,那么对数损失会给予较大的惩罚。

L o g L o s s = − 1.0 ∗ ( t a r g e t ∗ l o g ( p r e d i c t i o n ) + ( 1 − t a r g e t ) ∗ l o g ( 1 − p r e d i c t i o n ) ) Log Loss = -1.0*(target*log(prediction)+(1-target)*log(1-prediction)) LogLoss=−1.0∗(target∗log(prediction)+(1−target)∗log(1−prediction))

其中target是0 or 1,prediction是计算出来的probability。

1.6.2Multi-Label Classfication

将真实标签转换为二进制格式,每一列代表一个标签。然后,我们对每一列分别计算对数损失。

1.7Quadratic Weighted Kappa(QWK)

二次加权kappa(Quadratic Weighted Kappa,QWK)是一种高级的度量方法,也被称为Cohen’s kappa。它用于衡量两个“评分”之间的“一致性”。这些评分可以是0到N之间的任意实数,预测值也在同一范围内。一致性可以定义为这些评分彼此接近的程度。因此,它适用于具有N个不同类别/类的分类问题。如果一致性高,则得分接近1.0。如果一致性低,则得分接近0。

1.8Matthew’s Correlation Coefficient (MCC)

M C C = T P ∗ T N − F P ∗ F N [ ( T P + F P ) ∗ ( F N + T N ) ∗ ( F P + T N ) ∗ ( T P + F N ) ] ( 0.5 ) MCC =\frac{TP*TN-FP*FN}{[(TP+FP)*(FN+TN)*(FP+TN)*(TP+FN)]^(0.5)} MCC=[(TP+FP)∗(FN+TN)∗(FP+TN)∗(TP+FN)](0.5)TP∗TN−FP∗FN​

MCC的取值范围为-1到1。当MCC为1时,表示分类完全正确;当MCC为-1时,表示分类完全错误;当MCC为0时,表示分类效果与随机分类相同。

2.回归问题

2.1Mean absolute error MAE

  • Error = True Value - Predicted Value
  • Absolute Error = Abs(True Value - Predicted Value)
  • MAE:Mean Absolute Error
def MAE(y_true,y_pred):error = 0for yt,yp in zip(y_true,y_pred):error += np.abs(yt-yp)return error/len(y_true)

2.2Mean squared error (MSE)

S q u a r e d E r r o r = ( T r u e V a l u e − P r e d i c t e d V a l u e ) 2 Squared Error = (True Value - Predicted Value)^2 SquaredError=(TrueValue−PredictedValue)2

def MSE(y_true,y_pred):error = 0for yt,yp in zip(y_true,y_pred):error += (yt-yp)**2return error/len(y_true)

2.3Root mean squared error (RMSE)

R M S E = S Q R T ( M S E ) RMSE = SQRT(MSE) RMSE=SQRT(MSE)

2.4Mean squared logarithmic error (MSLE)

def MSLE(y_true,y_pred):error = 0for yt,yp in zip(y_true,y_pred):error += (np.log(1+yt)-np.log(1+yp))**2return error/len(y_true)

2.5Root mean squared logarithmic error (RMSLE)

2.6Mean percentage error (MPE)

P e r c e n t a g e E r r o r = ( ( T r u e V a l u e − P r e d i c t e d V a l u e ) / T r u e V a l u e ) ∗ 100 Percentage Error = ((True Value - Predicted Value)/True Value)*100 PercentageError=((TrueValue−PredictedValue)/TrueValue)∗100

def MPE(y_true,y_pred):error = 0for yt,yp in zip(y_true,y_pred):error += (yt-yp)/ytreturn error/len(y_true)

2.7Mean absolute percentage error (MAPE)

def MAPE(y_true,y_pred):error = 0for yt,yp in zip(y_true,y_pred):error += np.abs(yt-yp)/ytreturn error/len(y_true)

2.8R^2

R 2 = 1 − ∑ i = 1 N ( y t i − y p i ) 2 ∑ i = 1 N ( y t i − y t m e a n ) R^2 = 1 - \frac{\sum_{i=1}^{N}(y_{t_{i}}-y_{p_{i}})^2}{\sum_{i=1}^{N}(y_{t_{i}}-y_{t_{mean}})} R2=1−∑i=1N​(yti​​−ytmean​​)∑i=1N​(yti​​−ypi​​)2​

def r2(y_true,y_pred):mean_true_value = np.mean(y_true)numerator = 0denominator = 0for yt,yp in zip(y_true,y_pred):numerator += (yt-yp)**2denominator += (yt-mean_true_value)**2ratio = numerator/denominatorreturn 1-ratio

机器学习中常用的metrics相关推荐

  1. AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典、建议收藏)之详细攻略

    AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典.建议收藏)之详细攻略 目录 机器学习算法的思维导图集合 1.ML算法思维图 2.ML算法思维导图 相关文章:ML/DL:关于算法模型的选 ...

  2. 机器学习中常用的优化算法:

    http://blog.csdn.net/losteng/article/details/50993911 有知识点和代码的实现过程. 机器学习中常用的优化算法: 1.梯度下降法 2.牛顿法和拟牛顿法 ...

  3. 机器学习百页书:机器学习中常用到的一些数学符号

    一本精简的机器学习入门手册.机器学习百页书<机器学习精讲>,人工智能的核心是机器学习,本书囊括机器学习的精髓,系统而精炼地讲解机器学习的基本原理.本书英文版一经推出,就长期位于亚马逊机器学 ...

  4. Dataset:机器学习中常用数据集下载链接集合之详细攻略

    Dataset:机器学习中常用数据集下载链接集合之详细攻略 目录 机器学习中常用数据集下载链接集合之详细攻略 sklearn.datasets数据集所有csv文件集合 seaborn-data数据集所 ...

  5. 机器学习中常用的评价指标(Performance Measures)

    机器学习中常用的评价指标 混淆矩阵 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示.具体评价指标有总体精度.制图精度.用户精度等,这些精度指标从不同的侧面反映了图像分类 ...

  6. 机器学习中常用的核函数

    在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类: 1) 线性: 2) 多项式: 3) Radial basis function: 4) Sigmoid: 举例:有一个一维 ...

  7. 机器学习中常用的基本概念

    目录 1. 机器学习定义 2. 机器学习中的属性与特征 3.误差 4.过拟合与欠拟合 4.1 过拟合 4.2欠拟合 5.交叉验证 5.1交叉验证基本思想 5.2 交叉验证训练过程 6.调参 7. 机器 ...

  8. 收藏 | 机器学习中常用的5种回归损失函数

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器猫 AI博士笔记系列推荐 周志华<机器学习>手推 ...

  9. 入门|机器学习中常用的损失函数你知多少?

    本文作者将常用的损失函数分为了两大类:分类和回归.然后又分别对这两类进行了细分和讲解,其中回归中包含了一种不太常见的损失函数:平均偏差误差,可以用来确定模型中存在正偏差还是负偏差. 机器通过损失函数进 ...

  10. 机器学习中常用的优化方法

    写在前面 在看斯坦福的次cs231n课程,里面提到一些机器学习的基础知识,比如损失函数,优化算法,正则化形式等等.然后有一些知识也都记不起来了,索性就在博客上再回顾一遍顺便记录下来日后方便查阅.今天就 ...

最新文章

  1. zip unzip 命令
  2. How does “Coded UI test” finds a control ?
  3. Spring Cloud Alibaba:一步一步教你搭建Nacos集群
  4. Promise 到底是什么?看这个小故事
  5. Visual C++ 编译器选项 /MD、/ML、/MT、/LD
  6. 腾讯安全携手华夏银行“论道”金融风控,传递在线反欺诈干货建议
  7. wxpython pypi_Python iwx包_程序模块 - PyPI - Python中文网
  8. Spring中获取request的方法及其线程安全性分析
  9. SAP 录屏BDC使用—实例
  10. VS2019 无法打开源文件“stdafx.h“ 问题
  11. ALFA缺陷检测软件外观检测自学习人工智能软件
  12. CSS实现3D菜单效果【每日一题】
  13. 树莓派+PHP+Mairadb数据库读取DHT11
  14. [NOIP模拟赛]棋子游戏
  15. C++ delete陷阱
  16. Java 学习笔记(二十一)
  17. 两个小时倒计时计时器
  18. OpenAI 宣布将对战 DOTA2 世界冠军 OG,最终决战! 1
  19. Linux-看完这篇Linux基本的操作就会了(转)
  20. Json.NET使用入门(二)【反序列化】

热门文章

  1. 广西大学计算机与学院许嘉,许嘉:十二载职业成长,CCF伴我同行
  2. blazor 踏坑之旅 integrity
  3. 笔记本外接显示器,使用chrome看视频时,全屏就卡住。
  4. 《漫画算法-小灰的算法之旅》读书笔记
  5. Java Swing播放器,功能完善,完整源码 直接使用 窗体版本
  6. 基于Redis的Hyperloglog实现日活量和总活跃量统计
  7. 温铁军教授《十次危机》的提纲和主要内容介绍文字材料
  8. Qt自定义控件--滑动刻度盘
  9. 写给现在或未来的程序员,“既然选择编程,就应该风雨兼程”的那些忠告
  10. 『JavaSE基础入门』六、面向对象进阶