Answers:
您可以使用任何数据集执行以下基本操作:
了解数据以识别错误是完全不同的球类游戏,这非常重要。
例如,您可以有一条规则,规定给定数据集中必须存在序列号,并且该序列号必须是字母数字,最大字符串长度为255,最小字符串长度为5。
查看数据,您可能会发现一个特定的序列号读取值"PLEASE ENTER SERIAL"
是完全正确的,但是是错误的。
这很明显,但是说您正在处理库存数据,而您的价格范围是1000美元以下的股票。很多人不知道如此低的股价在某些交易所是无效的而在其他交易所是完全有效的。您需要有关数据的知识,以了解所看到的是否有问题。
在现实世界中,您并不总是拥有亲密了解数据的能力。
我避免问题的方法是利用周围的人。对于小型数据集,我可以要求某人对数据进行整体审查。对于大样本,更合适的方法是抽取一组随机样本并要求某人对数据进行完整性检查。
此外,必须查询数据源以及该数据源可信任的程度。我经常有多个相互冲突的数据源,我们创建规则来确定“真相”。有时,一个数据集在给定方面具有出色的数据,但其他数据集在其他方面更强大。
通常,我最怀疑的是手动输入的数据,但在某些情况下,它比通过自动化可以获取的任何数据都要强大。
我非常喜欢@Kallestad的答案,但我想添加一个元步骤:确保您了解如何收集数据以及存在哪些约束类型。我认为通常认为在收集数据时没有非显而易见的步骤,但事实并非如此:大多数情况下,某些过程或个人对数据进行了某些思考,并且这些步骤可以并且将会影响数据的形状。
两个例子:最近我进行了一项研究,研究了全世界各种拖拉机收集的数据。我当时不在简报会上,所以对我来说是不透明的。不幸的是,法国某些地方的测量结果有所不同:人们都喜欢冰壶,但我们希望获得随机分布。这种统一性没有明显的原因,所以我开始寻找错误。当我查询承包商时,有人误解了简报,只从他的数据库中选择了冰淇淋爱好者。
第二个错误更具挑战性:在进行地理分析时,我发现很多人的移动方式非常大,这表明很多人在几分钟之内从慕尼黑到汉堡旅行。当我在上游与ppeople交谈时,他们在数据聚合软件中发现了一个细微的错误,以前是没有发现的。
结论:
我通常采取两步走法
计算每个变量的单变量(随变量而异)摘要统计信息,例如均值,范围,方差,缺失数,基数等,并查找奇数(例如,鉴于变量的含义,范围不合理)。绘制这些奇数变量的直方图。
将数据拆分为可管理的子集(选择一个有意义的变量,并根据其拆分数据(例如,所有肯定的示例,全部为否定的)),然后进行可视化探索(例如,使用ggobi)。尤其要使用诸如刷图和散布图之类的工具来了解变量如何链接在一起。
并且,当您开始构建模型时,请确保绘制残差图,查找可能由于异常值引起的极端误差,或者查看混淆矩阵并确保其平衡。使用k折交叉验证来优化您的模型,并查看每个折叠的训练误差方差,如果一个折叠的效果比其他折叠差很多,则可能包含异常值。
在下面的数据科学StackExchange(/datascience//a/722/2452)上,您可以找到我对一个相关(但是,侧重于数据清洗方面)问题的答案的副本,该文档的全文提供给读者的方便。我相信它也可以部分回答您的问题,希望对您有所帮助。尽管答案集中在R
生态系统上,但可以为其他数据分析环境找到类似的程序包和/或库。此外,尽管引用的两篇有关数据准备的论文也包含R中的示例,但这些论文提出了适用于任何方法的一般 工作流程(框架)和最佳实践。 数据分析环境。
R含有一些标准为数据操纵功能,其可被用于数据清洗,在其基极封装(gsub
,transform
等),以及在各种第三方软件包,如stringr,重塑,reshape2,和plyr。以下文件描述了使用这些包及其功能的示例和最佳实践:http : //vita.had.co.nz/papers/tidy-data.pdf。
此外,R提供了一些专门针对数据清理和转换的软件包:
全面和一致的办法数据清理中的R,包括实施例和使用的editrules和deducorrect包,以及的描述工作流(框架数据清理中的R),其示于下面的纸张,我强烈建议:HTTP ://cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf。
人们在这里说出了很好的步骤,但是我认为以下链接提供了很多信息,当我通过推文收到新的数据集时,我会做些什么,它总结了人们在推特上回答了@hmason伟大问题“数据人:当您接触到新的数据集时,您要做的第一件事是什么?”
希望它会有用。