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

数据分析-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博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在浏览器中使用websocket协议

在浏览器中使用websocket协议 浏览器中提供了 WebSocket 类,我们可以直接使用: new WebSocket((url: string | URL, protocols?: string | string[] | undefined))url:指定连接的 URL,只支持 ws、wss 协议,否则会提…

Transformer总结

1.Transform背景介绍 1.1Transform的优势 相比于之前占领市场的LSTM和GRU模型,Transformer有两个显著的优势: (1)Transform能够使用分布式GPU进行并行训练,提升模型训练效率 (2) 在分析预测…

springboot280基于WEB的旅游推荐系统设计与实现

旅游推荐系统设计与实现 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装旅游推荐系统软件来发挥其高效地信息处理…

Tensorflow2.0 - 链式法则例子

本笔记简单记录链式法则的原理,关于链式法则,本身和高等数学中的链式求导法则是一样的,深度学习中相关资料可以参考这里: 【深度学习之美22】BP算法详解之链式法则 - 知乎10.5 什么是计算图?我们知道, 神经…

SpringBoot(拦截器+文件上传)

文章目录 1.拦截器1.基本介绍2.应用实例1.去掉Thymeleaf案例中使用session进行权限验证的部分2.编写自定义拦截器 LoginInterceptor.java 实现HandlerInterceptor接口的三个方法3.注册拦截器1.第一种方式 配置类直接实现WebMvcConfigurer接口,重写addInterceptors方…

RBAC用户权限控制

用资源和操作绑定角色,角色绑定用户和操作 对应 两两绑定需要中间表来绑定 RestController public class UserAuthApi {Autowiredprivate UserSupport userSupport;Autowiredprivate UserAuthService userAuthService;GetMapping("/user-authorities")pu…

使用Navicat远程连接Linux中的MySQL

一、登录MySQL数据库 mysql -uroot -pXjm123456 二、使用mysql数据库 use mysql; 三、查询user表中包含host的字段 select user,host from user;### 该字段中,localhost表示只允许本机访问,可以将‘localhost’改为‘%’,‘%’表…

汇总全网免费API,持续更新(新闻api、每日一言api、音乐。。。)

Public&FreeAPI 网址:apis.whyta.cn (推荐) UomgAPI 网址:https://api.uomg.com 教书先生 网址:https://api.oioweb.cn/ 山海API https://api.shserve.cn/ 云析API铺 https://api.a20safe.com/ 韩小韩…

小鹏MONA将至:10 - 15万级,用性价比打新势力,用智驾打比亚迪

‍ 作者 |老缅 编辑 |德新 小鹏的全新品牌即将发布,10-15万级也能有高等级智能驾驶。 3月16日在中国电动汽车百人会论坛2024上,小鹏汽车董事长、CEO何小鹏提出:“下一个十年将是智能化的十年。未来18个月内高阶智驾的拐点将到来”。 所谓…

数据机构-2

线性表 概念 顺序表 示例&#xff1a;创建一个存储学生信息的顺序表 表头&#xff08;Tlen总长度&#xff0c; Clen当前长度&#xff09; 函数 #include <seqlist.c> #include <stdio.h> #include <stdlib.h> #include "seqlist.h" #include &…

LeetCode 面试经典150题 274.H指数

题目&#xff1a; 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数” &#xff0c;一名科研人员的 h 指数 是指他&#xff08;她…

类和对象(2)

封装的概念 访问限定符 Java中主要通过类和访问权限来实现封装&#xff1a;类可以将数据以及封装数据的方法结合在一起&#xff0c;更符合人类对事物的认知&#xff0c;而访问权限用来控制方法或者字段能否直接在类外使用。Java中提供了四种访问限定符&#xff1a; 在 Java 中…

柔性纤维将织物带入信息时代

一种用半导体器件嵌入纤维的技术可以产生数百米长的无缺陷股线。用这些线编织的服装提供了对未来可穿戴电子产品的诱人一瞥。 想象一下&#xff0c;一顶可水洗的帽子可以帮助盲人感知交通信号灯的变化&#xff0c;或者一件衣服可以在佩戴者穿过博物馆时充当导游。这些技术可以…

Jingle Bio:产品出海的最重要一课是「重营销轻技术」?

名字: Jingle Bio 开发者 / 团队: Luo Baishun 平台: Web 请简要介绍下这款产品 Jingle Bio 是一款不需要任何编程基础就可以轻松驾驭的个人网站制作工具&#xff0c;你可以使用 Jingle Bio 来展示自己的作品、技能、经历、成就、爱好等&#xff0c;构建自己的个人品牌。 哪个瞬…

蓝桥杯第642题——跳蚱蜢

题目描述 如下图所示&#xff1a; 有 9 只盘子&#xff0c;排成 1 个圆圈。 其中 8 只盘子内装着 8 只蚱蜢&#xff0c;有一个是空盘。 我们把这些蚱蜢顺时针编号为 1 ~ 8。 每只蚱蜢都可以跳到相邻的空盘中&#xff0c; 也可以再用点力&#xff0c;越过一个相邻的蚱蜢跳到空盘…

手撕算法-二叉树的镜像

题目描述 操作给定的二叉树&#xff0c;将其变换为源二叉树的镜像。数据范围&#xff1a;二叉树的节点数 0≤_n_≤1000 &#xff0c; 二叉树每个节点的值 0≤_val_≤1000要求&#xff1a; 空间复杂度 O(n) 。本题也有原地操作&#xff0c;即空间复杂度 O(1) 的解法&#xff0c…

双线性插值

1.线性插值 即是提供一次线性已知点去拟合曲线再求得插值点。 2.原理 两次不同方向的插值&#xff0c;先对已知的四个点的值通过两次一次线性插值获取两个点&#xff0c;再通过刚刚获得的两个点的值再进行一次线性插值&#xff0c;从而根据已知的四个点的值获得一个未知的点…

Layui实现删除及修改后停留在当前页

1、功能概述&#xff1f; 我们在使用layui框架的table显示数据的时候&#xff0c;会经常的使用分页技术&#xff0c;这个我们期望能够期望修改数据能停留在当前页&#xff0c;或者删除数据的时候也能够停留在当前页&#xff0c;这样的用户体验会更好一些&#xff0c;但往往事与…

python 基础知识点(蓝桥杯python科目个人复习计划65)

今日复习内容&#xff1a;做题 例题1&#xff1a;遥远的雪国列车 问题描述&#xff1a; 小蓝和小红今天在房间里一起看完了“雪国列车”这部电影&#xff0c;看完之后他们感触颇深&#xff0c;同时他们想到了这样一道题目&#xff1a; 现在有一个数轴&#xff0c;长度为N&a…