文本分类数据和评价指标

文本分类数据和评价指标

1 中文文本分类数据集THUCNews

1.1 数据说明

THUCNews是根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档(2.19 GB),均为UTF-8纯文本格式。我们在原始新浪新闻分类体系的基础上,重新整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。使用THUCTC工具包在此数据集上进行评测,准确率可以达到88.6%。参考链接为:http://thuctc.thunlp.org/#%E4%B8%AD%E6%96%87%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E6%95%B0%E6%8D%AE%E9%9B%86THUCNews 。

1.2 数据下载方式

部分数据下载链接为。完整数据下载方式为:访问 http://thuctc.thunlp.org/message, 需要提交个人信息、尊重THUNLP资源使用协议,从而获取正确下载地址。

1.3 数据探索

我们这里以部分数据来进行探索学习。数据下载后包括4个文件夹,分别是cnews.train.txt、cnews.val.txt、cnews.test.txt和cnews.vocab.txt。其中cnews.train.txt是训练集数据,cnews.val.txt是验证集数据、cnews.test.txt是测试集数据,我们需要通过分词然后进行处理。而cnews.vocab.txt是所有数据集中汇集成的词典,每一行表示一个词。细心的同学会发现,除了词、标点符号,还包含了 < P A D > <PAD> <PAD>。 < P A D > <PAD> <PAD>指的是对部分的句子进行填充,从而保证句子中长度差异不大。

2. IMDB英文情感分类数据集

2.1 数据说明

本数据集是通过评论数据从而分析出个人对电影的喜恶(也可以称为消极和积极的,目标是完成二分类)。数据集总共包含5W条评论,其中2.5W是训练集数据,而2.5W是测试集数据。其中还有5W个未做标记的评论,可用来作无监督学习。

2.2 下载方式

下载地址为 http://59.80.44.98/ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz ,可直接复制到迅雷进行下载。

2.3 数据探索

数据下载并解压后包括若干个文件和两个文件夹。其中两个文件夹为train和test,train和test中包含neg、pos、unsup三个字文件夹,其中neg对应的是消极的,而pos指的是积极的,unsup是未标记的数据。

3.评价指标

3.1 混淆矩阵


表中TN、FP、FN、TP中第一个字母表示预测是否和实际值相符,正确为T,错误为F。第二个字母表示预测的结果,预测为正样本1用P表示,预测为负样本0用N表示。

3.2 准确率

score:预测正确的样本数占总样本的比例(sklearn中的接口), T N + T P T N + T P + F N + F P \frac{TN+TP}{TN+TP+FN+FP} TN+TP+FN+FPTN+TP​。但分类准确率在处理极度倾斜(skewed)的数据时效果不好(如癌症得病了0.1%,即使所有人都预测为健康,我们的分类准确率也为99.9%)。所以后来提出了精准率、召回率、F1 score等指标。

3.3 精确率

precision= T P T P + F P \frac{TP}{TP+FP} TP+FPTP​,分母是预测为1且预测对了的数量,分子是所有预测为1的样本数量。从名字理解概念,查准率,查出来为1的样本中准确率是多少。该指标反映了将多数类判错后需要付出的成本。可使用sklearn直接进行计算,代码如下所示:

from sklearn.metrics import precision_score precision_score(y_test, y_pred) 

3.4 召回率

recall =  T P T P + F N \frac{TP}{TP + FN} TP+FNTP​ ,分母是预测为1且预测对了的数量(同精准率),分子是现实中所有为1的样本。sklearn接口为:

from sklearn.metrics import recall_score recall_score(y_test, y_pred) 

3.5 F1 score

F1 score:有时我们想兼顾查准率和召回率(既不偏好精准率,也不偏好召回率),因此可用二者的调和平均数 1 F 1 = 1 2 ( 1 p r e c i s i o n + 1 r e c a l l ) \frac{1}{F1}=\frac{1}{2}(\frac{1}{precision}+\frac{1}{recall}) F11​=21​(precision1​+recall1​),因此 F 1 = 2 p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F1=\frac{2precision*recall}{precision+recall} F1=precision+recall2precision∗recall​ 。调和平均数的一个重要特征:只有当两者都很大或很小时,调和平均数才会很大或很小,只要有一个很小,就会大大拉低结果。sklearn接口为

from sklearn.metrics import f1_score f1_score(y_test, y_pred) 

3.6 PR曲线

上面的F1_score兼顾了精准率和召回率,但是这两个指标本身是矛盾的,提升一个必然会降低另一个。绘制曲线代码为:

# 超参数-precision & 超参数-recall曲线 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import precision_score from sklearn.metrics import recall_score import pandas as pd import numpy as np data = load_breast_cancer() X_train, X_test, Y_train, Y_test = train_test_split(data.data, data.target, test_size = 0.4, random_state = 555) precision = [] recall = [] for i in range(1, 10): clf = DecisionTreeClassifier(max_depth = i) clf.fit(X_train, Y_train) pred = clf.predict(X_test) precision.append(precision_score(Y_test, pred)) recall.append(recall_score(Y_test, pred)) import matplotlib.pyplot as plt plt.plot(list(range(1, 10)), precision, label = 'precision') plt.plot(list(range(1, 10)), recall, label = 'recall') plt.legend() plt.show() 

3.7 ROC曲线和AUC

www.zeeklog.com - 文本分类数据和评价指标


ROC曲线的横轴是FPR,纵轴是TPR。FPR(假正率)为FP(预测为1,但是预测错了的数量,误报)除以真实值为0的样本数量。绘制ROC曲线的方法同P-R曲线,可以自己手绘,也可以调用sklearn。TPR为召回率recall。

AUC即ROC曲线的面积,AUC代表ROC曲线越接近左上角,模型就越好。

www.zeeklog.com - 文本分类数据和评价指标

3.8 学习曲线

Plots relating performance to experience are widely used in machine learning. Performance is the error rate or accuracy of the learning system, while experience may be the number of training examples used for learning or the number of iterations used in optimizing the system model parameters.[17] The machine learning curve is useful for many purposes including comparing different algorithms,[18] choosing model parameters during design,[19] adjusting optimization to improve convergence, and determining the amount of data used for training.

4. 参考链接为

Read more

最新电子电气架构(EEA)调研-3

而新一代的强实时性、高确定性,以及满足CAP定理的同步分布式协同技术(SDCT),可以实现替代TSN、DDS的应用,且此技术已经在无人车辆得到验证,同时其低成本学习曲线、无复杂二次开发工作,将开发人员的劳动强度、学习曲线极大降低,使开发人员更多的去完成算法、执行器功能完善。 五、各大车厂的EEA 我们调研策略是从公开信息中获得各大车厂的EEA信息,并在如下中进行展示。 我们集中了华为、特斯拉、大众、蔚来、小鹏、理想、东风(岚图)等有代表领先性的车辆电子电气架构厂商。        1、华为 图12 华为的CCA电子电气架构              (1)华为“计算+通信”CC架构的三个平台                         1)MDC智能驾驶平台;                         2)CDC智能座舱平台                         3)VDC整车控制平台。        联接指的是华为智能网联解决方案,解决车内、车外网络高速连接问题,云服务则是基于云计算提供的服务,如在线车主服务、娱乐和OTA等。 华

By Ne0inhk
Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 文章目录 * Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践 * Apache IoTDB 核心特性与价值 * Apache IoTDB 监控面板完整部署方案 * 安装步骤 * 步骤一:IoTDB开启监控指标采集 * 步骤二:安装、配置Prometheus * 步骤三:安装grafana并配置数据源 * 步骤四:导入IoTDB Grafana看板 * TimechoDB(基于 Apache IoTDB)增强特性 * 总结与应用场景建议 Apache IoTDB 核心特性与价值 Apache IoTDB 专为物联网场景打造的高性能轻量级时序数据库,以 “设备 - 测点” 原生数据模型贴合物理设备与传感器关系,通过高压缩算法、百万级并发写入能力和毫秒级查询响应优化海量时序数据存储成本与处理效率,同时支持边缘轻量部署、

By Ne0inhk
SQL Server 2019安装教程(超详细图文)

SQL Server 2019安装教程(超详细图文)

SQL Server 介绍) SQL Server 是由 微软(Microsoft) 开发的一款 关系型数据库管理系统(RDBMS),支持结构化查询语言(SQL)进行数据存储、管理和分析。自1989年首次发布以来,SQL Server 已成为企业级数据管理的核心解决方案,广泛应用于金融、电商、ERP、CRM 等业务系统。它提供高可用性、安全性、事务处理(ACID)和商业智能(BI)支持,并支持 Windows 和 Linux 跨平台部署。 一、获取 SQL Server 2019 安装包 1. 官方下载方式 前往微软官网注册账号后,即可下载 SQL Server Developer 版本(

By Ne0inhk