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

别再死记硬背了!用主成分分析(PCA)的实战案例,反向理解线性代数里的谱分解

从鸢尾花降维实战逆向拆解为什么PCA中的谱分解是线性代数的精髓记得第一次用PCA处理鸢尾花数据集时盯着sklearn输出的三维散点图发愣——明明原始数据有4个特征萼片长度、萼片宽度、花瓣长度、花瓣宽度怎么经过PCA就变成了3个相互垂直的新特征更神奇的是这些新特征居然能保留原始数据90%以上的信息。直到某天深夜调试代码时突然意识到pca.components_输出的不就是特征向量吗而pca.explained_variance_对应的正是特征值这个顿悟时刻让我明白PCA的本质就是协方差矩阵的谱分解。1. 先看结果用PCA给鸢尾花数据瘦身1.1 加载数据与初步观察让我们从熟悉的鸢尾花数据集开始。这个经典数据集包含150个样本每个样本有4个形态特征from sklearn.datasets import load_iris import pandas as pd iris load_iris() df pd.DataFrame(iris.data, columnsiris.feature_names) print(df.describe().loc[[mean, std]])输出显示各特征的量纲差异明显sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) mean 5.843333 3.057333 3.758000 1.199333 std 0.828066 0.435866 1.765298 0.7622381.2 PCA降维实战直接使用sklearn的PCA进行降维from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA import matplotlib.pyplot as plt # 标准化数据 scaler StandardScaler() X_scaled scaler.fit_transform(df) # 执行PCA pca PCA(n_components3) X_pca pca.fit_transform(X_scaled) # 可视化 fig plt.figure(figsize(10, 7)) ax fig.add_subplot(111, projection3d) scatter ax.scatter(X_pca[:,0], X_pca[:,1], X_pca[:,2], ciris.target) plt.colorbar(scatter) ax.set_xlabel(PC1 (73%)) ax.set_ylabel(PC2 (22%)) ax.set_zlabel(PC3 (3%)) plt.show()此时控制台会输出关键信息Explained variance ratio: [0.72962445 0.22850762 0.03668922]2. 逆向工程PCA背后的数学魔法2.1 协方差矩阵的隐藏结构PCA的核心是计算数据的协方差矩阵。对于标准化后的数据协方差矩阵就是相关系数矩阵import numpy as np cov_matrix np.cov(X_scaled.T) print(协方差矩阵:\n, np.round(cov_matrix, 2))这个对称矩阵的神秘之处在于——它的特征向量正好定义了数据变化最大的方向。让我们手动计算eigenvalues, eigenvectors np.linalg.eig(cov_matrix) print(特征值:, np.round(eigenvalues, 4)) print(特征向量:\n, np.round(eigenvectors, 4))你会惊讶地发现这些特征值就是之前pca.explained_variance_的输出而特征向量就是pca.components_2.2 特征值的物理意义为什么特征值能代表重要性来看这个实验total_variance sum(eigenvalues) for i, val in enumerate(sorted(eigenvalues, reverseTrue)): print(fPC{i1}贡献率: {val/total_variance:.1%})输出与sklearn完全一致。这是因为在谱分解中特征值的大小决定了对应特征向量方向的方差贡献度。数学上可以证明PCA就是在寻找使投影方差最大化的正交基。3. 深入谱分解线性代数的几何视角3.1 矩阵的指纹谱分解将一个对称矩阵A分解为A QΛQᵀ其中Λ是对角矩阵对角线元素是特征值Q的列是对应的特征向量用鸢尾花数据验证Lambda np.diag(eigenvalues) reconstructed eigenvectors Lambda eigenvectors.T print(重建误差:, np.linalg.norm(cov_matrix - reconstructed))3.2 特征向量的正交性对称矩阵的特征向量天然正交这解释了PCA成分的独立性for i in range(len(eigenvectors)): for j in range(i1, len(eigenvectors)): dot_product np.dot(eigenvectors[:,i], eigenvectors[:,j]) print(f特征向量{i1}与{j1}的点积: {dot_product:.2e})4. 从理论到实践谱分解的工程价值4.1 数据压缩的数学基础在图像处理中JPEG压缩本质上也是谱分解的应用。我们可以用PCA模拟类似效果from sklearn.datasets import load_digits digits load_digits() X digits.data / 16.0 # 归一化到0-1 pca PCA(0.95) # 保留95%方差 X_reduced pca.fit_transform(X) X_reconstructed pca.inverse_transform(X_reduced) # 显示原始与重建图像对比 fig, axes plt.subplots(2, 10, figsize(10, 2)) for i in range(10): axes[0,i].imshow(X[i].reshape(8,8), cmapgray) axes[1,i].imshow(X_reconstructed[i].reshape(8,8), cmapgray)4.2 特征选择的科学依据谱分解为特征重要性排序提供了理论保证。在鸢尾花案例中我们可以基于特征值确定保留维度cumulative np.cumsum(eigenvalues) / sum(eigenvalues) plt.plot(range(1,5), cumulative, markero) plt.axhline(0.95, colorred, linestyle--) plt.xlabel(主成分数量) plt.ylabel(累计解释方差)5. 避坑指南PCA实战中的常见误区5.1 必须标准化数据比较标准化前后的差异pca_raw PCA().fit(df) pca_scaled PCA().fit(X_scaled) plt.figure(figsize(10,4)) plt.subplot(121) plt.bar(range(4), pca_raw.explained_variance_ratio_) plt.title(未标准化) plt.subplot(122) plt.bar(range(4), pca_scaled.explained_variance_ratio_) plt.title(标准化后)5.2 解释性陷阱主成分是原始特征的线性组合有时需要旋转提高可解释性from sklearn.decomposition import PCA, FactorAnalysis fa FactorAnalysis(n_components3, rotationvarimax) X_fa fa.fit_transform(X_scaled) print(旋转后的成分矩阵:\n, np.round(fa.components_, 2))6. 扩展思考谱分解的现代应用6.1 推荐系统中的潜在语义分析在协同过滤算法中奇异值分解SVD——谱分解的推广形式能发现用户-物品矩阵的潜在因素from scipy.sparse.linalg import svds ratings np.random.randint(1,6, size(100,50)) # 模拟用户-物品矩阵 U, sigma, Vt svds(ratings, k5) print(潜在特征维度:, sigma.shape)6.2 神经网络中的初始化策略现代深度学习经常使用谱归一化Spectral Normalization稳定训练import torch weight torch.randn(256, 512, requires_gradTrue) with torch.no_grad(): u torch.randn(512) for _ in range(5): # 幂迭代 v weight u u weight.T v spectral_norm (u.T weight v).sqrt() weight.div_(spectral_norm)

相关文章:

别再死记硬背了!用主成分分析(PCA)的实战案例,反向理解线性代数里的谱分解

从鸢尾花降维实战逆向拆解:为什么PCA中的谱分解是线性代数的精髓? 记得第一次用PCA处理鸢尾花数据集时,盯着sklearn输出的三维散点图发愣——明明原始数据有4个特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度)&#xf…...

AI Agent:从定义到分类,带你深入理解智能体的核心奥秘!

本文首先明确了AI Agent的定义,即结合深度学习技术(尤其是大模型技术)并能执行任务的下游应用。接着,文章列举了AI Agent的实际案例,如美团小美、AI Coding工具、SlidevAI和deepwiki,并区分了哪些应用不属于…...

xhs:突破小红书数据采集壁垒的5个实战方法

xhs:突破小红书数据采集壁垒的5个实战方法 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 从反爬困境到合规采集的完整解决方案 在数字化营销与市场研究领域&am…...

思源宋体TTF:开源中文字体的技术突破与商业价值重构

思源宋体TTF:开源中文字体的技术突破与商业价值重构 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在数字化内容爆炸的今天,中文字体的选择直接影响信息传递的…...

VMware虚拟机体验FLUX.1:Windows系统免环境配置方案

VMware虚拟机体验FLUX.1:Windows系统免环境配置方案 想快速体验最新的AI绘画技术却苦于环境配置?FLUX.1作为当前最强的开源文生图模型之一,让很多Windows用户望而却步。本文介绍一种零门槛的解决方案——通过VMware虚拟机一键体验&#xff0c…...

Phi-3-mini-128k-instruct数学推理能力展示:求解方程与几何证明

Phi-3-mini-128k-instruct数学推理能力展示:求解方程与几何证明 最近,我花了不少时间测试微软开源的Phi-3-mini-128k-instruct模型,想看看它在数学推理这块到底行不行。毕竟,一个模型如果能清晰、有条理地解决数学问题&#xff0…...

智能物流分拣破局:越疆协作分拣机器人高效升级指南

在电商、快递行业的高速发展下,物流分拣的压力越来越大,但长期以来,中小物流企业的分拣面临 “两难” 困境:人工分拣招工难、效率低,错分率达 1% 以上,大促期间更是人手不足;而传统的交叉带分拣…...

ChatGLM-6B生产级部署:Supervisor配置文件结构与自定义参数说明

ChatGLM-6B生产级部署:Supervisor配置文件结构与自定义参数说明 1. 引言 在生产环境中部署AI服务时,稳定性是首要考虑的因素。ChatGLM-6B作为一款优秀的开源对话模型,如何确保其7x24小时稳定运行成为了关键问题。本镜像采用了Supervisor进程…...

Day | 11 【苍穹外卖统计业务的实现:含详细思路分析】

🔥个人主页:北极的代码(欢迎来访) 🎬作者简介:java后端学习者 ❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb ✨命运的结局尽可永在,不屈的挑战却不可须臾或…...

GetQzonehistory:5分钟快速备份QQ空间历史说说的终极指南

GetQzonehistory:5分钟快速备份QQ空间历史说说的终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代,我们的记忆越来越依赖于在线平台。QQ空间作…...

claude code 使用

1,模型更换进入C盘目录 C:\Users\****\.claude 找到 settings.json这个是通义千问模型{"env": {"ANTHROPIC_AUTH_TOKEN": "sk-3db74945b4a****","ANTHROPIC_BASE_URL": "https://dashscope.aliyuncs.com/apps/anthro…...

百考通:AI赋能让学术研究起步更高效

对于每一位学子与科研人而言,开题报告是学术研究的“第一粒扣子”,它不仅是研究方向的蓝图,更是顺利推进论文写作、获得导师认可的关键。然而,选题迷茫、文献梳理繁琐、逻辑框架搭建困难等问题,常常让开题之路步履维艰…...

MusePublic Art Studio惊艳效果:动态种子演化生成同主题12张连贯艺术组图

MusePublic Art Studio惊艳效果:动态种子演化生成同主题12张连贯艺术组图 1. 引言:当AI成为艺术家的画笔 想象一下,你是一位艺术家,脑海中有一个绝妙的创意主题。你想围绕这个主题创作一个系列作品,比如“赛博朋克森…...

Wan2.1视频生成案例分享:从萌宠到科幻,AI视频作品集

Wan2.1视频生成案例分享:从萌宠到科幻,AI视频作品集 1. 开篇:当文字变成动态画面 想象一下这样的场景:你脑海中浮现出一只橘猫在窗台上慵懒地晒太阳,阳光透过玻璃窗洒在它毛茸茸的身体上;或者你构思了一个…...

YOLO-Master 的MoE方案分解

之前,进行论文精度。今天看下具体代码 文章目录1. OptimizedMOEImproved加载模块过程2. 路由模块 EfficientSpatialRouter3. 专家 SimpleExpert实例条件自适应MoE 剪枝 (MoEPruner)聚类加权 NMS (CW-NMS)1. OptimizedMOEImproved 同构专家:通常使用相同…...

s2-pro镜像管理:容器健康检查脚本编写与自动化服务恢复方案

s2-pro镜像管理:容器健康检查脚本编写与自动化服务恢复方案 1. 引言 s2-pro作为专业级语音合成模型镜像,在实际业务场景中承担着重要角色。当服务出现异常时,如何快速发现问题并自动恢复成为运维工作的关键。本文将详细介绍如何为s2-pro编写…...

Display Driver Uninstaller:显卡驱动残留问题的技术深度解析与系统级清理方案

Display Driver Uninstaller:显卡驱动残留问题的技术深度解析与系统级清理方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/displ…...

日本留学中介避坑指南:免费申请与实体保障,哪种模式更适合你?

摘要随着赴日留学热度持续攀升,市面上的日本留学中介机构也如雨后春笋般涌现。对于计划通过语言学校过渡并升学的学生及家庭而言,如何在‘免费申请’与‘传统收费’、‘线上服务’与‘实体保障’之间做出抉择,往往充满困惑与信息不对称。本文…...

绝美辛夷花海!九皇山春日限定,羌族古寨里的粉色浪漫

九皇山位于四川省绵阳市北川羌族自治县桂溪镇,是国家4A级旅游景区,地处四川盆地西北边缘与川西高原的过渡地带,属典型喀斯特地貌,核心风貌兼具丰富的自然生态景观与深厚的羌族人文底蕴,景区占地面积25平方公里&#xf…...

Spring Data JPA 高级特性

Spring Data JPA 高级特性 引言 大家好,今天想和大家聊聊 Spring Data JPA 的高级特性。作为一名 Java 架构师,我深知数据访问层对于应用的重要性。 Spring Data JPA 是 Spring 生态中用于简化数据访问的优秀框架,它提供了丰富的功能和灵活…...

OpenClaw剪藏工具:Qwen3-VL:30B分类保存网页内容到Flomo

OpenClaw剪藏工具:Qwen3-VL:30B分类保存网页内容到Flomo 1. 为什么需要智能剪藏工具 作为一个每天要处理大量信息的开发者,我长期被碎片化知识管理问题困扰。浏览器收藏夹里堆积着上千个未分类的网页,微信收藏夹里塞满来不及整理的截图&…...

解码像素,探寻隐匿——CTF-03图片隐写学习心得

CTF-03聚焦图片隐写专项学习,是从基础安全知识迈向数据隐藏与取证实战的重要进阶。通过本次学习,我系统掌握了图片隐写的核心原理、常见工具与实操技巧,不仅深化了对“数据隐匿”攻防思维的理解,更提升了对图片文件的深度分析与信…...

3个步骤解锁QQ音乐加密文件:QMCDecode让音乐重获自由

3个步骤解锁QQ音乐加密文件:QMCDecode让音乐重获自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转…...

Phi-4-Reasoning-Vision行业应用:制造业设备巡检图故障推理与维修建议生成

Phi-4-Reasoning-Vision行业应用:制造业设备巡检图故障推理与维修建议生成 1. 技术背景与价值 在制造业设备维护领域,传统的人工巡检方式存在效率低、主观性强、经验依赖严重等问题。Phi-4-Reasoning-Vision多模态大模型为这一场景带来了革命性的解决方…...

OWL ADVENTURE与Git协作:AI视觉项目的版本管理与团队开发实践

OWL ADVENTURE与Git协作:AI视觉项目的版本管理与团队开发实践 做AI视觉项目,尤其是用OWL ADVENTURE这类框架时,最头疼的往往不是模型调参,而是项目本身的管理。你有没有遇到过这种情况:同事改了一个配置文件&#xff…...

DanKoe 视频笔记:如何在7天内重置你的生活:概述与核心概念

在本节课中,我们将学习如何通过一个为期七天的系统性过程,重置你的生活状态,摆脱迷茫和低效,重新找回专注、清晰和前进的动力。我们将从理解大脑运作的比喻开始,逐步介绍具体的行动步骤。 你的大脑是一台运行生命游戏…...

自定义默认提示词:PandaWiki 问答 “一键贴合业务”,企业降本增效新方案

深耕企业数字化与知识管理 7 年,服务过数百家中大型企业,发现企业知识库普遍存在三大核心痛点:AI 问答泛化、风格混乱、效率低下、人力成本高。PandaWiki 的自定义默认提示词功能,搭配多平台客服 开源可控,为企业提供…...

Studio 3T 2026.6 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端

Studio 3T 2026.6 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端 The Ultimate GUI, IDE and client for MongoDB 请访问原文链接:https://sysin.org/blog/studio-3t/ 查看最新版。原创作品,转载请保留出处。 作者主页:sy…...

图像降噪避坑指南:为什么你的sym4小波处理效果不明显?

图像降噪避坑指南:为什么你的sym4小波处理效果不明显? 当你在深夜调试代码,反复对比sym4小波处理前后的图像时,屏幕上的像素似乎在对你冷笑——降噪效果远不如论文里展示的那般惊艳。这不是个例,在计算机视觉开发者社群…...

GIL-Free Python并发仅剩最后1%难题:我们用37小时逆向分析PyO3内存模型,找到共享引用计数的终极解法

第一章:GIL-Free Python并发的终极挑战与破局意义Python 的全局解释器锁(GIL)长期被视为多核 CPU 利用率的“天花板”。它确保同一时刻仅有一个线程执行 Python 字节码,虽简化了内存管理与 C 扩展开发,却在 CPU 密集型…...