推荐 :用pandas-profiling做出更好的探索性数据分析(附代码)
作者:Thomas Gey 翻译:廖倩颖 校对:和中华
本文约2300字,建议阅读5分钟。
探索性数据分析已失势,Pandas-profiling万岁!用更省力的办法完美呈现你的数据。
一个充满坏数据的世界
在大部分数据科学领域中,我们获得的数据并不如网上专门为机器学习模型的应用而设计和准备的数据干净和完整。大部分情况下,外部来源的数据不是结构性差就是不完整,这时候就需要你来把这些数据变得更可用!
虽然数据科学家注意到了数据质量的重要性,但这对于商业领导者来说并不是个事。他们更关注如何尽早使用技术来维持竞争优势,而很少理解技术的实际应用。这意味着人们会在“量大出奇迹”的借口下,利用数据集里的一切信息并希望获得最好的结果。
由于思维方式的差异,在建模前一个数据科学家一般花费80%时间准备数据集。
为什么是80%时间?因为有缺失值,不平衡的数据,没有任何意义的字段,删除重复数据后的数据,过时数据和其他原因。人们最近才意识到数据的重要性。但是,即使趋势逆转,数据也很难轻易访问和结构良好。
一个坏数据集的后果很简单也很符合逻辑:用这些数据集建立的预测模型将会有低准确率和低效率。用不正确的数据训练模型会产生偏差,你的结果将与现实相去甚远。一个糟糕的模型无法被部署,所以对于公司来说开发这样的模型是净损失。
一个用锈铁制造的汽车不能正常驾驶,甚至在最糟糕的情况下,根本不能驾驶…没有人愿意使用或购买一辆生锈的汽车。
所以,数据集对于你的项目至关重要。项目在技术和经济层面上的成功取决于你所选择数据的质量。在机器学习项目中,跳过数据评估步骤可能会浪费大量时间,你将不得不从头开始项目。所以现在看来,数据科学家们花那么多时间调查和准备数据集是合乎逻辑的!
低质量数据只会导致低质量结果
神创造了探索性数据分析
概念性的方法
为了确保我们的数据集是有用的,一个好的实践操作是EDA,即探索性数据分析。
EDA是一种熟悉数据集的方法。通过这个反思性工作,可以保证处理的是有趣,连贯和干净的数据。这一步是可视化的而且是基于摘要统计和图形表达。
通过EDA,数据科学家可以发现哪一个特征重要或者特征之间的相关性。此外,EDA可以让你发现错误或者缺失值,检测异常值或者驳回一个假设。特征变量的选择之后会被用于机器学习。
一般来说,在探索性数据分析之后的步骤是特征工程/数据增强,在这一过程中,你需要把原始数据进行处理,赋予他们额外价值。
一个EDA基本例子:
对于这个例子,我使用了一个非常适合EDA的数据集,即FIFA 19完整的球员数据集。它包含多种数据类型,缺失值,并且有许多适用的指标。对这个数据集的几个完整的分析可以在这里找到。我使用JupyterLab作为IDE,因为它的灵活性和用户友好的界面。
让我们使用pandas库从CSV文件中导入数据:
import pandas as pd
%time data = pd.read_csv("fifa.csv", delimiter=',', index_col=0)
加载速度很快。现在介绍一下data.sample(5),这是一个随机选择行的方法。如果不知道数据是如何排序的,最好使用.sample()而不是.head()。
data.sample(5)
让我们用.describe()来做一些描述性统计。该方法“总结了数据集分布的集中趋势、分散和形状,不包括NaN值”。
data.describe()
现在我们有了描述性统计数据,我们将会检查缺失数据。我们将会仅仅按顺序列出10个有超10%缺失值的特征:
total = data.isnull().sum().sort_values(ascending=False) percent = (data.isnull().sum()/data.isnull().count()).sort_values(ascending=False) missing_data = pd.concat([total, percent], axis=1, keys=['Total', 'Missing Percent']) missing_data['Missing Percent'] = missing_data['Missing Percent'].apply(lambda x: x * 100) missing_data.loc[missing_data['Missing Percent'] > 10][:10]
正如你看到的,对于数据科学家来说在notebook上做探索性数据分析是非常方便和高效的。但是,视觉效果仍然很有总结性。让我们一起看看如何用pandas-profiling来更省力地动态展现数据。
只有通过观察,我们才能学习。
Pandas-profiling,我们的救世主!
概念
Github描述:”从pandas Dataframe生成概况报告(profile)“
Pandas-profiling将所有东西打包形成一个完整的EDA:最常见值、缺失值、相关性、分位数和描述性统计、数据长度等等。有了这些指标,您将很快看到数据的分布和差异。这些信息至关重要,帮你判断数据将来是否有用。
度量指标在互动性HTML报告中呈现。
pandas-profiling在HTML报告中以结构化的方式展现了不同指标。得益于它的交互性,我们能够很容易地从一个特征转换到另外一个并且访问其指标。
gif图片可以打开一下地址查看:
https://miro.medium.com/max/1400/1*48uRp4eMwtQgb4raZRRAtA.gif
一起来看看如何用它:
pip install pandas-profiling
使用我们的FIFA数据集:
import pandas as pd
import pandas_profiling
data_fifa = pd.read_csv('fifa.csv')
profile = data_fifa.profile_report(title='Pandas Profiling Report')
profile.to_file(output_file="fifa_pandas_profiling.html")
在以上的代码中,我们仅仅导入了pandas和pandas-profiling,读取我们的CSV文件并调用profile_report()方法,因为pandas_profiling使用data_fifa.profile_report()来扩展pandas DataFrame。然后,使用.to_file()将ProfileReport对象导出为HTML文件。
大功告成!至此,我们的HTML文件位于该文件夹的根目录:
上图展现了报告的“概述”部分。这部分简略描述了变量的类型,缺失值或者是数据集的大小。
Pandas-profiling使用matplotlib作为图形库和jinja2作为其接口的模板引擎。
作为一个自由职业者,当我必须为客户处理一个新的数据集时,我总是先生成一个pandas profiling,它帮助我吸收数据集的信息。这种做法允许我量化数据集的处理时间。多少特征看起来是正确的?多少包含缺失值?缺失值的百分比是多少?哪些变量互相依赖?
另外,此外,该报告还可以作为展示界面,向客户介绍数据健康度的全局情况。无需在你的Jupyter notebook上展示你的分析,当中还夹杂着代码和图表,该报告按照特征整合了各种度量指标,并且有更友好的界面。我的客户喜欢对委派给我的任务有一个完整的跟踪,也希望定期了解我的进展。通常我使用该报告提供数据的健康状态。这一步之后是更深入的数据分析和可视化。
结论
大数据的潜力还在不断增长。充分利用这一优势意味着公司必须把分析和预测系统并入战略视野中,并且用此来做出更好更快的决策。通常来说我们拿到的数据含有错误和缺失值。为了使工作变得有效率,这些数据必须被分析和处理。这就是数据科学家要做的工作。数据科学家用pandas-profiling可以更省力地产出快速的探索性数据分析报告。这份报告清晰且容易使用, 还可以被任何有点统计基础的人看懂。
有了对数据的全局理解,您就会有一些思路去进一步分析、处理数据或寻找外部数据源以提高数据质量。
我希望您喜欢这个关于pandas-profiling的小介绍!这是我在medium上写的第一篇文章,欢迎评论和改进建议!
原文标题:
A better EDA with Pandas-profiling
原文链接:
https://towardsdatascience.com/a-better-eda-with-pandas-profiling-e842a00e1136
译者简介:廖倩颖,马里兰大学公园分校市场分析专业硕士毕业,本科毕业于上海海洋大学包装工程专业。喜欢音乐、电影和看书,我对于数据科学和数据可视化比较有兴趣,最近在学习CV和机器学习算法基础,希望能与各位大佬交流切磋长姿势。
「完」
转自:数据派THU ;
版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。
更多相关知识请回复:“ 月光宝盒 ”;
数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。
推荐 :用pandas-profiling做出更好的探索性数据分析(附代码)相关推荐
- 独家 | 用pandas-profiling做出更好的探索性数据分析(附代码)
作者:Thomas Gey 翻译:廖倩颖 校对:和中华 本文约2300字,建议阅读5分钟. 探索性数据分析已失势,Pandas-profiling万岁!用更省力的办法完美呈现你的数据. 标签:机器学习 ...
- 数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 吾日三省吾身:为人谋而不忠乎?与朋 ...
- 送书 | 数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
导读:我们介绍过用matplotlib制作图表的一些tips,感兴趣的同学可以戳→纯干货:手把手教你用Python做数据可视化(附代码).matplotlib是一个相当底层的工具.你可以从其基本组件中 ...
- pandas 多折线图_干货:使用pandas和seaborn制作炫酷图表(附代码)
原标题:干货:使用pandas和seaborn制作炫酷图表(附代码) 我们介绍过用matplotlib制作图表的一些tips,感兴趣的同学可以戳→纯干货:手把手教你用Python做数据可视化(附代码) ...
- pandas数据相关性分析_使用Pandas,SciPy和Seaborn进行探索性数据分析
pandas数据相关性分析 In this post we are going to learn to explore data using Python, Pandas, and Seaborn. ...
- 推荐 : 利用深度学习和机器学习预测股票市场(附代码)
来源:AISHWARYA SINGH, 2018年10月25日:翻译:赵雪尧:校对:车前子 本文约8000字,建议阅读15+分钟. 本文介绍了如何运用深度学习法预测股票市场. 简介 预测股市将如何变化 ...
- 独家 | 带你入门比Python更高效的Numpy(附代码)
作者:TIRTHAJYOTI SARKAR 翻译:闫晓雨 校对:Uynix 本文约1790字,建议阅读4分钟. 数据科学家介绍了向量化技巧,简单的数学变化可以通过可迭代对象执行. 简介 向量化技巧对于 ...
- 推荐 :机器学习中的四种分类任务(附代码)
作者:Jason Brownlee 翻译:陈丹 校对:杨毅远 全文约4400字,建议阅读18分钟 本文为大家介绍了机器学习中常见的四种分类任务.分别是二分类.多类别分类.多标签分类.不平衡分类,并 ...
- 【小随笔】你更喜欢哪个红(附代码)
所以更喜欢哪个红呢? 1. 纁(xūn),黄昏的太阳落下地平线时的天色.纁黄作为色名,取自黄昏时的天象,亦是帝王用色.在唐代之前的婚礼中,新郎新娘的衣是玄色,裳为纁色.(嗯,很庄重的颜色) 2. 红, ...
最新文章
- 苹果笔记本适合学python吗_千万别花冤枉钱!大学生买本得这么选!
- [LUOGU] P2330 [SCOI2005]繁忙的都市
- 汇编: and,or逻辑运算指令
- centos6.7一键装机
- 通过实验取证:TCP三次握手的过程
- SHELL相关的特殊字符总结
- 资源权限操作-查询所有资源权限
- 【UVA - 1335】Beijing Guards (贪心,二分)
- 控件事件的发生与页面加载的关系
- Node.js读取mongoDB并输出json数据
- 百度地图jar包冲突,特别是定位包冲突com/baidu/location/Address/$a.class。
- python使用struct处理二进制数据(使用pack和unpack进行打包和解包)
- 如何使用清理垃圾软件优化苹果电脑
- Azure Machine Learning的新特性
- 推荐24款好用的数据可视化分析工具,个个堪称神器!
- FPS游戏:封装外部D3D透视模块
- win10wifi开关自动弹回_win10突然搜不到wifi了,这个开关点不动,点了会自动变回去...
- 鸡兔同笼html语言,java 鸡兔同笼问题详解
- 考研英语 - advanced
- 成都Uber优步司机奖励政策(2月21日)