用三维图像带你深入了解机器学习的f1

对于机器学习的评价指标,你还记得多少?准确率,精确率,召回率?那你还记得f1吗?是不是有点陌生了?

1、基础指标

首先定义以下几个概念:

TP(True Positive):预测答案正确

FP(False Positive):错将其他类预测为本类

FN(False Negative):本类标签预测为其他类标签

TN(True Negative):其他类标签预测为本类标签

用三维图像带你深入了解机器学习的f1_第1张图片

  • 准确率
    Accuracy
    定义:(TP+TN)/(TP+FN+FP+TN)
    即所有分类正确的样本占全部样本的比例

  • 精确率
    Precision、查准率
    定义:(TP)/(TP+FP)
    即预测是正例的结果中,确实是正例的比例

  • 召回率
    Recall、查全率
    定义:(TP)/(TP+FN)
    即所有正例的样本中,被找出的比例

  • F1
    F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。
    定义:F1 = 2*(Precision * Recall)/ (Precision + Recall )

  • F2
    此外还有F2分数和F0.5分数。F1分数认为召回率和精确率同等重要,F2分数认为召回率的重要程度是精确率的2倍,而F0.5分数认为召回率的重要程度是精确率的一半。计算公式为:
    在这里插入图片描述
    G分数是另一种统一精确率和的召回率系统性能评估标准,G分数被定义为召回率和精确率的几何平均数。
    在这里插入图片描述

2、三维函数图像

f1的三维函数图像
用三维图像带你深入了解机器学习的f1_第2张图片

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

#定义坐标轴
fig = plt.figure()
ax1 = plt.axes(projection='3d')
#ax = fig.add_subplot(111,projection='3d')  #这种方法也可以画多个子图

# 机器学习中的f1曲线
fig = plt.figure()  #定义新的三维坐标轴
ax3 = plt.axes(projection='3d')
#定义三维数据
xx = np.arange(-5,5,0.5)
yy = np.arange(-5,5,0.5)
pre = np.arange(0,1,0.01)
recall = np.arange(0,1,0.01)
X, Y = np.meshgrid(pre, recall)
Z = 2*X*Y/(X+Y)
#作图
ax3.plot_surface(X,Y,Z,cmap='rainbow')
#ax3.contour(X,Y,Z, zdim='z',offset=-2,cmap='rainbow)   #等高线图,要设置offset,为Z的最小值
plt.show()

你可能感兴趣的:(人工智能)