评估机器学习模型数据集难度的工具
edm的Python项目详细描述
进化数据测量:理解文本分类任务的难度
作者:ed柯林斯,尼古拉罗扎诺夫,张冰冰
在对应名称的论文中,我们讨论了如何使用进化算法来发现关于文本分类数据集的哪些统计数据最准确地表示该数据集对于机器学习模型来说可能有多困难。我们在这里提出了我们发现的困难度量,并提供了这个python代码包来计算它。
安装
此代码是pip可安装的,因此可以通过运行:
pip3 install edm
代码需要python 3和numpy。
建议您将此代码安装在virtualenv
:
$ mkdir myvirtualenv/ $ virtualenv -p python3 myvirtualenv/ $ source bin/activate (myvirtualenv) $ pip3 install edm
运行
要计算文本分类数据集的难度,需要提供两个列表:一个句子和一个标签。这两个列表的长度必须相同,即每个句子都有一个标签。每一个数据项都应该是一个未经修饰的字符串,每一个标签都应该是一个字符串。
>>>sents,labels=your_own_loading_function(PATH_TO_DATA_FILE)>>>sents["this is a positive sentence","this is a negative sentence",...]>>>labels["positive","negative",...]>>>assertlen(sents)==len(labels)True
这段代码不支持将数据文件(如csv文件)加载到内存中,您需要单独完成这项工作。
一旦您将数据集加载到内存中,您可以通过运行以下代码来接收“困难报告”:
fromedmimportreportsents,labels=your_own_loading_function(PATH_TO_DATA_FILE)print(report.get_difficulty_report(sents,labels))
注意,如果数据集非常大,那么计算数据集的单词可能需要几分钟。amazon审查来自字符级卷积网络的文本数据集 向张、俊波朝和Yann LeCun的分类EME> 2015,其中包含360万个Amazon评论需要大约15分钟的时间来处理,并且创建了难度报告。计数单词时将显示加载条。