大数据可视化中容易犯的错误翻译

Common Plotting Pitfalls that get Worse with large data说在前面在看"Mastering Python for Finance"这本书的时候,作者推荐了一个收集有趣的Jupyter notebook的集合,其中涵盖的门类非常广。 其中由James A. Bednar撰写的一篇文章,介绍在可视化大量数据的时候容易犯的错误。利用Jupyter notebook直观而且容易分享和展示的特点,Bednar直观地讨论了这些很容易掉入,但不容易意识到的陷阱。 原文链接 在利用可视化(Visualization)方法来从数据(通常极大量,以至于我们不可能一个个地分析每个数据点)中获取信息的过程中,我们可能会沉浸在绘制的细节中,从而过快地下结论,而不对这些结论产生应有的怀疑。但是事实上,我们往往因为某些绘图参数的偶然性,进入到一些陷阱中,从而产生了错误的观察和错误的结论。了解这些常见的陷阱,合理地怀疑和推敲自己的结论,才能挖掘数据中的金子,而不是垃圾。 原文开始我们会在这篇文章中讨论: Overplotting(过密绘图)Oversaturation(过饱和)Undersampling(采样不足)Undersaturation(欠饱和)Underutilized range(未充分利用灰度范围)Nonuniform colormapping(非均匀颜色映射),以及如何减轻或者消除他们。 依赖安装我们将会需要这些包,可以运行下面的命令安装: conda install -c bokeh -c ioam holoviews colorcet matplotlib scikit-image1. Overplotting我们首先将来自两个不同来源的数据集绘制在同一坐标系下--A图中的点和B图中的点。出人意料的是,先画A还是先画B,我们看到的结果非常不同。 def blues_reds(offset=0.5,pts=300): blues = (np.random.normal( offset,size=pts), np.random.normal( offset,size=pts), -1*np.ones((pts))) reds = (np.random.normal(-offset,size=pts), np.random.normal(-offset,size=pts), 1*np.ones((pts))) return hv.Points(blues, vdims=['c']), hv.Points(reds, vdims=['c'])blues,reds = blues_reds()blues + reds + reds*blues + blues*reds C图和D图显示的是同一组数据,但是给人截然不同的印象:在C图中蓝色的点显得更多,而在D图中红色的点显得更多。单凭C图或者D图,我们就会得到错误的结论。实际上两种点同样多,这里在作祟的是occlusion(闭塞)。 一个数据集被另一个数据集闭塞时,叫做overplotting(过密绘图,没有找到翻译,译者自己创造的)或者overdrawing,任何时候我们将一个点或者一条线叠加在另一个点或者另一条线上,都可能发生。不仅是散点图,曲线图、3D曲面图等等都会出现occlusion。 2. Oversaturation可以通过减小alpha值来减轻过密绘图。alpha是绘图软件上提供的控制透明度的参数,例如:如果alpha是0.1,当十个数据点重合的时候,涂色达到饱和。这样以来,绘图顺序的影响会变小,但是看清每个点变得更加困难。 ...

May 31, 2019 · 2 min · jiezi

15个Python库让你学习数据科学更轻松

来源 | 愿码(ChainDesk.CN)内容编辑愿码Slogan | 连接每个程序员的故事网站 | http://chaindesk.cn愿码愿景 | 打造全学科IT系统免费课程,助力小白用户、初级工程师0成本免费系统学习、低成本进阶,帮助BAT一线资深工程师成长并利用自身优势创造睡后收入。官方公众号 | 愿码 | 愿码服务号 | 区块链部落免费加入愿码全思维工程师社群 | 任一公众号回复“愿码”两个字获取入群二维码本文阅读时长:10min 在过去的五年中,Python已成为数据科学界的一大热门 。因此,它正在慢慢接管R--“统计学术语” - 作为许多工具的首选工具。最近发布的Stack Overflow Developer Survey 2018表明, Python是下一个重要的编程语言,它在业界的应用将不断增加。Python的崛起令人震惊,但并不令人惊讶。它的通用性,再加上效率和易用性,使您可以更轻松地构建数据科学。您还可以使用丰富的Python库来处理所有与数据科学相关的任务,从基本的Web抓取到训练深度学习模型等复杂的任务 。在本文中,我们将介绍一些最流行和最广泛使用的Python库及其应用领域。 网页抓取在网络浏览器的帮助下,网络抓取是使用HTTP协议从网络上流行的信息提取技术。两种最常用的Web抓取工具是基于Python的。 1.Beautiful SoupBeautiful Soup是一个流行的Python库,用于从HTML和XML文件中提取信息。它提供了一种独特,简便的方法来导航,搜索和修改已分析的数据,从而可以节省您不必要的工作时间。它适用于Python的两个版本,即2.7和3.x,并且非常易于使用。 愿码提示Beautiful Soup网址:https://pypi.org/project/beau...2.ScrapyScrapy是一个用Python编写的免费开源框架。虽然开发用于Web抓取,但它也可以用作常规Web爬虫程序并使用不同的API提取数据。遵循Django等框架的“不要重复自己”的理念 ,Scrapy包含一组自包含的爬虫,每个爬虫都遵循具体目标的特定指令。 愿码提示Scrapy网址:https://scrapy.org/ 科学计算与数据分析可以说是最常见的数据科学任务,通过为数据处理和分析以及数学计算提供独特的库,从而证明了对数据科学家来说非常有价值。 3.NumPyNumPy是Python中最受欢迎的科学计算库,它是用于科学计算的更大的Python堆栈的一部分,称为SciPy(下面讨论)。除了在线性代数和其他数学函数中的用途之外,它还可以用作具有任意数据类型的通用数据的多维容器或数组。 NumPy集成了无缝语言(如C / C ++),并且由于它支持多种数据类型,因此它也适用于各种数据库。 愿码提示NumPy网址:http://www.numpy.org/ 4.SciPySciPy是一个基于Python的框架,包含用于数学,科学计算和数据分析的开源库 。SciPy库是用于高级数学计算,统计等的算法和工具的集合。SciPy堆栈包含以下库:· NumPy - 用于数值计算的Python包· SciPy - SciPy堆栈的核心软件包之一,用于信号处理,优化和高级统计· matplotlib - 用于数据可视化的流行Python库· SymPy - 符号数学和代数库· pandas - 用于数据操作和分析的Python库· iPython - 用于运行基于Python的代码的交互式控制台 愿码提示SciPy网址:https://www.scipy.org/index.html 5.Pandaspandas是一个广泛使用的Python包,提供有效数据操作和分析的数据结构和工具。它是一种广泛使用的定量分析工具,在算法交易和风险分析中发现了很多应用。拥有庞大的专用用户社区,定期更新pandas以获得新的API更改,性能更新和错误修复。 愿码提示pandas网址:https://pandas.pydata.org/ 机器学习和深度学习Python在实现高效的机器学习和深度学习模型方面胜过所有其他语言 ,仅凭借其多样化,有效且易于使用的库集。在本节中,我们将看到一些最流行和最常用的Python库,用于机器学习和深度学习: 6.Scikit-learnscikit-learn是用于数据挖掘,分析和机器学习的最流行的Python库。它使用NumPy,SciPy和matplotlib的功能构建,并且在商业上可用。您可以使用scikit-learn实现各种机器学习技术,例如分类,回归,集群等且非常易于安装。 愿码提示scikit-learn网址:https://scikit-learn.org/stable/ 7.TensorflowTensorflow是一个基于Python的框架,用于使用多个CPU或GPU进行有效的机器学习和深度学习。由Google支持,最初由Google Brain的研究团队开发,是世界上广泛使用的机器智能框架。它得到了大量活跃用户的支持,并且正在广泛应用于各种工业领域的先进机器学习,从制造和零售到医疗保健和智能汽车。 愿码提示Tensorflow网址:https://www.tensorflow.org/ 8.KerasKeras是一个基于Python的神经网络API,提供了一个简化的界面,可以轻松地训练和部署您的深度学习模型。它支持各种深度学习框架,如Tensorflow,Deeplearning4j和CNTK且非常人性化,遵循模块化方法,支持基于CPU和GPU的计算。如果您想让深度学习过程更简单有效,那么这个库绝对值得一试! 愿码提示Keras网址:https://keras.io/ 9.PyTorchPyTorch是Python深度学习系列的最新成员之一,它是一个具有强大GPU支持的神经网络建模库。尽管仍处于测试阶段,但该项目得到了Facebook和Twitter等大人物的支持。PyTorch建立在另一个流行的深度库Torch的架构之上,以实现更高效的张量计算和动态神经网络的实现。 愿码提示PyTorch网址:https://pytorch.org/ 自然语言处理自然语言处理涉及设计处理,解释和分析人类语言,口头或书面的系统。Python提供了独特的库,用于执行各种任务,例如使用结构化和非结构化文本,预测分析等等。 10.NLTKNLTK是一个流行的语言处理Python库。它为各种NLP任务提供了易于使用的界面,例如文本分类,标记化,文本解析,语义推理等等。它是一个开源的,社区驱动的项目,并且支持Python 2和Python 3。 ...

April 23, 2019 · 1 min · jiezi