人工智能时代前沿技术社区

首页 > 热点

Jupyter数据可视化

数据可视化对于提升传达和沟通信息的准确性和高效性具有很大的帮助,为了让大家进一步了解Jupyter数据可视化 ,飞马网于6月21日晚,邀请到

作者:时风 | 2018-06-22 13:08:59

 

数据可视化对于提升传达和沟通信息的准确性和高效性具有很大的帮助,为了让大家进一步了解Jupyter数据可视化 ,飞马网于621日晚,邀请到猎聘网数据挖掘工程李宣成老师为大家分享该领域的内容。

 

以下是这次线上直播的分享实录

 

今天分享的主题是Jupyter数据可视化。

 

一、为什么要做数据可视化

 

在数据分析和数据挖掘工程中,可视化承担的主要任务有两点,一是数据的展示,二是数据的分析。希望借助可视化来传达和沟通信息。

 

为什么要使用可视化的手段,而不用文字、数字的方式,主要是因为我们的研究发现图形的反应解码速度比看到文字和数字的速度快。这里我展示了常见的图形知觉,包括长度、位置、角度、亮度等。这几种图形知觉使用的时候,从相应的准确度、排序方面都是有先后的顺序,所以我们做可视化的时候,我们可以思考一下,我们要怎么来设计这样一个图形,才能准确高效的传达信息。

 

现在进入主题分享。

Jupyter做数据可视化,是在Python下做的。首先介绍一个可视化方案,Pandas在绘制基本图表比较擅长,seaborn绘制统计图表比较方便,这两个工具都是在matplotlib的基础上搭建的,所以有深入的定制化需求,可以跳过这个,直接操作实现目的也可以。

 

二、基本的可视化图表,及其在数据分析中中的应用

先介绍一下最基本的图表,这些都是非常成熟的可视化方案,所以现在在各个地方都可以常看到。这里的四种图表分别是折线图、饼图、柱状图和散点图。他们之间互相有侧重,折线注重数据的变化趋势,饼图主要表现总体与部分的关系,柱状用来对比数据,散点表现相关性。

 

上面几种图表都有简单变形。折线变为面积图,柱状可以堆积数据,散点演变气泡图。这几种图表在报表中使用比较多。

接下来介绍一下在数据分析中比较常用的统计方面的图表,包括箱型图和直方图,前者表现分散情况,后者分析某个数据的分布情况。在可视化过程中,为了增强表现能力,需要对格式做基本调整。

 

三、使用plotly制作交互式可视化图表

 

接下来介绍一下交互式图表,使用的工具是plotly和cuffinks。首先有一个问题,静态图表不是挺好的?为什么要用交互式?

交互式对展示数据关系非常有帮助,另一个就是我们在查看报表的时候会有一些需求的变化,我们想要更仔细看某一段时间的数据或者隐藏一些图例,此时用静态图表就要重新绘制,比较麻烦,而交互式就有比较大的优势。

 

四、可视化在推荐中的作用

 

最后一部分介绍一下在我们的推荐系统中,使用了哪些可视化的方法来进行我们的工作。在推荐系统中,数据可视化应用主要分为两个大块,第一部分主要是数据报表,第二部分是用数据可视化来进行数据探索的工作。

数据报表最常用的是折线图和面积图,主要是因为我们比较注重数据随时间的变化而变化的过程,用Jupyter作数据报表的可视化工作,主要是看中其灵活性。

接下来谈一下在推荐系统中数据可视化应用的另一个方面,即数据探索。在机器学习的工作中,我们在跑模型之前或者说接触模型之前,往往要对自己手上的数据有非常深入的了解,数据每个维度的特征,特征分布情况,各个特征之间的关系有非常深入的有分析。对于单个特征的分析相对是比较简单的,这里分为两种情况,如果是类别特征,一般看看分布情况就差不多,具体到工作实质上来讲,比如我们可以看一看在工作中的男女比例是多少;对于连续的数值特征而言,我们一般会考察一下数值的分布情况,比如看看用户的年龄段的分布或者职位在薪水层次的数量等,这个时候用直方图或密度图,就非常方便。

在特征的数据探索过程中,分析特征之间的关系也是非常重要的,假设考察类别特征和数值特征之间的关系,比如看用户类型是怎么影响他的收入的,这时候就可以考虑用一个箱型图来分析,可以看到每种类型的用户的薪水均值总体的分布情况到底是什么样子。

对于两个连续的特征,做过分析的人第一反应就是回归,这是比较好的思路,散点图可以比较好的表现关系。

一般对于做大数据的人来说,散点图用的不是那么多,原因非常简单,数据太庞大,这时候一般用热力图来进行替代,它会算这一块区域里面点的密度,点分布的密度来代替单个的点。颜色越深,密度越大。

大家都知道,做大数据随便一个模型特征就几十上百个,如果一一分析就非常麻烦,这里有一个很容易偷懒的方法,用一个函数分析多个特征之间的两两关系,这就是多特征分析。

 

最后,给大家送上两张对照表。

 

这四大部分就是关于Jupyter数据可视化的介绍。下面我们一起来看看在最后的答疑过程中,都有些什么问题呢?

 

1.多配案例代码,或者关键代码。

李老师:感谢建议,下次我会尽可能提供能跑起来的示例。

2.类似echart那样

李老师:Jupyter本身是一个web应用,我们平时的使用就是在网页上的。

3.问能结合数据库来用吗?

李老师:搭建jupyter的时候做好相应的配置,就可以用代码读到数据库中的数据,跟写python脚本的时候一样。

4.老师,这些只能用做离线的数据分析可视化吗?

李老师:实时可视化用jupyter应该不太好做,我们都是基于离线数据做的。具体延时其实主要看数据源的延时。

5.问还有其他更多的图标类型和样式吗?

李老师:我总结的常用图表主要就是这些。还有一些复杂图表不够常用制作起来也很复杂,所以就没有介绍

6.问是否可以结合地图做可视化?

李老师:plotly本身有地图可视化的工具,不过纯粹的plotly配置会比较繁琐。

另外也可以看看geoplotlib、pyecharts等其它的包

7.问多特征分析那个片子,如何看出特征间相关或者不相关

李老师:看线性相关就是分别以两个特征为x、y轴绘制数据点,看是不是分布在一条直线附近 

8.老师,您好!jupyter可以做出三维的可视化效果吗?谢谢!

李老师:可以的,plotly+cufflinks有scatter3d、bubble3d等绘图类型,纯plotly、matplotlib都可以画3d图

以上就是本次线上直播的主要内容,相信你对Jupyter数据可视化有了一定的认识。想了解更多更详细内容的小伙伴们,可以关注服务号:FMI飞马网,点击菜单栏飞马直播,即可进行学习。

 

微信图片_20180530151141.jpg