泰州企业自助建站系统,6免费网站建站,百度网页版下载,的网站混淆矩阵的精度计算公式为#xff1a;精度(TPTN)/(TPTNFPFN)#xff0c;也就是说#xff0c;精度就是指正确的预测数目除以所有样本的数量。准确率、召回率与f-分数#xff1a;总结混淆矩阵还有几种方法#xff0c;其中最常见的就是准确率和召回率。准确率度量的是被预测为…混淆矩阵的精度计算公式为精度(TPTN)/(TPTNFPFN)也就是说精度就是指正确的预测数目除以所有样本的数量。准确率、召回率与f-分数总结混淆矩阵还有几种方法其中最常见的就是准确率和召回率。准确率度量的是被预测为正例的样本有多少是整整的样例。即准确率TP/(TPFP)。如果目标是限制假正例的数量那么可以使用准确率作为性能目标。召回率召回率(recalll)度量的是正类样本中有多少被预测为正类即召回率TP/(TPFN)如果我们需要找出所有的正类样本即避免反例是很重要的情况下那么可以使用召回率作为性能指标。在优化召回率与优化准确率之间需要折中如果你预测所有样本都属于正类那么可以轻松得到完美的召回率(没有假反例、也没有真反例)。但是将所有样本都预测为正类将会得得很多假正例因此准确率会很低。与之相反如果你的模型只讲一个最确定的数据点预测为正类其他点都预测为反类那么准确率将会很完美(假设这个数据点上实际上就属于正类)但是召回率会很差。(当然准确率和召回率只是度量混淆矩阵情况中两个量其他的可以根据实际情况取对应的参数)。f-分数虽然准确率和召回率是非常重要的度量三式仅查看二者之一无法提供完美的途径所以还有一种将两种方法汇总的方法——f-分数。它是准确率与召回率的调和平均即F2*(准确率*召回率)/(准确率召回率)。由于f-分数同时考虑了准确率和召回率所以它对于不平衡的二分类数据集来说是一种比精度更好的度量方式。我们对前面提到过的“9与其余”的数据集的预测结果计算f1-分数(我们这里假设“9”是正类标记为True其他样本为False)from sklearn.metrics import f1_scoreprint(F1 score most frequent: {:.2f}.format(f1_score(y_test, pred_most_frequent)))print(F1 score dummy: {:.2f}.format(f1_score(y_test, pred_dummy)))print(F1 score logreg: {:.2f}.format(f1_score(y_test, pred_logreg)))print(F1 score of Tree: {:.2f}.format(f1_score(y_test, pred_tree)))运行后其结果如下F1 score most frequent: 0.00F1 score dummy: 0.13F1 score logreg: 0.89F1 score of Tree: 0.55由运行结果可以看出most_frequency的预测中得到的是一条错误信息另外需要注意的是虚拟预测和决策树预测之间还是有差别的尽管精度差别不大但是f-分数却相差很大。在这里f-分数更加符合我们对模型的直觉。f-分数的缺点则是比精度更加难以解释。如果我们要对准确率、召回率和f1-分数做一个更加全面的总结则可以使用classification_report这个函数它可以同时计算这三个值并以美观的形式打印出来。from sklearn.metrics import classification_reportprint(Most frequency class precious:)print(classification_report(y_test, pred_most_frequent, target_names[not Nine, Nine]))print(Dummy model precious:)print(classification_report(y_test, pred_dummy, target_names[not Nine, Nine]))print(Decision tree precious:)print(classification_report(y_test, pred_tree, target_names[not Nine, Nine]))print(logistic regression precious)print(classification_report(y_test, pred_logreg, target_names[not Nine, Nine]))运行结果如下图classification_report 属性打印classification_report函数为每个类别(这里是True和False)生成一行并给出以该类并为正类的准确率、召回率及f-分数。这里的最后一列support(支持)表示的是在这个类别中真实样本的数量最后一行显示的是对应指标的加权平均(按每个类别中的样本个数加权)。同时我们从运行结果中还可以看出虚拟模型与logreg之间的区别并不是很明显选择哪个类作为正类对指标有很大影响。在这里选择Nine作为正类时logisticregression比其他方法更具备优势。