数据可视化(二)|学习笔记

简介: 快速学习数据可视化(二)

开发者学堂课程【高校精品课-北京理工大学-大数据技术导论:数据可视化(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/857/detail/15598


数据可视化(二)

 

数据可视化方法和技术

在这一部分,我们将向大家介绍图可视化技术、多维数据可视化技术、时空数据可视化技术、文本可视化技术以及交互可视化技术。

我们首先来看一下图可视化技术。所谓的图数据就是指的是由节点和节点之间的边构成的数据。那对于图数据最普遍的一种可视化方式就是这样的一个节点连接图。

对于节点连接图来说,它的好处是能够比较直观地反映网络的关系,通过节点连接图能够表现图的总体结构、簇和路径。但是节点的连接图也有它的一个缺陷,就是当我们的数据规模比较大的时候,尤其是当数据规模达到百万以上,那么在节点连接图中,它的节点和边会出现聚集、覆盖和遮挡,这样整个节点图会显得比较复杂。

图片240.png

大家可以看一下对于我们的课件中的两幅图,就是当我们的关系比较密集,或者是数据规模比较复杂的时候,这个图的可视化形式,那么这个形势就比较复杂,用户是没有办法看清这个图的一些信息的。针对这个问题就提出了图的简化技术。

图片239.png

图的简化技术主要有两条技术路线,一种是基于聚类的简化,还有一种就是基于边绑定技术。我们来看一下通过聚类进行图的简化,通过聚类进行图的简化,我们可以减少这个图中点的数目,从而清晰地展示整个图的结构。大家可以看一下课件上的这幅图,就是利用这样的一个基于聚类简化技术,对我们的图进行简化之后的效果,它展示的是自然科学领域的6128种杂志之间的相互引用关系。

在这幅图中我们可以直接的看到哪些杂志是比较重要的,以及这些重要杂志之间的相互引用关系。我们再来看一下介于边绑定的图的简化技术。基于边绑定的这样的一个简化技术主要是用来简化这个图中边的数目 ,我们通过一个例子来说明这个边绑定技术,大家可以看一下我的左图,

图片238.png

左图是我们就是没有进行编绑定之前的效果,那么这个图它展示的是软件模块之间的调用关系,那么其中这个图中红色的部分代表的是软件调用中被调用的软件模块,绿色部分代用的是调用的这样的一个模块,因为软件模块之间的调用关系是非常复杂的,所以大家可以看到那么这样的一个边就基本上形成了一个毛球的状态,看不清楚调用关系,那么经过这样的一个边绑定,我们主要就是根据边的分布来计算这样的一个网络沿着网络的骨架把相似的线进行进行绑定,形成线素。

那么我们的右边这幅图就是经过了边简化技术处理之后的效果。大家可以看到,通过这样的一幅图,能够非常清晰地看到软件和软件模块之间的调用关系。

除了使用节点连接图对图数据体可视化,我们还可以运用另外一种形式,就是叫做邻接矩阵的形式。那么对于一个具有N个结点的图来说,我们要使用N乘N的一个矩阵,可以对他进行可视化表达。那么在这样的一个邻接矩阵中,它的任意一个点也就是ig的位置代表的是第i个节点和第这个节点之间的关系,用相邻矩阵对我们的图数据进行可视化,它的好处是这种可视化的视觉伸缩效果是比较强的,对于一些关系比较密集的图那么它的可视化效果是比较好的,

但是它也存在缺点就是这种方式进行可视化它的抽象性是比较强的,那么难以看出这个图的一些结构关系,并且是不能够实现轨迹跟踪的。

 图片237.png

除了以上两种方式,我们还可以采用GMAP 这种形式对图数据进行可视化,它是用平面代表实体,用平面的联通代表实体关系的一种地图,在每一个平面里面又包含了各个节点以及各个节点的关系,所以说使用这样的一个 GMAP 的可视化方式,是非常适合表达这样的一个图数据中的集合结构关系。

我们再来看一下对多维数据的可视化表达方式。

图片236.png

所谓的多维数据指的就是这个数据它是具有多个维度特征的,那么我们对于一维数据是可以用直方图或者是饼图进行表达的,对二维数据是可以用散点图进行表达,对于我们的三维数据是可以用一个数据立方体的形式进行可视化表达,但是我们的数据维度如果超过三维以上,那这个时候我们用什么样的形式对他进行可视化表达?

我们来看一下多维数据的可视化表达方法。那么对于多维数据,最常见的一种可视化表达方法就是使用平行坐标系。

图片235.png

那么平行坐标系是以 N 条平行的线为背景,每条线代表的是这个数据的一个属性特征。一个在高维空间中的点就会表示为一条在 N 条平行坐标轴的折线,那么其中在第 K 个坐标轴上的位置就代表的是这个点在第 K 为上的值。

我们在这个课件中给出了一个例子,我们课件的右边就是大家比较熟悉的 race 数据集,就是燕尾花数据集,那么这个数据集呢,它主要是由四个属性特征以及一个类别特征。那对于这四个属性,我们在我们的平行坐标轴中是可以用四条平行的线来代表他,那么分别代表着他的是花萼的长度,花瓣的长度,花萼的宽度和花瓣的宽度。那么每一条数据在这个图中就代表的是一条折线,那么其中它的类别属性在这个图中是用不同的颜色对它进行进行区分,这个就是平行坐标系。除了平行坐标系,我们还可以使用散点图矩阵对我们的多维坐标进行可视化。

图片234.png

如果这样的一个数据,它是具有 N 为特征的,那么我们需要使用一个 N 乘 N 的散点图矩阵对他进行可视化。

在这样的一个散点图矩阵中的每一个散点图表示的是每一对维度之间的相互关系。那么对于散点图矩阵来说,它的优势是能够非常直观的显示两个维度之间的相关性,但是它的缺点是散点图的数目与数据维度的平方是成正比的。除此之外,对多维数据我们还可以使用径向轴的方式进行可视化。

图片233.png 

径向轴其实就是平行坐标系的一种变形,它是用从圆心出发的各条轴来代表数据的各个属性,然后依然是用各个轴上面的折线来代表一条数据。

比如说这幅图就是对我们的燕尾花数据集的四个特征属性用雷达图进行表示。那么对于金象轴这种可视化的表示方式,它有很多版本,雷达图是其中的一种,还有其余的,比如说像心脏图等等。

那么以上是我们介绍了几种对多维数据可视化的表达方法但是当数据维度如果非常高的时候,那么可能以上几种方法就失效了,这个时候我们就需要用到多维数据中一种非常重要的方法,就是叫做降维,所谓的降维就是要使用线性或者是非线性的变化把一个高维空间中的向量把它投射到一个低维的空间中去,比如说我们的原始数据x它是在原来是一个 n 维空间中的点,通过降低维度之后,我们可以把它投射到一个k维空间中,其中这个 k 是要远远小于它的原始的维度 n 的,那么常用的降维方法有很多,比如主成分分析法 PCA,线性判别分析法 LDA,多维定标法 MDS以及因子分析法 fe。

 图片232.png

主要对其中的 LDA 方法做一个简单的介绍。那么 PC 方法主要就是要找到一个低维的空间,使得原来在高维空间中的点投射到这个低维空间的时候,信息的损失最小。那么其中变换后的新空间中的这样的一个样本Z,他和原始空间中的这样的一个点 X 之间是有一个线性转换关系的,也就是 Z 是等于 W 的转正乘以 X,那么我们把W称之为变换矩阵。下面这个图就展示的是通过 PCA,我们可以把一个二维空间的数据投射到一个一维空间,可以把一个三维空间的数据投射到二维空间。那么和 PC 方法非常类似的,我们把它称之为叫做线性判别分析方法 LDA,LDA 依然也是找到一个低位空间,使得 X 投影到这个低维空间的时候,它的类别信息能够很好的被区分。那么因为在用 LDA 做降维的时候,它使用了这样的一个数据的类别信息。所以把 LDA 称之为是一种有监督的降维方法,而在 PCA 进行降维的时候呢,它是不需要这样的一些类别信息的,仅仅是靠数据本身来进行,所以把 PCA 称之为是一种叫做无监督的降维方法。那除了 LDA 和 PC2种方法之外,我们使用的比较多的还有一种方法是叫做 MDS,

图片231.png

那么 MDS 称之为叫做多维定标,就是指的是给定 N 点的每对点之间的成对距离,使得这个找到一个低维的映射,使得在低维空间中的距离尽量的保持在高维空间中的距离。那么最典型的应用就是我们可以把一个球面上的两个点投射到了我们一个二维平面上的点。以上就是我们对我们的图数据和多维数据的可视化的一些方法的介绍。

相关文章
|
9月前
|
域名解析 网络协议 Ubuntu
dig 命令深入学习
dig 命令(Domain Information Groper)是一个用于查询 DNS (域名系统)记录的强大工具,它提供了详细的DNS信息,主要用于帮助用户诊断、调试和验证与域名解析相关的问题。
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
机器学习/深度学习 自动驾驶 算法
深度学习中的图像识别技术及其在自动驾驶中的应用
【10月更文挑战第4天】本文深入探讨了深度学习在图像识别领域的应用,并特别关注其在自动驾驶系统中的关键作用。文章首先介绍了深度学习的基本概念和工作原理,随后通过一个代码示例展示了如何利用深度学习进行图像分类。接着,文章详细讨论了图像识别技术在自动驾驶中的具体应用,包括物体检测、场景理解和决策制定等方面。最后,文章分析了当前自动驾驶技术面临的挑战和未来的发展趋势。
246 4
|
机器学习/深度学习 数据采集 人工智能
ERP系统中的人工智能与机器学习应用:提升企业智能化管理
【7月更文挑战第29天】 ERP系统中的人工智能与机器学习应用:提升企业智能化管理
1948 0
|
Ubuntu
Ubuntu 22.04上构建libvirt源码错误解决
Ubuntu 22.04上构建libvirt源码错误解决
617 1
|
存储 缓存 Java
Java交换map的key和value值
在Java中,直接交换`Map`的key和value是不允许的,因为key是唯一的且不可变。不过,可以通过创建新`Map`实现交换:将原`Map`的value作为新key,key作为新value。注意,如果原`Map`有重复value或null,需额外处理。以下是一个代码示例,展示了如何在value唯一且非null的情况下交换`Map`的key和value。对于重复value或null值的情况,可以使用`List`存储多个key或忽略null值。在实际应用中,`Map`常用于缓存、配置管理、数据库结果映射等多种场景。
293 1
|
安全 Linux 测试技术
深入Kali Linux:高级渗透测试技术详解
深入Kali Linux:高级渗透测试技术详解
795 0
|
编译器 开发工具 C语言
Keil软件使用及流水灯设计介绍
Keil软件是一种常用的嵌入式系统开发工具,主要用于C51单片机的编程和调试。下面将介绍Keil软件的使用和流水灯设计。 一、Keil软件的安装和配置 1. 下载Keil软件:首先需要从Keil官网下载Keil软件的安装包,然后运行安装包进行安装。 2. 配置目标设备:安装完成后,需要配置目标设备,选择对应的单片机型号和开发板。 3. 配置编译器:在Keil软件中,可以选择使用C语言编译器或汇编语言编译器,根据需要进行配置。 4. 配置调试器:如果需要进行调试,还需要配置调试器,选择对应的调试器型号和连接方式。 二、Keil软件的界面和功能介绍 1. 工程管理器:Keil软件的工
406 0
|
Java API Android开发
【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
1710 0
|
存储 关系型数据库 MySQL
知识笔记(四十八)———mysql的优缺点
知识笔记(四十八)———mysql的优缺点
1687 0