数据分析-Pandas的Andrews曲线可视化解读

news2024/11/15 20:02:19

数据分析-Pandas的Andrews曲线可视化解读

数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律?

数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据,以及巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 NO2数据作为样例。

数据分析

数据分析-Pandas如何转换产生新列

数据分析-Pandas如何统计数据概况

数据分析-Pandas如何轻松处理时间序列数据

数据分析-Pandas如何选择数据子集

数据分析-Pandas如何重塑数据表-CSDN博客

本文用到的样例数据:

Titanic数据

空气质量监测 N O 2 NO_2 NO2数据

样例代码:

源代码参考 Pandas如何重塑数据表

源代码参考 python数据分析-数据表读写到pandas

导入关键模块

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.close("all")

在pandas数据分析中,了解观察多维数据的分布规律是非常重要的。各个维度数据的分布、度量通常用来直观描述数据集的分类位置,作为进一步探查分析的方向。

Andrews Curves 是一种用于可视化多元数据的图形表示方法,它通过将每个观测值转换为一个曲线来展示数据集中的模式。Andrews Curves 最初由 B.W. Andrews 在 1972 年提出,是一种基于函数型数据分析的方法。

Andrews 曲线,是基于余弦级数的傅里叶级数表示法,在这种表示法中,任意的函数都可以表示为一系列余弦函数的线性组合,就是余弦级数的展开,每个函数的振幅和波长都是不同的。常用于信号处理技术。

Andrews Curves 的详细技术解读:

  1. 原理

    Andrews Curves 的基本原理是将多维数据降维到二维空间,通过绘制曲线来展示数据的特征。具体而言,它利用傅里叶级数(Fourier series)将多维数据转化为一系列正弦和余弦函数的组合,从而生成具有独特形状的曲线。这些曲线的形状反映了数据集的内在结构和类别信息。

  2. 数据

    在使用 Andrews Curves 之前,需要准备一组多维数据集。这些数据集可以是不同的类别、组或条件下的观测值。每个数据集都应包含相同数量的观测值,并且每个观测值都应具有相同数量的特征。

  3. 曲线生成

    对于每个数据集,Andrews Curves 算法会计算其傅里叶级数展开式。这个过程涉及到对数据的标准化、傅里叶变换和系数计算等步骤。最终,每个数据集都会被表示为一条曲线,曲线的形状由数据集的内在结构决定。

    具体步骤,假设我们有N个样本,每个样本有d个特征,那么我们可以用如下的公式来表示每个样本的Andrews 曲线:

    F i ( t ) = 1 2 ∑ k = 1 d w i k sin ⁡ ( k t ) + b i F_i(t) = \frac{1}{\sqrt{2}} \sum_{k=1}^{d} w_{ik} \sin(k t) + b_i Fi(t)=2 1k=1dwiksin(kt)+bi

    其中,i是样本的编号,从1到N,t是时间参数,$ w_{ik} $ 和 $ b_i $ 分别表示第 i 个样本的第k个特征的权重和偏移。将这个公式应用于每个样本,就可以得到N条Andrews曲线,每条曲线表示一个样本。

Andrews曲线图画法

pandas画 平行坐标图方法最简单,只要一句语句搞定。相当于雷达图在一条直线上展开。

直接使用 Dataframe,parallel_coordinates函数即可。

from pandas.plotting import andrews_curves

data = pd.read_csv("data/iris.csv")
plt.figure();
andrews_curves(data, "Name");

plt.show()
plt.close("all")

在这里插入图片描述

通过观察整个曲线集合,可以发现相似样本和异常值。Andrews曲线的可视化效果非常好,不仅可以方便的观察多个特征之间的关系,还能够将多个样本之间的差异可视化出来。

Andrews曲线解读

Andrews Curves 是一种用于可视化和比较多个数据集或类别的统计图形工具。这些曲线通过将多维数据映射到二维空间中,使得我们可以直观地观察到不同数据集或类别之间的相似性和差异性。

Andrews Curves 的坐标轴通常不直接表示具体的数值,而是表示时间或序列位置。每个观测值(例如,一个样本或一个数据点)都被映射到一个曲线,这个曲线在横轴(通常是时间或序列位置)上展示了一系列纵坐标值。这些纵坐标值是通过某种函数转换原始数据得到的,通常是基于某种基函数(如傅里叶级数)的系数。

通过将不同数据集的曲线绘制在同一个坐标系中,我们可以直观地比较它们之间的相似性和差异性。如果两条曲线形状相似,意味着它们所代表的数据集在结构上具有较高的相似性;反之,如果曲线形状差异较大,则表明数据集之间存在明显的差异。

解读方法:

  1. 形状识别:观察不同曲线之间的形状差异。相似的形状可能意味着对应的观测值在原始特征空间中有相似的模式或结构。
  2. 聚类分析:通过识别形状相似的曲线,可以对观测值进行聚类。这有助于发现数据集中的潜在结构或类别。
  3. 异常值检测:与其他曲线显著不同的曲线可能表示异常值或离群点。这些观测值在原始特征空间中可能具有与其他观测值显著不同的特征。
  4. 趋势分析:通过观察曲线的变化趋势,可以分析数据集中的整体趋势或周期性模式。例如,如果曲线呈现出周期性变化,这可能意味着原始数据中存在某种周期性结构。

应用场景

Andrews Curves 适用于多种场景,如模式识别、分类和聚类等。在模式识别中,它可以帮助我们识别不同类别之间的差异;在分类任务中,我们可以使用 Andrews Curves 来展示不同类别的特征分布;在聚类分析中,我们可以通过比较聚类结果的 Andrews Curves 来评估聚类的质量。

优缺点

Andrews Curves 的优点在于它可以直观地展示多维数据的结构和类别信息,并且具有较好的可视化效果。然而,它也有一些缺点。

首先,Andrews Curves 对于数据的维度和数量有一定的限制,过高的维度或过多的数据可能导致计算量大增,影响曲线的生成速度。

其次,Andrews Curves 在某些情况下可能无法充分揭示数据的复杂性和差异性,需要结合其他统计方法进行分析。

总之,Andrews Curves 是一种有效的可视化工具,它可以帮助我们直观地比较和分析多维数据集之间的相似性和差异性。通过合理地应用这种方法,我们可以更好地理解和挖掘数据的内在结构,为模式识别、分类和聚类等任务提供有力支持。

注意事项:

  • Andrews Curves 的解释可能受到所选基函数的影响。不同的基函数可能会产生不同的曲线形状,从而影响对数据集的解读。
  • Andrews Curves 主要用于可视化高维数据。当数据维度非常高时,传统的散点图等方法可能无法有效地展示数据中的模式,而 Andrews Curves 通过将每个观测值映射为一个曲线来克服这个问题。
  • 由于 Andrews Curves 是基于函数型数据分析的方法,因此在解释时需要考虑到函数的性质和特征。

总之,Andrews Curves 是一种强大的可视化工具,能够直观地展示高维数据中的模式和结构。通过识别曲线的形状、聚类和趋势等信息,可以更好地理解数据集并发现其中的潜在规律。

以上代码只是一个简单示例,示例代码中的表达式可以根据实际问题进行修改。

后面介绍下其他的展示形式。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

GPT专栏文章:

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

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

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

相关文章

C#,图论与图算法,无向图(Graph)回环(Cycle)的不相交集(disjoint)或并集查找(union find)判别算法与源代码

1 回环(Cycle)的不相交集(disjoint)或并集 不相交集数据结构是一种数据结构,它跟踪划分为多个不相交(非重叠)子集的一组元素。联合查找算法是对此类数据结构执行两个有用操作的算法: 查找:确定特定元素所在的子集。这可用于确定两个元素是否在同一子集中。 并集:将…

Django中使用celery实现异步任务、延时任务、周期定时任务

配置celery 1. 安装以下环境 pip install celery pip install redis pip install eventlet # celery 4.0版本以后不支持在windows运行,还需额外安装eventlet库本文环境为:python3.9.4Django4.2.11celery5.3.6redis5.0.3 2. 配置setting.py文件 在sett…

汽车制造产生的污废水如何处理排放

汽车制造业是一个重要的工业领域,然而,伴随着汽车制造过程中的各种化学反应和材料加工,大量污废水也随之产生。为了保护环境和社会的可持续发展,汽车制造产生的污废水需要得到妥善处理和排放。 首先,针对汽车制造中涉及…

前端vue实现甘特图

1 什么是甘特图 甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。以提出者亨利L甘特先生的名字命名,是项目管理、生产排程、节点管理中非常常见的一个功能。 甘特图内在思想简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的…

01.Linked-List-Basic

1. 链表简介 1.1 链表定义 链表(Linked List):一种线性表数据结构。它使用一组任意的存储单元(可以是连续的,也可以是不连续的),来存储一组具有相同类型的数据。 简单来说,「链表」…

web渗透测试漏洞复现:Elasticsearch未授权漏洞复现

web渗透测试漏洞复现 Elasticsearch未授权漏洞复现Elasticsearch简介Elasticsearch复现Elasticsearch漏洞修复和加固措施 Elasticsearch未授权漏洞复现 Elasticsearch简介 Elasticsearch 是一款 Java 编写的企业级搜索服务,它以分布式多用户能力和全文搜索引擎为特…

功能齐全的免费 IDE Visual Studio 2022 社区版

面向学生、开放源代码和单个开发人员的功能齐全的免费 IDE 下载地址 Visual Studio 2022 社区版 - 下载最新的免费版本 Visual Studio 2022 Community Edition – Download Latest Free Version 准备安装 选择需要安装的程序 安装进行中 使用C学习程序设计相关知识并培养编程…

AI基础知识(3)--神经网络,支持向量机,贝叶斯分类器

1.什么是误差逆传播算法(error BackPropagation,简称BP)? 是一种神经网络学习算法。BP是一个迭代学习算法,在迭代的每一轮使用广义的感知机学习规则对参数进行更新估计。基于梯度下降(gradient descent&am…

安卓RecyclerView简单用法

废话不多说上代码 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http://schem…

LeetCode---388周赛

题目列表 3074. 重新分装苹果 3075. 幸福值最大化的选择方案 3076. 数组中的最短非公共子字符串 3077. K 个不相交子数组的最大能量值 一、重新分装苹果 注意题目中说同一个包裹中的苹果可以分装&#xff0c;那么我们只要关心苹果的总量即可&#xff0c;在根据贪心&#x…

华为汽车业务迎关键节点,长安深蓝加入HI模式,车BU预计今年扭亏

‍编辑 |HiEV 一年之前&#xff0c;同样是在电动汽车百人会的论坛上&#xff0c;余承东在外界对于华为和AITO的质疑声中&#xff0c;第一次公开阐释了华为选择走智选车模式的逻辑。 一年之后&#xff0c;伴随问界M7改款、问界M9上市&#xff0c;华为智选车模式的面貌已经发生了…

让图片适应标签的CSS object-fit属性

在实际的项目运行过程中&#xff0c;可能出现运营人员上传的文件与预期的图片尺寸不同的情况&#xff0c;为了解决这一问题可以使用 object-fit 属性&#xff0c;对嵌入的图像&#xff08;以及其他替代元素&#xff0c;如视频&#xff09;做相应的变化&#xff0c;更加精确地控…

数据结构 二叉树 力扣例题AC——代码以及思路记录

LCR 175. 计算二叉树的深 某公司架构以二叉树形式记录&#xff0c;请返回该公司的层级数。 AC int calculateDepth(struct TreeNode* root) {if (root NULL){return 0;}else{return 1 fmax(calculateDepth(root->left), calculateDepth(root->right));} } 代码思路 …

WPF连接MySqldemo

界面总要管理数据嘛,于是便学习了一下WPF与MySql的基本连接. 运行结果: 环境配置 需要下载安装Mysql,网上教程很多,不详说,创建的工程需要下载或者引入相关的包(MySql.Data) 连接的部分直接看具体的代码即可 xaml代码(只放置了一个按钮和文本框) <Grid><Button x:Name…

Android下的匀速贝塞尔

画世界pro里的画笔功能很炫酷 其画笔配置可以调节流量&#xff0c;密度&#xff0c;色相&#xff0c;饱和度&#xff0c;亮度等。 他的大部分画笔应该是通过一个笔头图片在触摸轨迹上匀速绘制的原理。 这里提供一个匀速贝塞尔的kotlin实现&#xff1a; class EvenBezier {p…

hadoop分布式环境搭建

准备三台centos虚拟机 。&#xff08;master&#xff0c;slave1&#xff0c;slave2&#xff09; (hadoop、jdk文件链接&#xff1a;https://pan.baidu.com/s/1wal1CSF1oO2h4dkSbceODg 提取码&#xff1a;4zra) 前四步可参考hadoop伪分布式环境搭建详解-CSDN博客 1.修改主机名…

pycharm里test connection连接成功,但是无法同步服务器文件,deployment变灰

如果服务器test connection连接成功&#xff0c;但是无法同步文件。 可以尝试以下方式&#xff1a; 点击tools-deployment-browse remonte host&#xff0c;选择要连接的服务器的文件夹 如果能正常显示服务器文件夹&#xff0c;再点击tools-deployment&#xff0c;注意要把要…

B002-springcloud alibaba 微服务环境搭建

目录 创建父工程创建基础模块创建用户微服务创建商品微服务创建订单微服务微服务调用 创建父工程 新建项目springcloud-alibaba&#xff0c;本工程不需要写代码&#xff0c;删除src 导包 <parent><groupId>org.springframework.boot</groupId><artifact…

redis设计与实现(二)——持久化

1. 前言&#xff1a; redis是一个基于内存是键值对数据库&#xff0c;但是并非把数据存入内存就高枕无忧了。为了应对可能出现的进程中止&#xff0c;断电等意外情况&#xff0c;redis提供了持久化功能把数据持久化到硬盘。 2. RDB持久化 2.1. rdb文件的创建 rdb通过创建二…

智能合约 - 部署ERC20

Remix介绍 Remix是一个由以太坊社区开发的在线集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在帮助开发者编写、测试和部署以太坊智能合约。它提供了一个简单易用的界面&#xff0c;使得开发者可以在浏览器中直接进行智能合约的开发&#xff0c;而无需安装任何额外的…