当前位置: 首页 > article >正文

PCA降维后画图总感觉差点意思?试试用sklearn和matplotlib绘制带置信区间的分类图(附完整代码)

用置信椭圆增强PCA可视化从数学原理到Python实战当你第一次完成PCA降维并绘制出散点图时那种将高维数据压缩到二维平面的成就感令人振奋。但很快你会发现一个尴尬的现实——那些密密麻麻的散点虽然展示了数据分布却难以直观判断不同类别之间的分离程度和稳定性。这正是许多数据分析师在探索性分析(EDA)阶段遇到的典型痛点。传统散点图就像是在黑夜中观察星空你能看到星星的位置却无法判断它们之间的距离和聚集程度。而置信椭圆的引入就像是为这片星空绘制出了星座边界让你一眼就能看出不同类别数据的分布范围、重叠区域以及分离程度。这种可视化方法特别适合处理分类问题能够帮助数据科学家快速评估特征空间中的类别可分性。1. 置信椭圆的数学基础与PCA的协同效应置信椭圆(Confidence Ellipse)本质上是对多元正态分布数据的可视化表达。它基于数据的均值和协方差矩阵描绘出特定置信水平下的数据分布边界。在PCA空间中绘制置信椭圆之所以有意义是因为PCA本质上是一种线性变换它保留了原始数据的协方差结构。协方差矩阵与特征分解的关系PCA通过协方差矩阵的特征分解找到数据的主成分方向置信椭圆的长短轴方向正好对应主成分方向椭圆的大小由特征值决定反映数据在各主成分上的方差import numpy as np from matplotlib.patches import Ellipse def plot_point_cov(points, nstd3, axNone, **kwargs): 计算并绘制数据点的置信椭圆 pos points.mean(axis0) # 椭圆中心(均值) cov np.cov(points, rowvarFalse) # 协方差矩阵 return plot_cov_ellipse(cov, pos, nstd, ax, **kwargs)当我们将PCA与置信椭圆结合使用时实际上是在利用PCA降维后的二维空间中展示原始高维数据的分布特性。这种组合有三大优势降噪聚焦PCA过滤掉次要变异椭圆在主要变异方向上展示数据分布直观比较不同类别椭圆的重叠程度直接反映分类难度稳定性评估椭圆大小反映数据分布的紧凑程度2. 从零构建置信椭圆绘制函数理解置信椭圆的绘制原理比直接调用函数更重要。让我们拆解关键步骤看看如何从数学公式转化为Python代码。椭圆参数计算过程计算数据点的均值(椭圆中心)和协方差矩阵对协方差矩阵进行特征分解得到特征值和特征向量根据置信水平确定缩放系数(nstd)计算椭圆的长短轴长度和旋转角度def plot_cov_ellipse(cov, pos, nstd3, axNone, **kwargs): 绘制协方差椭圆的核心函数 def eigsorted(cov): vals, vecs np.linalg.eigh(cov) order vals.argsort()[::-1] # 降序排列 return vals[order], vecs[:, order] if ax is None: ax plt.gca() vals, vecs eigsorted(cov) theta np.degrees(np.arctan2(*vecs[:,0][::-1])) # 计算椭圆宽度和高度 width, height 2 * nstd * np.sqrt(vals) ellip Ellipse(xypos, widthwidth, heightheight, angletheta, **kwargs) ax.add_artist(ellip) return ellip关键参数解析参数数学含义可视化影响典型取值nstd标准差倍数控制椭圆大小1(68%)、2(95%)、3(99%)alpha透明度重叠区域可见性0.2-0.5color填充颜色类别区分度明显对比色提示nstd2对应95%置信区间是最常用的设置既能展示主要数据分布又不会因范围过大而失去区分度。3. 完整工作流从数据加载到专业可视化让我们以经典的鸢尾花数据集为例展示如何将PCA和置信椭圆融入标准数据分析流程。这个案例虽然简单但包含了真实项目中所需的所有关键步骤。数据准备与预处理from sklearn.datasets import load_iris from sklearn.decomposition import PCA import matplotlib.pyplot as plt import pandas as pd # 加载数据 iris load_iris() X iris.data y iris.target # 转换为分类编码 y_cat pd.Categorical(iris.target_names[y]) y_codes y_cat.codesPCA降维与可视化封装def visualize_with_ellipse(X, y, n_components2, nstd2): 带置信椭圆的PCA可视化完整流程 # PCA降维 pca PCA(n_componentsn_components) X_pca pca.fit_transform(X) # 创建图形 plt.figure(dpi120, figsize(8,6)) colors [#1f77b4, #ff7f0e, #2ca02c] # 绘制每个类别的点和椭圆 for i in range(len(np.unique(y))): class_points X_pca[y i] plt.scatter(class_points[:,0], class_points[:,1], colorcolors[i], labeliris.target_names[i], s50) plot_point_cov(class_points, nstdnstd, alpha0.2, colorcolors[i]) # 添加轴标签和解释方差 plt.xlabel(fPC1 ({pca.explained_variance_ratio_[0]:.1%})) plt.ylabel(fPC2 ({pca.explained_variance_ratio_[1]:.1%})) plt.legend() plt.grid(True, alpha0.3) plt.show()专业图表优化技巧使用HSL颜色空间选择视觉均衡的配色添加网格线提高位置判断精度在轴标签中显示解释方差比例控制点的大小和透明度避免重叠遮挡4. 高级应用与疑难解答掌握了基础用法后让我们探讨一些实际项目中会遇到的高级场景和常见问题。多类别比较场景调整nstd参数突出主要分布区域使用不同透明度区分重叠椭圆添加图例说明置信水平# 比较不同置信水平的效果 for nstd in [1, 1.5, 2]: plot_point_cov(class_points, nstdnstd, alpha0.7/nstd, labelf{nstd}σ (~{int(100*(1-np.exp(-nstd**2/2)))}%))非正态分布数据处理应用核密度估计(KDE)替代协方差矩阵使用百分位数方法确定椭圆边界考虑应用非线性降维方法(t-SNE, UMAP)常见问题排查表问题现象可能原因解决方案椭圆形状异常特征尺度差异大数据标准化点与椭圆不匹配错误的数据子集检查类别标签图形显示不全坐标轴范围不当调整xlim/ylim椭圆方向错误协方差矩阵计算问题检查rowvar参数注意当数据明显偏离正态分布时传统置信椭圆可能产生误导。此时应考虑使用基于实际分位数的边界估计方法。5. 实战案例客户细分分析中的应用让我们看一个真实业务场景中的应用示例。假设我们有一组客户行为数据包含购买频率、平均订单价值、最近购买时间等10个特征需要识别潜在的客户群体。分析步骤数据标准化(Z-score归一化)PCA降维保留85%以上方差绘制带置信椭圆的散点图分析群体重叠与离群点from sklearn.preprocessing import StandardScaler # 数据标准化 scaler StandardScaler() X_scaled scaler.fit_transform(customer_data) # 自适应选择PCA组件 pca PCA(n_components0.85) # 保留85%方差 X_pca pca.fit_transform(X_scaled) # 可视化 visualize_with_ellipse(X_pca, cluster_labels, nstd1.5)在这个案例中置信椭圆清晰展示了三个客户群体的分布特点高价值客户(绿色)分布紧凑与其他群体分离明显潜在流失客户(橙色)分布分散与普通客户有重叠普通客户(蓝色)数量多包含若干离群点这种可视化帮助业务团队快速识别出需要特别关注的客户群体以及可能存在的细分市场机会。

相关文章:

PCA降维后画图总感觉差点意思?试试用sklearn和matplotlib绘制带置信区间的分类图(附完整代码)

用置信椭圆增强PCA可视化:从数学原理到Python实战 当你第一次完成PCA降维并绘制出散点图时,那种将高维数据压缩到二维平面的成就感令人振奋。但很快你会发现一个尴尬的现实——那些密密麻麻的散点虽然展示了数据分布,却难以直观判断不同类别之…...

【大白话说Java面试题 第55题】【JVM篇】第15题:JVM有哪些垃圾收集算法?

📌 PDF:大白话说Java面试题 — 02-JVM篇 第15题:JVM有哪些垃圾收集算法 📚 回答: 核心概念: JVM 的垃圾收集算法是垃圾回收的核心机制,决定了如何高效地标记和回收内存中的垃圾对象。常见的垃…...

如何用ComfyUI-WanVideoWrapper开启你的AI动态内容创作之旅

如何用ComfyUI-WanVideoWrapper开启你的AI动态内容创作之旅 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 在AI视频生成的世界里,你是否曾想象过将文字描述转化为生动的动态画面&am…...

别再只盯着网线了!从双绞线到光纤,聊聊家庭网络布线选材的实战避坑指南

家庭网络布线实战指南:从铜缆到光缆的智能选择 装修新房或升级旧宅网络时,面对琳琅满目的网线规格和新兴的光纤方案,普通消费者往往陷入选择困境。Cat5e、Cat6、Cat7这些数字背后究竟意味着什么?光纤是否真的高不可攀?…...

BookGet 终极指南:一键下载全球50+图书馆古籍资源的完整教程

BookGet 终极指南:一键下载全球50图书馆古籍资源的完整教程 【免费下载链接】bookget bookget 数字古籍图书下载工具。 项目地址: https://gitcode.com/gh_mirrors/bo/bookget 在数字时代,古籍研究者和历史爱好者面临着一个共同挑战:如…...

东南亚1.5亿数字钱包用户如何覆盖?Antom收单解决方案拆解

在东南亚,很多用户第一次完成线上付款可能不是通过信用卡,而是通过自己熟悉的本地电子钱包。从印尼的GoPay、DANA,到菲律宾的GCash,再到泰国的TrueMoney、马来西亚的Touch ‘n Go,电子钱包已经深度融入当地人的日常消费…...

构建多模型备选策略以提升AI应用服务稳定性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 构建多模型备选策略以提升AI应用服务稳定性 在将大模型能力集成到生产应用时,服务可用性是核心考量之一。依赖单一模型…...

FanControl风扇控制:3分钟掌握专业级Windows散热管理终极指南

FanControl风扇控制:3分钟掌握专业级Windows散热管理终极指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tren…...

【新手实用技能指南】OpenClaw 2.7.1 实用 Skill 技能全推荐(含安装包)

OpenClaw 实用 Skill 技能推荐|办公效率全面提升(新手必开) OpenClaw(小龙虾)的核心优势在于Skill 技能扩展,开启适配技能后,AI 可脱离单纯对话模式,自主完成各类电脑操作任务。本文…...

【小白也能懂得操作】解决 OpenClaw 操作电脑受限问题详细指南(含安装包)

OpenClaw 没有电脑操作权限怎么办?完整解决方法 【新人点击链接直接下载openclaw安装包】 OpenClaw 在运行时需要对系统进行文件读写、键鼠模拟、窗口控制等操作,如果出现无法操作电脑、提示没有权限的问题,会直接影响自动化功能使用。本文…...

接口请求状态码 / 错误 极简速查表(前端自用版,好记够用)

一、HTTP 状态码4xx 客户端错误(前端自查)404:接口地址写错、路径不对、后端没这个接口400:请求参数格式错、少参、参数类型不对、传参名不匹配401:未登录 / Token 过期 / Token 没带403:有权限&#xff0c…...

CTFHUB-网站源码泄露实战:从备份文件到Flag获取

1. 源码泄露漏洞的成因与危害 在CTF比赛中,网站源码泄露是一种常见的安全漏洞类型。这种漏洞通常是由于开发人员的疏忽操作导致的,比如将源代码备份文件直接存放在Web可访问目录下。我就遇到过不少这样的情况,有些开发团队为了图方便&#xf…...

DeepMind CEO 访谈:人类离 AGI 只剩 4 年,只差最后 3 块拼图

作者:老纪的技术唠嗑局 楔子 前几天(4 月 29 日),Google DeepMind CEO、2024 年诺贝尔化学奖得主 Demis Hassabis 在一期播客节目《Agents, AGI & The Next Big Scientific Breakthrough》[1] 中,预测 AGI&#…...

2025届最火的AI辅助论文方案横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 深寻作为先进的大型语言模型,在学术论文写作领域显现出明显的应用潜力&#xff…...

FontForge入门指南:从零开始设计你的第一套字体

FontForge入门指南:从零开始设计你的第一套字体 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾想过亲手设计一套属于自己的字体?Fon…...

WeChatMsg:突破性微信聊天记录管理工具 - 从数据碎片到情感记忆的革命

WeChatMsg:突破性微信聊天记录管理工具 - 从数据碎片到情感记忆的革命 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tr…...

LangGraph Agent 开发指南(9~工具 Tools)

一、什么是工具? 1.1 通俗解释 想象你有一个智能助手: 没有工具:你: 帮我查一下北京明天的天气助手: 抱歉,我没有联网功能,无法查询实时天气有工具:你: 帮我查一下北京明天的天气助手: 好的,…...

别再只做静态分析了!用DPABI探索小鼠大脑rs-fMRI的动态功能连接(含Matlab代码片段)

动态功能连接分析:解锁小鼠大脑rs-fMRI的时变奥秘 在神经影像研究领域,静息态功能磁共振成像(rs-fMRI)已成为探索大脑功能组织的强大工具。传统静态分析方法虽然提供了宝贵的基础认知,但大脑本质上是一个动态系统,其功能连接会随时…...

3步解决Beyond Compare 5评估模式错误:密钥生成与完全激活指南

3步解决Beyond Compare 5评估模式错误:密钥生成与完全激活指南 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 当Beyond Compare 5的30天评估期结束后,软件会显示"评…...

高性能JSXBIN解码器架构设计:3大核心技术优势深度解析

高性能JSXBIN解码器架构设计:3大核心技术优势深度解析 【免费下载链接】jsxer A fast and accurate JSXBIN decompiler. 项目地址: https://gitcode.com/gh_mirrors/js/jsxer Jsxer是一个快速且准确的JSXBIN反编译器,专门用于将Adobe ExtendScrip…...

批量转账工具评测:GTokenTool 凭什么成为 Web3 首选?

GTokenTool 是一个支持多链、不涉及代码操作的综合性 Web3 工具箱。它的批量转账功能支持一键分发 ERC-20 和 NFT 代币,特别适合用来高效完成各类代币分发任务,最高能节省 90% 的 Gas 费,且其合约模板已通过多重安全审计。 下面我按照新手最关…...

英雄联盟终极自动化助手:三步掌握LeagueAkari提升游戏体验

英雄联盟终极自动化助手:三步掌握LeagueAkari提升游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkari是一款基于英…...

【基于Xilinx ZYNQ7000与PYNQ的嵌入式AI实践】从零构建实时人脸识别系统

1. 项目背景与核心价值 最近在折腾嵌入式AI项目时,发现Xilinx ZYNQ7000系列开发板真是个宝藏硬件。它独特的PS(处理器系统)PL(可编程逻辑)双架构,配合PYNQ框架的Python生态,让算法部署变得异常灵…...

AUBO机械臂视觉跟踪避坑指南:手眼标定后,如何让末端稳定跟随移动的ArUco码?

AUBO机械臂视觉跟踪避坑指南:手眼标定后如何实现稳定动态跟随 在工业自动化领域,机械臂的视觉跟踪能力直接决定了柔性制造系统的智能化水平。AUBO i5作为国产协作机械臂的代表性产品,其与视觉系统的集成应用越来越广泛。然而,许多…...

LaTeX引用中文文献总出乱码?可能是你的.bib文件编码和编译顺序没搞对

LaTeX中文文献引用乱码全解析:从编码原理到实战排错 当你熬夜赶论文,终于把参考文献列表整理进.bib文件,满心期待地按下编译键——结果引用位置跳出一串问号,参考文献列表变成乱码战场。这种崩溃瞬间,每个用LaTeX写过中…...

Python知乎API开发完全指南:从零构建高效数据采集系统

Python知乎API开发完全指南:从零构建高效数据采集系统 【免费下载链接】zhihu-api Zhihu API for Humans 项目地址: https://gitcode.com/gh_mirrors/zh/zhihu-api 在当今数据驱动的时代,知乎作为中文互联网最大的知识分享平台,其丰富…...

ARMv8浮点运算单元与MVFR寄存器深度解析

1. ARMv8浮点运算单元架构解析在移动计算和嵌入式系统领域,ARMv8架构已经成为事实上的行业标准。作为其核心计算能力的重要组成部分,浮点运算单元(FPU)和高级SIMD(Neon)扩展的性能直接影响着机器学习、图形处理、科学计算等关键应用的执行效率。与x86架构…...

Translumo终极指南:3个简单技巧掌握实时屏幕翻译

Translumo终极指南:3个简单技巧掌握实时屏幕翻译 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否曾在游…...

Power Query处理月度报表,遇到数据有null怎么办?详解【标准】运算与自定义列的计算逻辑差异

Power Query空值处理实战:标准运算与自定义列的计算逻辑深度解析 财务总监Lisa盯着屏幕上满是错误标记的月度汇总报表,眉头紧锁。她刚刚用Power Query合并了六个部门的销售数据,却发现总金额列出现了大量意料之外的null值——这直接导致季度预…...

DockDoor终极指南:快速掌握macOS窗口预览与高效切换

DockDoor终极指南:快速掌握macOS窗口预览与高效切换 【免费下载链接】DockDoor Window peeking, alt-tab and other enhancements for macOS 项目地址: https://gitcode.com/gh_mirrors/do/DockDoor 还在为macOS上繁琐的窗口切换而烦恼吗?DockDoo…...