目录

1.准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值

2.宏平均(Macro-averaging)和微平均(Micro-averaging)

3.Python3  sklearn实现分类评价指标


1.  准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值

为了评价模型以及在不同研究者之间进行性能比较,需要统一的评价标准。根据数据挖掘理论的一般方法,评价模型预测能力最广泛使用的是二维混淆矩阵(Confusion matrix)(如下表所示)。

 二维混淆矩阵

真实类别

                                                                 预测结果

类别1(正例)

类别2(反例)

类别1(正例)

真正例(True Positive) TP

假反例(False Negatibe) FN

类别2(反例)

假正例(False Positive)FP

真反例(True Negatibe) TN

(1)准确率(Accuracy)表示正确分类的测试实例的个数占测试实例总数的比例,计算公式为:

(2)召回率(Recall),也叫查全率,表示正确分类的正例个数占实际正例个数的比例,计算公式为:

(3)精确率(Precision),也叫查准率,表示正确分类的正例个数占分类为正例的实例个数的比例,计算公式为:

(4)F1-score是基于召回率(Recall)与精确率(Precision)的调和平均,即将召回率和精确率综合起来评价,计算公式为:

(5) Fβ加权调和平均

          Fβ是F1度量的一般形式,能让我们表达出对查准率、查全率的不同偏好,计算公式如下:

其中,β>0度量了查全率对查准率的相对重要性。β=1时退化为标准的F1;β>1时查全率有更大影响;β<1时查准率有更大影响。

(6)度量分类中的非均衡性的工具ROC曲线(ROC Curve)

        TPR(True Positive Rate)表示在所有实际为阳性的样本中,被正确地判断为阳性的比率,即:TPR=TP/(TP+FN);    FPR( False Positive Rate)表示在所有实际为阴性的样本中,被错误地判断为阳性的比率,即:FPR=FP/(FP+TN)。

        ROC曲线是以FPR作为X轴,TPR作为Y轴。FPR越大表明预测正类中实际负类越多,TPR越大,预测正类中实际正类越多。ROC曲线如下图所示:

(7)AUC值(Area Unser the Curve)是ROC曲线下的面积,AUC值给出的是分类器的平均性能值。使用AUC值可以评估二分类问题分类效果的优劣,计算公式如下:

一个完美的分类器的AUC为1.0,而随机猜测的AUC为0.5,显然AUC值在0和1之间,并且数值越高,代表模型的性能越好。

2. 宏平均(Macro-averaging)和微平均(Micro-averaging)

在n个二分类混淆矩阵上综合考虑查准率和查全率时使用。

(1)宏平均(macro-ave)

         先在各混淆矩阵上分别计算出查准率,查全率和F1,然后再计算平均值,这样就得到“宏查准率”(macro-P)、“宏查全率”(macro-R)、“宏F1”(macro-F1),计算公式分别如下:

(2)微平均(micro-ave)

         先将各混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,再基于这些平均值计算出“微查准率”(micro-P)、“微查全率”(micro-R)、“微F1”(micro-F1),计算公式分别如下:

3. Python3  sklearn实现分类评价指标

(1)KC4数据准备

(2)使用随机森林实现分类并输出评价指标

# -*- coding: utf-8 -*-import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn import metrics
import matplotlib.pyplot as plt"""
函数说明:文件处理
Parameters:filename:数据文件
Returns:list_datasets:数据集特征列表category_labels:数据标签列表
"""
def data_handle(filename):read_data = pd.read_csv(filename)list_datasets = []category_labels = []for i in range(len(read_data)):list_data = []for j in range(len(read_data.iloc[i, :]) - 1):row_data = read_data.iloc[i, j]  # 读取每个样本的每个数据list_data.append(row_data)  #将每个数据存入列表list_datasets.append(list_data)  #将每个样本的数据存入列表row_data_label = read_data.iloc[i, len(read_data.iloc[i, :]) - 1]  # 读取每个样本的类别标签if row_data_label == 'N':category_labels.append(0)  # 将二分类标签转化为0和1,0代表软件正常,1代表软件缺陷else:category_labels.append(1)return list_datasets, category_labels"""
函数说明:绘制ROC曲线
Parameters:labels:测试标签列表predict_prob:预测标签列表
"""
def plot_roc(labels, predict_prob):false_positive_rate, true_positive_rate, thresholds = metrics.roc_curve(labels, predict_prob)roc_auc = metrics.auc(false_positive_rate, true_positive_rate)  #计算AUC值print('AUC=' + str(roc_auc))plt.title('PC5-ROC')plt.plot(false_positive_rate, true_positive_rate, 'b', label='AUC = %0.4f' % roc_auc)plt.legend(loc='lower right')plt.plot([0, 1], [0, 1], 'r--')plt.ylabel('TPR')plt.xlabel('FPR')# plt.savefig('figures/PC5.png') #将ROC图片进行保存plt.show()if __name__ == '__main__':datasets, labels = data_handle('MDP/KC4.csv')  # 对数据集进行处理# 训练集和测试集划分X_train = datasets[:115]y_train = labels[:115]X_test = datasets[90:]y_test = labels[90:]# 随机森林分类器clf = RandomForestClassifier()clf = RandomForestClassifier(n_estimators=200, random_state=0)clf.fit(X_train, y_train)  # 使用训练集对分类器训练y_predict = clf.predict(X_test)  # 使用分类器对测试集进行预测print('准确率:', metrics.accuracy_score(y_test, y_predict)) #预测准确率输出print('宏平均精确率:',metrics.precision_score(y_test,y_predict,average='macro')) #预测宏平均精确率输出print('微平均精确率:', metrics.precision_score(y_test, y_predict, average='micro')) #预测微平均精确率输出print('宏平均召回率:',metrics.recall_score(y_test,y_predict,average='macro'))#预测宏平均召回率输出print('平均F1-score:',metrics.f1_score(y_test,y_predict,average='weighted'))#预测平均f1-score输出print('混淆矩阵输出:',metrics.confusion_matrix(y_test,y_predict))#混淆矩阵输出print('分类报告:', metrics.classification_report(y_test, y_predict))#分类报告输出plot_roc(y_test, y_predict)  #绘制ROC曲线并求出AUC值

评价指标结果如下:

 机器学习基础学习目录

1、机器学习入门总结

2、机器学习分类算法常用评价指标总结

3、决策树算法ID3算法

4、决策树算法熵与信息增益

5、K-近邻法(KNN算法)

6、机器学习中的特征工程

7、逻辑回归算法处理简单数据

8、SVM算法实现手写数字识别

机器学习项目实战

1、项目实战-KNN算法实现手写数字识别

2、项目实战-KNN算法改进约会网站的配对效果

3、项目实战-朴素贝叶斯算法实现垃圾邮件过滤

4、项目实战-朴素贝叶斯算法实现新闻分类

交流学习欢迎入群:955817470(群一),801295159(群二)

机器学习分类算法常用评价指标相关推荐

  1. 预测评价系统_「机器学习」一文读懂分类算法常用评价指标

    前言 评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标. 在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中 ...

  2. 机器学习——算法常用评价指标

    机器学习--算法常用评价指标 一.常用评价指标 二.案例 一.常用评价指标 参考书籍:<机器学习>--周志华 错误率: 分类错误的样本数占样本总数的比例 精度: 分类正确的样本数占样本总数 ...

  3. 15分钟带你入门sklearn与机器学习——分类算法篇

    作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...

  4. 来!一起捋一捋机器学习分类算法

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:算法与数学之美 可是,你能够如数家珍地说出所有常用的分类算法,以及他们的特征.优 ...

  5. [转载] python机器学习第三章:使用scikit-learn实现机器学习分类算法

    参考链接: 使用Scikit-Learn在Python中进行embedding/投票分类 训练机器学习算法所涉及的五个主要步骤可以概述如下: 1.特征的选择 2.确定性能评价标准 3.选择分类器及其优 ...

  6. 主流监督式机器学习分类算法

    主流监督式机器学习分类算法的性能比较 姓名:欧阳qq     学号:169559 摘要:机器学习是未来解决工程实践问题的一个重要思路.本文采比较了目前监督式学习中几种主流的分类算法(决策树.SVM.贝 ...

  7. 机器学习分类算法(附图文详解)

    说起分类算法,相信学过机器学习的同学都能侃上一二. 可是,你能够如数家珍地说出所有常用的分类算法,以及他们的特征.优缺点吗?比如说,你可以快速地回答下面的问题么: KNN算法的优缺点是什么? Naiv ...

  8. 机器学习—分类算法的对比实验

    文章目录 前言 一.分类算法实现 1.决策树 2.KNN 3.SVM 4.逻辑回归 5.朴素贝叶斯 6.随机森林 7.AdaBoost 8.GradientBoosting 二.分类算法的对比 前言 ...

  9. 大数据 机器学习 分类算法_13种用于数据科学的机器学习分类算法及其代码

    大数据 机器学习 分类算法 The roundup of most common classification algorithms along with their python and r cod ...

最新文章

  1. hive处理json数据_(转)hive中解析json数组
  2. hive olap 数据仓库_数据仓库那些事儿
  3. String类(二)
  4. angular --- ngDialog关闭当前层
  5. java打印等边三角市,java 打印菱形和等边三角形
  6. pulsar 卸载数据到aws-s3
  7. SpringBoot与任务
  8. Android ListView 指定显示最后一行
  9. java你如何调字体大小_eclipse怎样调整代码字体大小 值得一看
  10. Java面向对象编程三大特征 - 继承
  11. java 向路由器发送报文_9.IP选路 - loda0128的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. 如何在Mac上安全的下载BT
  13. c语言计算级数,C语言之数值计算--级数算法
  14. 从网易产品出发解读To B营销如何应用增长黑客
  15. 课代表:ChatGPT及大模型专题研讨会
  16. 2019最新微信公众平台PHP开发搭建与揭秘(附代码)
  17. 量化交易系统设计细节
  18. 【Katalon常见问题解决四】浏览器升级后,katalon报错 Unable to open browser with url: ''
  19. Java字符拼成图片
  20. 对残差网络resnet shortcut的解释

热门文章

  1. Windows API CreateWindow
  2. IE6.0、IE7.0 与FireFox CSS兼容的解决方法
  3. root开不了机破解版,已破解root
  4. AI和工业4.0之间,还有多远的差距?
  5. 使用Glimpse 监测ASP.NET MVC网站
  6. 3.三种注释的快捷键
  7. C语言中select函数的使用
  8. 搭建TinyTiny rss服务
  9. uniapp预览图片不显示的问题
  10. 汽车行业H公司对接SMR EDI项目案例