Python数据可视化1.4 可视化如何帮助决策

简介:

1.4 可视化如何帮助决策


数据有多种视觉展示的方式。然而,其中仅有少数方式能够用人们视觉上看得懂且观察到的新模式来刻画数据。数据可视化并不像看起来那么简单;它是一门艺术,且需要很多实践经验。(就像画一幅画,一个人不可能一天之内成为绘画大师,它需要很多实践经验。)

人类感知在数据可视化领域扮演着重要角色。健康人的眼睛具有水平方向大约200度的视野范围(两只眼睛共享大约120度的视野)。大概人类大脑的四分之一涉及可视化处理,这比其他任何感官都要多。在听觉、视觉和嗅觉中,人的视觉占据最多(约为60%)(http://contemplatingmadness.tumblr.com/post/27478393311/10-limits-to-human-perception-and-how-they-shape)。

有效的可视化有助于我们分析理解数据。作者Stephen Few列举出如下8种定量信息(通过可视化),这有助于理解或交流数据(来源:https://www.perceptualedge.com/articles/ie/the_right_ graph.pdf):

时间序列

排序

局部到整体

偏差

频率分布

相关

名义比较

地理或地理空间

科学家已经绘制出人类基因组,这是我们面临将知识转换为可视化以求更好理解的挑战。换句话说,我们可能不得不找到从视觉上呈现人类基因组的新方法,使得普通人也能理解。

1.4.1 可视化适用于哪里

需要强调的是,数据可视化不是科学的可视化。科学可视化处理的数据本身固有一种物理结构,比如流过飞机机翼的空气分子。另一方面,信息可视化处理抽象数据,帮助解决大量数据集问题。挑战之一是确保数据是干净的,而且通过降维提出不必要的冗余信息。

可视化可以用于知识或数据价值增加的任何情况。通过做更多的数据分析和运行更多的算法即可完成。数据分析的形式可能由最简单变得更复杂。

有时,仅仅观察均值、中位数或总和无法获得真正的价值。这是因为这些测度指标仅仅测度了显而易见的东西。有时,一个区域的并集或数值隐藏着需要特别关注的有趣细节。一个经典的例子(Anscombe四重奏)包括简单的统计性质几乎相同的四个数据集,但在图像中却截然不同。如果想了解更多,请见链接:https://en.wikipedia.org/wiki/Anscombe% 27s_quartet。

 

在大多数情况下,数据集的可视化可能有不同的形式,但是总会有一些人能够画出比其他人更清晰的图片来帮助理解。在一些情况下,必须通过多次分析来得到可视化的更好理解,如上图所示。

良好的可视化不仅仅能看到如博物馆展览一样的静态图。我们还可以深入挖掘数据,发现更多变化。(通过循序渐进地查看,收缩和过滤,改变展示标尺,再得到可视化结果)。如由Ben Shneiderman提供的资料(http://www.mat.ucsb.edu/~g.legrady/academic/courses/11w259/schneiderman.pdf)所示,得到有时在同一图中,以同一个标尺展示所有信息非常有难度,而且用户可以通过个人经验更好地理解这些可视化方法。进一步总结,特别是当数据充足时,可视化在组织和提炼数据方面很有用处。

交互式可视化成为一种新的沟通交流形式,它允许用户分析信息以便创建自己对数据的新理解。

1.4.2 如今的数据可视化

虽然很多计算领域旨在用自动化取代人工判断,但是可视化系统是独一无二的,而且明确设计为无法取代人类。事实上,可视化系统是为确保人类在整个参与过程中的积极性而设计的,这是为什么呢?

数据可视化是在各种计算工具帮助下受数据驱动并由人类创造的一门艺术。一位艺术家用工具和材料(像刷子和颜料)绘制一幅画。同样,另一位艺术家尝试在计算工具的帮助下创建数据可视化。可视化可以是美观的,并有助于使事情更清晰;根据不同的创建者,有时会缺乏上述一个或两个特点。

如今,数据的可视化展示方式已超过30种,每一种特定的方式都有它的用处。正因为可视化方法不断发展进步,我们已经不局限于柱状图和饼状图。数据可视化有很多好处,但它们往往因为缺乏理解而有所不足。在一些情形下,同一个图上聚集太多东西往往会使得整个构图纷繁复杂。

有很多呈现数据的方法,但仅有一小撮适用于大多数情况,这将在本章后面的部分详细讲述。在讨论之前,不妨先看看得到好的可视化效果有哪些重要的注意事项。

什么是好的可视化

好的可视化结果有助于用户探索和理解数据,提供价值和深刻的观点。它是有效的、具有视觉吸引力的、可伸缩的而且容易理解的(好的可视化不必太复杂)。通过开展研究和分析工作,可视化是发现数据模式和趋势的核心工具,我们使用其中的任何一种方法都能够回答数据问题。

有效的可视化背后的主要原则是能够突出你想表现的主要问题,根据观众的层次和背景,精确呈现数据并创造出能够清晰传达信息的可视化结果。

举例:下图来自小样本数据源,该数据展示了1970~2012年10门学科中女性和男性被授予学位的百分比(womens-undergrad-degrees.csv和mens-undergrad-degrees.csv来自http://www.knapdata.com/python/):

 

所有数据来源可见http://nces.ed.gov/programs/digest/d11/ tables/dt11_290.asp,包含全部数据集。

尽管不同学科间授予学位的数量彼此没有关系,但有一种简单的方法,用同一个标尺展现所有学科。让我们分析和观察一下,这种展示方式是否可行,如果不可行,我们需要做什么?还有其他展示方式吗?

一方面,所有学科数据展示在同一幅图上形成了一个很好的对比。然而,我们不能直接得到2000年的信息。除非有一种类似于金融股票图的交互式展示模式,否则没有一种简单的方法来确定2000年各学科的学位授予信息。另一方面,同一学科授予男性和女性学位的百分比共占100%;比如,男性在卫生专业被授予学位的百分比占15.2%,女性占84.8%。

我们还有其他可视化方法吗?可以考虑就每年都创建一个气泡图,加入年份因素,通过设置按钮自助切换不同年份的气泡图,完成交互式的可视化图像。

这种可视化方式更适用于该数据。我们也可以用与原始图相同的滑块,通过强调所选年份的数据实现交互。用不同的方法来观察一些图是否比其他图更好,这是一种好习惯。如果数据的数值区间很大(比如,20~200 000),那么我们可能不得不将数值进行对数处理。

我们可以用Python编程绘制气泡图。此外,也可考虑用D3.js的JavaScript语言和RStudio的R语言。读者可以进一步探索其他可视化的选择。

可以用Google Motion图来可视化,在developers.google.com/chart/interactive/docs/gallery/ motionchart?csw=1#Example呈现的交互式图表,这里展示了与棋牌图类似的一个工作示例。下面的气泡图仅展示三年的情况,但是你可以创建另一个图展示所有年份的情况。

 

数据可视化是数据分析后的一个过程。在前面,我们也注意到数据转换、数据分析和数据可视化已被多次尝试。为什么会这样?我们都知道有这样一句名言,“有知识的人给出正确的答案,聪明的人提出正确的问题。”数据分析有助于我们更好地理解数据,因此,数据分析应用于回答有关数据的问题。然而,当数据用不同方式进行视觉展示时,一些新问题就会出现,而且这也是要重复分析和可视化的原因之一。

数据可视化是数据探索的主要途径,而且几乎总是先于或引发数据分析。有很多数据的视觉展示工具,但是用于分析的工具却少之又少。像Julia、R和Python这些编程语言在表现数据分析方面排名靠前,但是就可视化而言,基于D3.js的JavaScript在生成交互式数据可视化方面具有更大的潜力。

与Python相比,学习R语言相对较难。关于这点,Quora上也有一些争论;你可以在网站(https://www.quora.com/Which-is-better-for-data-analysis-R-or-Python)上验证其有效性。现在,Python有很多统计建模和数据分析工具,因此,成为了研究数据科学的一种颇具吸引力的选择。

相关文章
|
2天前
|
Python 数据可视化 索引
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
14 0
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
|
2天前
|
机器学习/深度学习 Python 数据处理
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
13 0
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
|
2天前
|
存储 机器学习/深度学习 数据可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
39 6
|
2天前
|
机器学习/深度学习 数据可视化 算法
PYTHON用决策树分类预测糖尿病和可视化实例
PYTHON用决策树分类预测糖尿病和可视化实例
11 0
|
2天前
|
数据可视化 算法 Python
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
13 0
机器学习/深度学习 算法 Python
15 0
|
2天前
|
机器学习/深度学习 数据采集 供应链
从数据到决策:scikit-learn在业务分析中的应用
【4月更文挑战第17天】本文探讨了scikit-learn在业务分析中的应用,包括数据预处理、分类、回归和聚类模型的构建,以及模型评估与优化。通过使用scikit-learn,企业能有效处理数据、预测趋势、客户细分并制定决策,从而提升经营效率和市场策略。随着机器学习的发展,scikit-learn在业务分析领域的潜力将持续释放,创造更多价值。
|
2天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
11 0
|
2天前
|
BI 开发者 数据格式
Python代码填充数据到word模板中
【4月更文挑战第16天】
|
3天前
|
机器学习/深度学习 算法 Python
python在Scikit-learn中用决策树和随机森林预测NBA获胜者
python在Scikit-learn中用决策树和随机森林预测NBA获胜者

热门文章

最新文章