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

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)

锋哥原创的Scikit-learn Python机器学习视频教程:

2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍

本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据集,特征抽取,特征预处理,特征降维等),分类算法(K-临近算法,朴素贝叶斯算法,决策树等),回归与聚类算法(线性回归,欠拟合,逻辑回归与二分类,K-means算法)等。

Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)

PCA通过线性变换将原始特征转换为一组线性不相关的变量(主成分),按方差大小排序。

PCA的核心思想是:将原始高维特征通过线性变换映射到新的低维坐标系中,这个新坐标系的坐标轴(主成分)按照能够保留原始数据最大方差的方向依次排列。

这意味着第一个新坐标轴(第一主成分)保留了数据中最大程度的方差,第二个新坐标轴(第二主成分)在与第一个正交的前提下保留次大方差,以此类推。

🧠 直观理解:一个经典的比喻

想象你在黑暗中从不同角度观察一个三维物体(比如一个倾斜的椭圆盘子),并记录下它在二维平面上的影子。

  • 某些角度下的影子(比如正上方)可能看起来只是一个短线,丢失了大量关于盘子形状的信息。

  • 某些角度下的影子(比如从盘子侧面)则能最大程度地展现它的形状和大小(一个椭圆)。

PCA要做的就是自动找到那个“最佳观测角度”,使得投影后的影子(低维数据)能包含原始物体(高维数据)最多的信息。而这个“信息量”,在PCA中就用方差来衡量。方差越大,意味着数据点在新坐标轴上分布得越分散,保留的信息就越多。

📊 数学原理与计算步骤(可分步理解)

假设有一个包含 m 个样本和 n 个特征的数据集 X ),其中 X = [x_1, x_2, …, x_m] ,每个样本 x_i 是一个 n 维向量。

( 快速理解这个PCA算法原理,可以查看 视频 主成分分析 (PCA) 转载自 抖音 动画讲编程 )

⚙️ 关键参数与概念(以Scikit-learn为例)

参数/概念说明
n_components最重要的参数。指定要保留的主成分个数 k。可以设为整数(如 2),也可以设为 01 之间的浮点数(如 0.95,表示保留95%的原始方差)。
svd_solver指定求解器。通常使用默认的 'auto' 即可。对于大型数据,使用 'randomized' 的随机SVD方法会更高效。
explained_variance_属性。一个数组,表示每个主成分所捕获的方差大小(即特征值)。
explained_variance_ratio_属性。一个数组,表示每个主成分所捕获的方差占总方差的百分比。这是决定 k 取多少的关键依据。
components_属性。投影矩阵 $W$,每一行是一个主成分(特征向量)。

我们来看一个示例:

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris# 加载数据
iris = load_iris()
X, y = iris.data, iris.target# 1. 标准化数据(至关重要!)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 2. 初始化PCA,保留2个主成分用于可视化
pca = PCA(n_components=2)# 3. 训练转换数据
X_pca = pca.fit_transform(X_scaled)print("原始数据形状:", X.shape)
print("降维后数据:", X_pca)

运行结果:


文章转载自:

http://ziFSGFj9.kdnrp.cn
http://zGKWXOsJ.kdnrp.cn
http://9iap8gTR.kdnrp.cn
http://R8nbvoYk.kdnrp.cn
http://0xLVGVPS.kdnrp.cn
http://UDbCJYgV.kdnrp.cn
http://uPwd4Af6.kdnrp.cn
http://DbFXX5yb.kdnrp.cn
http://Cp4vTZ7T.kdnrp.cn
http://QF9uydCz.kdnrp.cn
http://Ovz1yxao.kdnrp.cn
http://Cu9bNUEj.kdnrp.cn
http://Fyk8z5ld.kdnrp.cn
http://njCFP8R3.kdnrp.cn
http://RfwxYsxG.kdnrp.cn
http://14UnzYDG.kdnrp.cn
http://3ovIXZC5.kdnrp.cn
http://Uw2hIxw2.kdnrp.cn
http://fl9ZRwEb.kdnrp.cn
http://0oP4AcDG.kdnrp.cn
http://gqNkYZWi.kdnrp.cn
http://uI1u8eQC.kdnrp.cn
http://2TWvGUtb.kdnrp.cn
http://bj79cvjB.kdnrp.cn
http://HG0lfpAZ.kdnrp.cn
http://rh7gYTGH.kdnrp.cn
http://N1cqekdv.kdnrp.cn
http://5zyUA66y.kdnrp.cn
http://1IDaOisH.kdnrp.cn
http://kkBcZNTQ.kdnrp.cn
http://www.dtcms.com/a/370001.html

相关文章:

  • CSP-J/S IS COMING
  • GraphQL API 性能优化实战:在线编程作业平台指南
  • 【基础-判断】Background状态在UIAbility实例销毁时触发,可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
  • PageHelper的使用及底层原理
  • 探寻卓越:高级RAG技术、架构与实践深度解析
  • 【51单片机】【protues仿真】基于51单片机PM2.5空气质量检测系统
  • AI工具深度测评与选型指南 - 图像生成与编辑类
  • RabbitMQ工作模式(下)
  • Custom SRP - Complex Maps
  • tp报错解决
  • MySQL MHA 高可用集群搭建
  • 《AI大模型应知应会100篇》第68篇:移动应用中的大模型功能开发 —— 用 React Native 打造你的语音笔记摘要 App
  • Mac Intel 芯片 Docker 一键部署 Neo4j 最新版本教程
  • 正态分布 - 正态分布的经验法则(68-95-99.7 法则)
  • 【操作系统-Day 25】死锁 (Deadlock):揭秘多线程编程的“终极杀手”
  • (二).net面试(static)
  • 为什么服务器有主备BMC?
  • Dotnet 项目手动部署到AWS 和Github action CICD 流程总结
  • (2)桌面云、并行计算、分布式、网格计算
  • Java中的死锁
  • SQL 进阶指南:视图的创建与使用(视图语法 / 作用 / 权限控制)
  • SQL 实战指南:电商订单数据分析(订单 / 用户 / 商品表关联 + 统计需求)
  • 附050.Kubernetes Karmada Helm部署联邦及使用
  • 【PCIe EP 设备入门学习专栏 -- 8 PCIe EP 架构详细介绍】
  • STM32HAL 快速入门(十九):UART 编程(二)—— 中断方式实现收发及局限分析
  • 【星闪】Hi2821 | PWM脉宽调制模块 + 呼吸灯例程
  • 具身智能模拟器:解决机器人实机训练场景局限与成本问题的创新方案
  • 【嵌入式】【科普】AUTOSAR学习路径
  • 大麦APP抢票-核心
  • Linux笔记---TCP套接字编程