模型评价指标
准确度、精确度、召回率、F1值作为评估指标,经常用到分类效果的评测上。
精确度:可以理解为预测出的东西有多少是用户感兴趣的;
召回率:可以理解为用户感兴趣的东西有多少被预测出来;
F1值:综合精确度和召回率两个指标。
TP(True Positives):真正例,预测为正例而且实际上也是正例;
FP(False Positives):假正例,预测为正例然而实际上却是负例;
FN(false Negatives):假负例,预测为负例然而实际上却是正例;
TN(True Negatives):真负例,预测为负例而且实际上也是负例。
准确率 Accuracy
准确度:正确分类的样本个数占总样本个数,用公式表示:
准确度好理解,是所有预测样本中预测准确的占比
精确度 Precision
精确度:以预测结果为判断依据,预测正确的正例数据占预测为正例数据的比例。预测为正例的结果分两种,要么实际是正例TP,要么实际是负例FP,则可用公式表示:
精确度还有一个名字,叫做“查准率”,我们关心的主要部分是正例,所以查准率就是相对正例的预测结果而言,正例预测的准确度。直白的意思就是模型预测为正例的样本中,其中真正的正例占预测为正例样本的比例,用此标准来评估预测正例的准确度。
召回率 Recall
召回率:以实际样本为判断依据,预测为正确的正例数据占实际为正例数据的比例。实际为正例的样本中,要么在预测中被预测正确TP,要么在预测中预测错误FN,用公式表示:
召回率的另一个名字,叫做“查全率”,评估所有实际正例是否被预测出来的覆盖率占比多少,我们实际黑球个数是3个,被准确预测出来的个数是2个,所有召回率r=2/3。
F1 值
F1值就是中和了精确率和召回率的指标:
当P和R同时为1时,F1=1。当有一个很大,另一个很小的时候,比如P=1,R~0,此时F1~0。分子2PR的2完全了为了使最终取值在0-1之间,进行区间放大,无实际意义。
混淆矩阵
混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。其中矩阵的行表示真实值,矩阵的列表示预测值。
import seaborn as sns from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt sns.set() f,ax = plt.subplots() y_true = [0,0,1,2,1,2,0,2,2,0,1,1] y_pred = [1,0,1,2,1,0,0,2,2,0,1,1] C2 = confusion_matrix(y_true,y_pred,labels=[0,1,2]) #打印 C2 print(C2) sns.heatmap(C2,annot=True,ax=ax) #画热力图 ax.set_titile('confusion matrix') #标题 ax.set_xlabel('predict') #x 轴 ax.set_ylabel('true') #y 轴