Sklearn 机器学习 数据降维PCA 自己实现PCA降维算法
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Sklearn 机器学习:数据降维 PCA 与手写实现全过程
在高维数据集中,冗余特征、噪声干扰与高维稀疏性问题会显著降低机器学习模型的性能与可解释性。PCA(主成分分析)是一种经典的无监督线性降维方法,能有效保留主要信息、消除多重共线性、提升可视化表达力。
本篇博文将带你从 Sklearn 的 PCA 快速实现 入手,再一步步深入到 手动实现 PCA 的底层原理与计算流程,帮助你彻底理解 PCA 是如何工作的。
✳️ 一、PCA 是什么?
PCA(Principal Component Analysis)是一种 无监督的线性降维算法,其主要目标是:
- 最大限度保留原始数据的方差信息;
- 消除特征之间的相关性(变换后各主成分正交);
- 将原始特征映射为一组新的、更少的线性无关特征(主成分)。
主成分本质是数据中方差最大的方向:第一个主成分是方差最大的方向,第二个主成分与第一个正交,且方差次大,依此类推。
🔢 二、PCA 的数学原理
PCA 的底层核心是:
将数据投影到 协方差矩阵的主轴方向(特征向量),使得投影后的数据在这些方向上的方差最大化。
PCA 数学步骤:
- 中心化或标准化数据(均值为 0)
- 计算协方差矩阵
- 对协方差矩阵求特征值与特征向量
- 选择特征值最大的前 k 个主成分
- 将原始数据投影到主成分方向
注:PCA 的核心是“中心化”,是否进行“标准化”视数据特征而定。
- 若各维度量纲相近,可仅中心化。
- 若量纲差异大,建议标准化(零均值、单位方差)。
🔍 三、使用 Sklearn 实现 PCA 降维
示例数据准备:Iris 鸢尾花数据集
from sklearn.datasets import load_iris
from sklearn.preprocessing import Standar