机器学习中常用的评估指标

网友投稿 526 2022-11-06


机器学习中常用的评估指标

1. 分类问题

1.1 混淆矩阵(Confusion Matrix)

矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。

真正(True Positive , TP):被模型预测为正的正样本。假正(False Positive , FP):被模型预测为正的负样本。假负(False Negative , FN):被模型预测为负的正样本。真负(True Negative , TN):被模型预测为负的负样本。真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。 召回率假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数/2复制代码

1.1.1 sklearn相应的包

​​sklearn.metrics.confusion_matrix​​

from sklearn.metrics import confusion_matrix# y_pred是预测标签y_pred, y_true =[1,0,1,0], [0,0,1,0]confusion_matrix(y_true=y_true, y_pred=y_pred)# array([[2, 1],# [0, 1]], dtype=int64)复制代码

1.2 准确率(Accuracy)

分类正确的样本个数占总样本的比例.

1.2.1 sklearn相应的包

​​sklearn.metrics.accuracy_score​​

from sklearn.metrics import accuracy_score# y_pred是预测标签y_pred, y_true=[1,2,3,4], [2,2,3,4]accuracy_score(y_true=y_true, y_pred=y_pred)# 0.75复制代码

1.3 精确率(Precision): 预测正确的正样本占所有预测为正样本的比例

所有分正确的正样本/所有预测为正类的样本数.也叫查准率

1.3.1 sklearn相应的包

​​sklearn.metrics.precision_score​​

from sklearn.metrics import precision_score# y_pred是预测标签y_pred, y_true =[1,0,1,0], [0,0,1,0]precision_score(y_true=y_true, y_pred=y_pred)# 0.5复制代码

1.4 召回率 (Recall): 预测正确的正样本占所有正样本比例

所有分正确的正样本/所有的正样本数.也叫查全率

1.4.1 sklearn

​​sklearn.metrics.recall_score​​

from sklearn.metrics import recall_score# y_pred是预测标签y_pred, y_true =[1,0,1,0], [0,0,1,0]recall_score(y_true=y_true, y_pred=y_pred)# 1.0复制代码

1.5 F1 score

又称平衡分数, 定义为精确率和召回率的调和平均数

1.5.1 sklearn相应的包

​​sklearn.metrics.f1_score​​

from sklearn.metrics import f1_score# y_pred是预测标签y_pred, y_true =[1,0,1,0], [0,0,1,0]f1_score(y_true=y_true, y_pred=y_pred)# classification_report可以直接输出各个类的precision recall f1-score supportfrom sklearn.metrics import classification_report# y_pred是预测标签y_pred, y_true =[1,0,1,0], [0,0,1,0]print(classification_report(y_true=y_true, y_pred=y_pred))复制代码

1.6 增益(Gain)和提升(Lift)图

1.7 ROC曲线

横轴: 负正类率(false postive rate FPR=FP/(FP+TN))特异度, 划分实例中所有负例占所有负例的比例;(1-Specificity)纵轴: 真正类率(true postive rate TPR=TP/(TP+FN))灵敏度, Sensitivity(正类覆盖率), 即召回率

1.7.1 sklearn相应的包

​​sklearn.metrics.roc_curve​​​,​​sklearn.metrics.auc​​

import matplotlib.pyplot as plt from sklearn.metrics import roc_curve, auc# y_test:实际的标签, dataset_pred:预测的概率值。fpr, tpr, thresholds = roc_curve(y_test, dataset_pred)roc_auc = auc(fpr, tpr) #画图,只需要plt.plot(fpr,tpr),变量roc_auc只是记录auc的值,通过auc()函数能计算出来 plt.plot(fpr, tpr, lw=1, label='ROC(area = %0.2f)' % (roc_auc))plt.xlabel("FPR (False Positive Rate)")plt.ylabel("TPR (True Positive Rate)")plt.title("Receiver Operating Characteristic, ROC(AUC = %0.2f)"% (roc_auc))plt.show()复制代码

1.8 AUC(Area Under Curve)

AUC即为ROC曲线下的面积(ROC的积分), 通常大于0.5小于1.AUC值(面积)越大的分类器,性能越好.

1.8.1 sklearn相应的包

​​sklearn.metrics.roc_auc_score​​

from sklearn.metrics import roc_auc_score# y_test:实际的标签, dataset_pred:预测的概率值。roc_auc_score(y_test, dataset_pred)复制代码

1.9 PR曲线

横坐标: 精确率P纵坐标: 召回率R评价标准和ROC一样,先看平滑不平滑(蓝线明显好些)。一般来说,在同一测试集,位于上面的线比下面的好.当P和R的值接近时,F1值最大.

1.10 多分类

​​precision_recall_fscore_support​​: 计算每个分类的precision, recall, fscore和support

2. 回归问题

在sklearn中, 通常函数以​​_score​​​结尾返回一个值来最大化, 越高越好; 函数​​_error​​​或​​_loss​​结尾返回一个值来 minimize(最小化), 越低越好.

2.1 平均绝对误差(MAE)

平均绝对误差MAE(Mean Absolute Error)又被称为​​l1​​平均绝对误差是非负值,模型越好MAE越接近零.公式

2.1.1 sklearn相应包

​​sklearn.metrics.mean_absolute_error​​

from sklearn.metrics import mean_absolute_errory_true, y_pred = [3, -0.5, 2, 7], [2.5, 0.0, 2, 8]mean_absolute_error(y_true, y_pred)# 0.5复制代码

2.2 平均平方误差(MSE)

平均平方误差MSE(Mean Squared Error)又被称为​​l2​​本质是在残差平方和(RSS)的基础上除以了样本总量,得到了每个样本量上的平均误差.均方误差是非负值,模型越好MSE越接近零.公式

2.2.1 sklearn相应包

​​sklearn.metrics.mean_squared_error​​

from sklearn.metrics import mean_squared_errory_true, y_pred = [3, -0.5, 2, 7], [2.5, 0.0, 2, 8]mse = mean_squared_error(y_true, y_pred)# 0.375rmse = np.sqrt(mse)# 0.6123724356957945复制代码

2.3 均方根误差(RMSE)

均方根误差RMSE (Root Mean Squared Errort), 即MSE开方.公式

2.4 均方对数误差(MSLE)

均方对数误差MSLE (mean squared logarithmic error)均方对数误差是非负值,模型越好MSLE越接近零.公式

2.4.1 sklearn对应包

​​sklearn.metrics.mean_squared_log_error​​

2.5 中值绝对误差(MedAE)

中值绝对误差MedAE(median absolute error)中值绝对误差是非负值,模型越好MSE越接近零.公式

2.5.1 sklearn对应包

​​sklearn.metrics.mean_squared_log_error​​

2.5 可释方差得分 (EVS)

解释变异( Explained variance)是根据误差的方差计算得到.最佳模型的可释方差分数值为1,模型越差值越小.公式:

2.5.1 sklearn相关包

​​sklearn.metrics.explained_variance_score​​

2.6 决定系数(Coefficient of Determination)

R2 决定系数(r2_score) 判断回归方程的拟合程度.最佳模型的R^{2}决定系数分数值为1,常数模型值为0,模型越差值越小.公式

2.6.1 sklearn相关包

​​sklearn.metrics.r2_score​​

from sklearn.metrics import r2_scorey_true, y_pred = [3, -0.5, 2, 7], [2.5, 0.0, 2, 8]r2_score(y_true, y_pred)复制代码

3. 聚类问题

聚类结果, 追求"簇内相似度"(intra-cluster similarity)高, 且"簇间相似度"(inter-cluster similarity)低.聚类性能度量大致有两类:

将聚类结果与某个"参考模型"(reference model)进行比较, 称为"外部指标"(external index).直接参考聚类结果而不利用任何参考模型, 称为"内部指标"(internal index).

3.1 外部指标

对数据集, 假定通过聚类给出的簇划分为, 参考模型给出的簇划分为. 相应地, 令与分别表示与和对应的簇标记向量, 将样本两两配对考虑, 定义其中

集合SS: 包含了在中属于相同簇, 同时在中也属于相同簇的样本对集合SD: 包含了在中属于相同簇, 同时在中属于不同簇的样本对集合DS: 包含了在中属于不同簇, 同时在中属于相同簇的样本对集合DD: 包含了在中属于不同簇, 同时在中属于不同簇的样本对

由于每个样本对仅能出现在一个集合中, 因此有

3.1.1 常用外部指标

Jacccard系数(Jaccard Coeffient, 简称JC)FM指数(Fowlkes and Mallows Index, 简称FMI)Rand指数(Rand Index, 简称RI)上述性能指数的结果值均在区间, 值越大越好.

3.1.2 互信息(Mutual Information)

两个随机变量的互信息(Mutual Information,简称MI)或转移信息(transinformation)是变量间相互依赖性的量度.

3.1.3 sklearn相应包

FMI:​​fowlkes_mallows_score​​RI:​​sklearn.metrics.adjusted_rand_score​​MI:​​sklearn.metrics.adjusted_mutual_info_score​​

3.2 内部指标

考虑聚类结果的簇划分, 有以下定义

为簇内样本间的平均距离对应簇内样本间的最远距离对应于簇与簇最近样本间的距离对应簇与簇中心点的距离

3.2.1 常用内部指标

DB指数(Davies-Bouldin Index, 简称DBI) DBI的可能最小值为0, 值越小越好.Dunn指数(Dunn Index, 简称DI) DI值越大越好

3.2.2 轮廓系数(Silhouette coefficient)

结合了聚类的凝聚度(Cohesion)和分离度(Separation), 用于评估聚类的效果。该值处于(-1,1)之间.其中值越接近1表示样本与自己所在的簇中的样本很相似,并且与其他簇中的样本不相似;当样本点与簇外的样本更相似的时候,轮廓系数就为负; 当轮廓系数为0时, 则代表两个簇中的样本相 似度一致,两个簇本应该是一个簇.公式 a(i)为样本i与簇内其它样本的平均距离, b(i)为样本i与其它某簇样本的平均距离, 多个簇b(i)取最小.

3.2.3 sklearn相应包

DBI:​​sklearn.metrics.davies_bouldin_score​​​​sklearn.metrics.silhouette_score​​, 返回是一个数据集中, 所有样本的轮廓系数均值.​​sklearn.metrics.silhouette_score_samples​​,它的参数与轮廓系数一致,但返回的是数据集中每个样本自己的轮廓系数.

4. 关联问题

4.1 支持度(Support)

表示项目X, Y同时在总数据集中出现的概率, 其计算公式为 指N个交易记录中同时出现X和Y的交易记录所占的比例.

4.2 置信度(Confidence)

指在先导项X已经发生的情况下, 后续项Y也发生的概率, 即包含X的交易记录中同时也包含Y的交易记录所占的比例, 计算公式为:

4.3 提升度

表示含有X的条件下同时含有Y的概率, 与无论含不含X, 含有Y的概率之比, 计算公式 购买X的情况下, 购买Y的概率大于购买Y的概率, 则具有提升作用.


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:教你用AI修复旧相片
下一篇:极兔快递单号查询API(极兔快递单号查询自查)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~