这一新的可视化方法教你优雅地探索相关性

一个古老的诅咒一直萦绕着数据分析:我们用来改进模型的变量越多,那么我们需要的数据就会出现指数级的增长。不过,我们通过关注重要的变量就可以避免欠拟合以及降低收集大量数据的需求。减少输入变量的一种方法是鉴别其对输出变量的影响。变量的相关性有助于这种鉴别:如果相关性较强,那么输入变量的一个显著变化将会导致输出变量同等程度的变化。我们要选择跟模型的输出变量强相关的输入变量,而不是使用所有的可用变量。


然而当输入变量之间存在强相关性时,这里就会出现一个陷阱。假设想预测一下父母的教育水平,我们发现在我们的数据集中的乡间俱乐部会员资格、家庭汽车数量以及度假费用之间有很强的相关性。拥有所有这些奢侈品的家庭都有相同的特征:家庭富有。所以真正的根本关联是受过高等教育的父母通常有较高的收入。我们可以使用家庭收入来预测父母的教育水平,或者使用上面的变量数组。我们称这种相关为“组间相关”。


组间相关是解释性变量之间的相关性。添加足够多的变量时,会引起维度灾难并需要大量的数据。所以有时从一组组间相关的输入变量中选择一个代表变量是有好处的。在本文中我们会利用新创造的可视化方法“太阳系相关图”来探讨相关性和组间相关性,并展示如何轻松地创建一个你自己的太阳系相关图。


把太阳系相关图应用于房价数据


我们可以使用协方差和系数矩阵将太阳系相关图应用于房价数据。尽管这些工具同样有效,但很难理解。幸运的是这些矩阵可以通过精美简洁的可视化展示来探索相关性。


太阳系相关图是为了解决以下两个需求而设计的:

  • 每个输入变量与输出变量的相关性的可视化展示

  • 输入变量的组间相关性


我们来探索一个标准数据集并生成其太阳系相关图。卡内基梅隆大学收集了上世纪九十年代的波士顿房价数据,它是UCI(加利福尼亚大学尔湾分校)机器学习资源库中可免费访问的数据集之一。我们使用这个数据集的目标是利用数据集中的几个输入变量来预测输出变量——房屋价值(MEDV)。


首先我们生成一个相关矩阵:


640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

图1 来源:Stefan Zapf和Christopher Kraushaar

你可以通过搜索MEDV行和TAX列交叉的单元格得到输出变量(房屋价值)和输入变量(税收)的相关性。为了探讨组间相关性,你需要找到绝对值大于某个值(比如0.8)的所有单元格。在复杂的数据集中,搞懂大量的单元格数值需要很长的时间。而太阳系相关图可以帮助你理解这些数值。我们会先从输入变量与输出变量的相关性开始。以下是用太阳系相关图表示的房价信息概要:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

图2 来源:Stefan Zapf和Christopher Kraushaar


输出变量MEDV(波士顿的房价)是太阳系中心的太阳。太阳周围的每一圈都是轨道。行星是输入变量,卫星是与它围绕旋转的行星有相互关联的输入变量。轨道越近的行星跟太阳的相关性越强。例如第二个轨道是代表较低收入邻居(LSTAT)的行星、第三个轨道的行星代表房屋房间的数量(RM)、第四个轨道的行星代表了房屋的大小(PTRATIO)。房屋面积、房间数量以及居民的潜在购买力很大程度上决定了房屋的价值。我们并不是想选一个会让你吃惊的例子。恰恰相反,变量的常识分析会有助于我们认识到太阳系相关图的有效性。


相关性的强度取决于Pearson相关系数的绝对值大小。第一个轨道行星的相关系数绝对值为0.9-1.0。第二轨道行星的相关系数绝对值为0.8-0.9,依此类推。另一个指示是行星的颜色和大小。太阳是一个大圆圈,行星是中等大小的圆圈而卫星是小圆圈。


探索组间相关的输入变量


你可能注意到太阳系里没有太多行星有卫星。我们将多变量组间相关的阈值设置为默认值,即Pearson相关系数必须大于0.8。通常强相关性要Pearson系数高于0.5。设置默认值是非常谨慎的,但您可以在相关性分析中调整该数字。如果我们有相互关联的变量,那么跟输出变量最相关的输入变量作为行星,而其他变量则是它的卫星。这是为了确保行星是最能解释输出变量的输入变量。


在我们的例子中,只有两个变量是强烈地相关以至于几乎相同。并不是每个太阳系里都只有很少的卫星。在大数据环境中,太阳系相关图中通常有更多的变量(且附带有许多卫星)。随着变量数量的增加,太阳系相关图会变得更加重要。


现在我们来看一下输入变量之间的相互关联问题。在第六个绿色的轨道上有一个行星附带一个卫星。行星代表的变量是房地产税率(TAX),卫星代表的是到达高速公路的便利性(RAD)。由于住宅和商业地产的税率不同,行星变量可能是个区分商业区和住宅区的指标。企业通常希望能快速进入高速公路,而私人住宅房主通常希望避免高速公路的噪音和空气污染。一个街区的商业或住宅性质很可能是这些变量相互关联的根本原因。如果是这种情况,那么就需要保留其中一个最能解释对房价影响的变量。


谨慎的意思是符合程序的。数据分析不是机械性或确定性的过程。例如即使是富裕的家庭可能也不会购买跑车,因为他们关心环境污染。因此当我们试图预测家庭财富时,我们可能会观测到跑车变量在一个偏远的轨道上,这表明跑车不是财富的良好指标。但是我们知道拥有跑车是财富的一个很好的指标。没有选择跑车作为财富的指标是因为它是一个偏远的行星,这肯定是错误的策略,因为一个复杂的模型可以调节其关于家庭对环境的态度的影响。相关性是一个很有用的工具,但常常需要权衡结果和你的常识,并相信你的直觉,这其中包含大量的假设检验和贝叶斯分析。


在探索性数据分析(EDA)和建模时,太阳系相关图可以帮助我们通过视觉方式理解相关性。对相关性的理解可以作为我们选择建模变量优先级的基础:低轨道的行星是最好的候选项,下一个是卫星,最后是最外面轨道的行星。


正面和负面的标签


到目前为止,我们已经解释了相关性的强度和重要性。然而,我们也想知道一个相关是正相关还是负相关?正相关意味着一个变量增加时另一个也增加。这是“越多越好”的相关性。我们先来看一下变量RM,它是房间的平均数量。房子的房间越多房价就越高,这表明房子更大以及房子空间更容易分隔。当我们有十个房间而不是两个房间时,房子可能会有更高的价格。这是正相关的本质。你可以看到MEDV和RM之间的为相关性为正,因为标签RM为绿色。


负相关意味着一个变量增加时另一个变量会降低:“少即是多”变量。犯罪率越低,我们的房子的价格会越高,所以我们猜想犯罪的标签是红色的。我们的猜想在太阳系相关图中被证明是正确的。


通过太阳系相关图,我们可以一目了然地看到强度、相关性和相关性的类型。


如何简单地创建一个太阳系相关图


太阳系相关图的创建跟烘烤冷冻曲奇饼面团一样简单。 它是一个可以使用pip安装的Python模块:pip install solar-correlation-map。 然后,尝试从我们的GitHub资源上下载jedi.csv文件。这个文件是自带表头的标准csv文件:


640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

图3 来源:Stefan Zapf和Christopher Kraushaar


这个数据集是关于绝地武士的变量数据:

1. JEDI:变量越大,绝地武士就越靠近光明面

2. GRAMMAR:越高的值表示一个绝地武士有越好的语法

3. GREENESS:变量越高,皮肤越绿

4. IMPLANTS:体内植入物的数量

5. ELEGEN:原力者可以通过的电能的兆焦耳量

6. MIDI-CHLORIANS:血液中的纤原体数量

7. FRIENDS:朋友的数量


请注意在这个名单中的所有人的纤原体数量都是相同的。看来我们选择了相当强大的原力使用者。


然后使用以下命令在你下载的jedi-csv文件所在的目录中运行太阳系相关图:

winterfell:solar-correlation-map daebwae$ python -m solar_correlation_map jedi.csv JEDI


此时在你的屏幕上,会出现一个包含太阳系相关图的窗口:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

图4 来源:Stefan Zapf和Christopher Kraushaar


语法(GRAMMAR)在一个很近的轨道上且标签是红色的,所以语法(GRAMMAR)和绝地武士(Jedi)之间有很强的负相关关系。语法越好这个人就越不可能是个绝地武士。 另外绿色(GREENESS)与不良语法(GRAMMA)相关联,所以两者都可能跟潜在的相同因素相关联。记住所有人都有非常相似的纤原体数量(MIDI-CHLORIANS)。因此它不可能告诉我们有关原力者是否是绝地战士的任何事情。这就是为什么纤原体数量(MIDI-CHLORIANS)在最外面的轨道。


我们可以做许多调整来改进太阳系相关图。这是一个新的工具,我们很高兴听到您关于如何改进初始版本的想法——请随时与我们联系stefan@zapf-consulting.com。


三个步骤实现一个新的可视化


我们已经介绍了太阳系相关图,让我们回顾一下这张图。我们从数据分析问题出发,找出对输出变量影响最大的输入变量。我们可以用相关矩阵的工具来分析这个问题。通过视觉总结这个问题有助于找到相互关联和最有影响力的输入变量。由于可视化跟信息传达是息息相关的,所以我们选择了广大读者都熟悉的太阳系做类比。


以下是实现一个新的可视化的三个步骤:

1.识别数据分析中的问题

2.找到解决这个问题的分析工具

3.使用视觉类比来探索和展现你的结果


古往今来讲故事的人都具有创造性和勇气,数据分析往往就像讲故事一样。同样地,数据科学家可以追随过去讲故事的人的足迹,大胆地探索新的方式来向读者传达数据的故事。


在探索性数据分析中,我们的可视化工具箱在沟通和说服方面发挥着重要的作用。本文介绍了太阳系相关图,并把它作为对这个过程的一个高级抽象,来创建可以解决实际探索性数据分析问题的新型可视化方法。当你在讲述数据的故事时,你可以探索读者未曾看过的新奇的可视化世界。让你的新奇创意吸引读者并帮助扩展数据科学家的视觉类比方法。


640?wx_fmt=png&wxfrom=5&wx_lazy=1

Stefan Zapf是Zapf Consulting的人工智能战略、开发、系统工程和培训的独立顾问。他目前在一家硅谷的创业公司Rainforest Connection担任顾问,这家公司致力于通过使用深度学习和其他人工智能技术来保护热带雨林。他还担任Redheads的独立承包商,致力于德国工业和安全应用。和Christopher一样,Stefan是从另一个职业(法律)转移到的人工智能领域,因为他希望支持我们寻找合法的、符合伦理和政治的框架,使我们跟人工智能的共存成为保护环境、支持科学、帮助我们的工业和促进我们的社会事业的支持力量。


640?wx_fmt=png&wxfrom=5&wx_lazy=1

Christopher Kraushaar担任德国Redheads咨询公司的顾问,该公司致力于软件与需求工程咨询和项目管理咨询。他主要关注于深度学习神经网络,这是一种非常有前途的人工智能技术。像Stefan一样,Christopher决定改变职业成为一名人工智能工程师,目的是快速推进人类的进化。


原文发布时间为:2017-08-13

本文作者:Stefan Zapf等 

本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【新手宝典】一篇博文带萌新建站并了解建站体系流程和对萌新友好的便捷方式,这篇博文很有可能是你的启蒙文

前言 本片博文主要面向于还没接触过web开发的萌新,以及想知道整体流程并且完成建站的萌新;如果你是个大佬,就没必要看下去了。 本篇博文没有难啃的骨头,请各位萌新放心食用。 本篇博文采用通俗易懂的方式讲解,轻松并…

MicroStation V8i简体中文版中文字体乱码解决办法

Bentley (奔特力)是一家软件研发公司,其核心业务是满足负责建造和管理全球基础设施,包括公路、桥梁、机场、摩天大楼、工业厂房和电厂以及公用事业网络等领域专业人士的需求。Bentley 在基础设施资产的整个生命周期内针对不同的职业,包括工程师、建筑师、规划师、承包商、…

惠普ProDesk行业专用台式机U盘不识别解决办法

惠普ProDesk行业专用台式机在使用的过程当中,老出现插入U盘不识别的问题,总是需要在重启的过程中插入U盘才能使用U盘,解决办法是:(1)打开设备管理器,如下图所示:(2&#…

【一】Windows API 零门槛编程指南——MessageBox 基本使用及基础讲解

本篇作为Windows API 系列文章的第一篇,将简要的讲解一下什么是Windows API,Windows API能做些什么,并且尽可能讲解一些新出现的专有名词;本系列博文几乎没有难啃的“专业术语”,尽量让读者能够看明白文章所述内容&…

中国人工智能学会通讯——基于视频的行为识别技术 1.1 什么是行为

今天跟大家分享的主题是基于视频的 行为识别领域研究,主要介绍一下早期 的非深度学习传统方法和近期深度学习 方法取得的结果。深度学习方法带来了 非常大的变革,提升了识别系统的性能, 但这并不意味着我们把传统的东西都要 抛弃,…

Windows 11 22H2 22610 重磅发布!删除水印,多彩任务管理器,文件资源管理器深度优化...

面向 Dev 和 Beta 频道的 Windows 预览体验成员,微软现已发布 Windows 11 22H2 预览版 Build 22610。主要变化1.微软现已更新 Windows 11 任务管理器的进程页面,将随着 Windows 主题颜色而变化。2.微软现已更新锁屏上的电池图标,适配 Windows…

一篇文教你使用python Turtle库画出“精美碎花小清新风格树”快来拿代码!

Turtle库手册可以查询查询 python图形绘制库turtle中文开发文档及示例大全,手册中现有示例,不需要自己动手就可以查看演示。 文章修改记录 修改记录 1:2020年5月17日 12:06:51 由于某些童鞋回复说自己会卡死,请把代码&#xff…

阿里云500服务器内部错误,腾讯云服务器网站不能打开 提示内部错误http 500

满意答案2010qqww2015.11.14采纳率:55% 等级:9已帮助:13114人实服务器内部500错误大概可分为两种,一种是服务器本身权限问题,另一种是程序上不规范或者错误造成。所以要解决此问题需要先弄清楚其到底是哪种原因&…

Hadoop(四)C#操作Hbase

HbaseHbase是一种NoSql模式的数据库,采用了列式存储。而采用了列存储天然具备以下优势:可只查涉及的列,且列可作为索引,相对高效针对某一列的聚合及其方便同一列的数据类型一致,方便压缩同时由于列式存储将不同列分开存…

【二】Windows API 零门槛编程指南——CreateWindow 窗口创建 “万字长篇专业术语全解”

本系列博文几乎没有难啃的“专业术语”,尽量让读者能够看明白文章所述内容,是本系列博文的核心宗旨之一。(由于本人也是由于项目需要,所以才来查阅相关资料,文中出现的错误欢迎指出,共同进步!谢…

一行命令 优化上传速度

本文来自 fir.im 首席吉祥物 TraWor. 最近许多用户反映上传速度慢的一塌糊涂,七牛的上传带宽我想肯定是没问题的,那原因不必多想就剩下 DNS 了。 即便本地网络再快,DNS 服务器给了一个很远的服务器地址也没办法很快的上传。 在终端运行这一行…

go 服务器 源码,LollipopGo开源游戏服务器框架--global服务器源码

大家好,我是彬哥,本节给大家讲下LollipopGov1.0.20190102版本游戏服务器globla服务器,抛砖引玉了,主要是针对Go语言游戏服务器Global服务器处理。package mainimport ("LollipopGo/LollipopGo/conf""LollipopGo/Lo…

ArcGIS导入Sketchup模型

ArcGIS可以与Sketchup、3D Studio Max等三维软件完美进行交互。 ArcGIS可以借助 Import 3D Files 工具支持主流的三维模型导入。支持 3D Studio Max (*.3ds)、VRML and GeoVRML 2.0 (*.wrl)、SketchUp 6.0 (*.skp)、OpenFlight 15.8 (*.flt)、Collaborative Design Activity (C…

剑指offer之两个队列实现栈的问题

1 问题 两个队列实现栈的插入和获取头部元素的功能 2 分析 1)获取头部元素的功能分析: 我们有2个队列,我们知道队列的特点的先进先出,而栈的特点是先进后出,比如我们有数据1,2,3,4,我们分别依次压入队列1&#xff0…

solr的空间查询(查询地图周围坐标)

原文网址:http://www.cnblogs.com/hanhuibing/articles/5680616.html 基于Solr的空间搜索 如果需要对带经纬度的数据进行检索,比如查找当前所在位置附近1000米的酒店,一种简单的方法就是:获取数据库中的所有酒店数据,…

「零门槛多语言 Python/C/C# 通用思想学习系列」第一篇:经典HelloWorld

环境说明 操作系统:Windows7 SP1 编辑器说明: Python:notepadC:devcC sharp(C#):Visual Studio2019 注意: 标点:在编程中要使用英文的标点符号,必须切记数…

服务器2008 系统日志 提示打印机,介绍服务器日志出现打印机错误的解决方法

今天来聊聊一篇关于服务器日志出现打印机错误的解决方法的文章,现在就为大家来简单介绍下服务器日志出现打印机错误的解决方法,希望对各位小伙伴们有所帮助。windows2003日志提示,打印机 ****未知。登录之前,请与管理员联系,安装驱动程序。事…

js 错误/异常处理

为什么80%的码农都做不了架构师?>>> /*** 自定义错误处理*/ onerror handleError; function handleError(desc,page,line){alert("desc:"desc"\n""page:"page"\n""line:"line); } var s null; s.t…

多面体 (Multipatch)

多面体要素是一种可存储面集合的 GIS 对象,能够在数据库中将 3D 对象的边界表示为单个行。面可存储表示要素组成部分的纹理、颜色、透明度和几何信息。面中存储的几何信息可以是三角形、三角扇、三角条带或环,如下所示。 所有多面体都将…

Python turtle库实现基本剖析

有关turtle的相关使用请参考《python图形绘制库turtle中文开发文档及示例大全》 本篇文为turtle库的实现剖析,但不涉及 python 的 TK库。 开始 入口探寻 在turtle中,直走是使用 forward 或者 fd 函数;在本机安装好了 turtle 库后&#xf…