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

人工智能-python-数据处理实战-特征降维(PCA)

文章目录

      • 特征降维方法汇总表格
      • PCA的详细原理和步骤
        • 1. 数据中心化
        • 2. 计算协方差矩阵
        • 3. 计算特征值和特征向量
        • 4. 选择主成分并降维

特征降维方法汇总表格

方法原理适用场景优点缺点
主成分分析(PCA)通过线性变换将数据投影到新空间,使得数据的方差最大化。适用于大部分数据集,尤其是特征相关性较强时简单有效,适用于高维数据降维只能处理线性关系,受噪声影响较大
线性判别分析(LDA)最大化类间差异和最小化类内差异,寻找最优投影方向。适用于分类问题,类别标签明确时适用于监督学习,能够处理类别数据需要类别标签,假设数据符合高斯分布
t-SNE通过概率分布确保数据点之间的相似性在低维空间中尽可能保留,适用于可视化。数据可视化,聚类结果可视化能处理非线性关系,适合可视化计算复杂度高,不能用于预测任务
自编码器(Autoencoder)基于神经网络,通过编码器和解码器压缩和重建数据。深度学习应用,适用于大规模数据能处理复杂数据,适应性强需要训练模型,计算复杂度高
独立成分分析(ICA)寻找数据的独立成分,与PCA不同,目标是数据的非高斯性。信号分离,图像、音频处理能处理信号分离任务假设数据是非高斯的
特征选择方法基于特征的方差、相关性或模型重要性,选择对结果影响最大的特征。分类和回归任务计算简单,容易理解可能丢失重要信息,依赖数据特性
基于树的方法(如随机森林)通过训练模型计算特征的重要性,并选取最重要的特征。适用于分类和回归任务能自动评估特征重要性对于高维数据处理时可能较慢

PCA的详细原理和步骤

1. 数据中心化
  • 目的:通过中心化,将每个特征的均值变为0,消除不同特征之间的尺度差异。

  • 公式

    Xcentered=X−μX_{\text{centered}} = X - \mu Xcentered=Xμ

    其中:

    • XXX 为原始数据集。
    • μ\muμ 为每列特征的均值向量。
  • 步骤

    1. 对每个特征(每一列)计算其均值。
    2. 从每个数据点中减去该特征的均值。
  • 示例
    假设数据集为:

    X=(123456)X = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix} X=135246

    每列均值:

    μ=(34)\mu = \begin{pmatrix} 3 & 4 \end{pmatrix} μ=(34)

    数据中心化后:

    Xcentered=(1−32−43−34−45−36−4)=(−2−20022)X_{\text{centered}} = \begin{pmatrix} 1-3 & 2-4 \\ 3-3 & 4-4 \\ 5-3 & 6-4 \end{pmatrix} = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} Xcentered=133353244464=202202

2. 计算协方差矩阵
  • 目的:协方差矩阵衡量特征之间的线性关系,PCA通过协方差矩阵找出数据的主要方向。

  • 公式

    Σ=1n−1XcenteredTXcentered\Sigma = \frac{1}{n-1} X_{\text{centered}}^T X_{\text{centered}} Σ=n11XcenteredTXcentered

    其中:

    • XcenteredTX_{\text{centered}}^TXcenteredT 为数据中心化后的转置矩阵。
    • Σ\SigmaΣ 为协方差矩阵。
  • 示例
    对于上述中心化后的数据集:

    Xcentered=(−2−20022)X_{\text{centered}} = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} Xcentered=202202

    协方差矩阵为:

    Σ=12(−202−202)(−2−20022)=(4444)\Sigma = \frac{1}{2} \begin{pmatrix} -2 & 0 & 2 \\ -2 & 0 & 2 \end{pmatrix} \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} = \begin{pmatrix} 4 & 4 \\ 4 & 4 \end{pmatrix} Σ=21(220022)202202=(4444)

3. 计算特征值和特征向量
  • 目的:通过计算协方差矩阵的特征值和特征向量,找到数据的主要方向(即主成分)。

  • 步骤

    1. 计算协方差矩阵的特征值(λ\lambdaλ)和特征向量(vvv)。
    2. 特征值表示了主成分的方差,特征向量表示主成分的方向。
    • 特征值和特征向量计算方法
      解方程:

      Σv=λv\Sigma v = \lambda v Σv=λv

      其中,Σ\SigmaΣ 为协方差矩阵,vvv 为特征向量,λ\lambdaλ 为对应的特征值。

  • 示例
    对于协方差矩阵:

    Σ=(4444)\Sigma = \begin{pmatrix} 4 & 4 \\ 4 & 4 \end{pmatrix} Σ=(4444)

    解方程得到特征值为:

    λ1=8,λ2=0\lambda_1 = 8, \quad \lambda_2 = 0 λ1=8,λ2=0

    对应的特征向量为:

    v1=(11),v2=(−11)v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad v_2 = \begin{pmatrix} -1 \\ 1 \end{pmatrix} v1=(11),v2=(11)

4. 选择主成分并降维
  • 目的:选择最重要的特征(主成分),并将数据投影到这些主成分上,达到降维效果。

  • 步骤

    1. 根据特征值的大小选择前几个特征向量(主成分)。
    2. 使用这些特征向量对原始数据进行投影。
  • 示例
    选择最大的特征值对应的特征向量:

    v1=(11)v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} v1=(11)

    然后将数据投影到该特征向量上。

    投影后的数据为:

    Xreduced=Xcentered⋅v1=(−2−20022)⋅(11)=(−404)X_{\text{reduced}} = X_{\text{centered}} \cdot v_1 = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} -4 \\ 0 \\ 4 \end{pmatrix} Xreduced=Xcenteredv1=202202(11)=404


总的来说,特征降维在机器学习处理数据方面是必不可少的,不仅为大量数据提取主要特征的同时,也提高了模型训练的效率。

http://www.lryc.cn/news/615109.html

相关文章:

  • CD63.【C++ Dev】多态(2): 剖析虚函数表的前置知识
  • 【线性代数】线性方程组与矩阵——(3)线性方程组解的结构
  • 【CTF】PHP反序列化基础知识与解题步骤
  • 华为实验:SSH
  • 华为实验: 单区域/多区域OSPF
  • [优选算法专题一双指针——四数之和]
  • 【Leecode 随笔】
  • 大模型在垂直场景的创新应用:搜索、推荐、营销与客服新玩法
  • Q-learning强化算法万字详解
  • 关于C语言本质的一些思考
  • Python(6) -- 数据容器
  • Python映射合并技术:多源数据集成的高级策略与工程实践
  • 3D感知多模态(图像、雷达感知)
  • 容器技术基础与实践:从镜像管理到自动运行配置全攻略
  • 大数据与财务管理:未来就业的黄金赛道
  • 深入理解C++构造函数与初始化列表
  • centos 怎么将一些命令设置为快捷命令
  • 当配置项只支持传入数字,即无法指定单位为rem,需要rem转px
  • 第六章:【springboot】框架springboot原理、springboot父子工程与Swagger
  • visual studio 字体设置
  • 动态路由菜单:根据用户角色动态生成菜单栏的实践(包含子菜单)
  • 【Python 语法糖小火锅 · 第 5 涮 · 完结】
  • java练习题:数字位数
  • 【Java基础】字符串不可变性、string的intern原理
  • C++11 ---- 线程库
  • 3.2Vue Router路由导航
  • B.10.01.3-性能优化实战:从JVM到数据库的全链路优化
  • 区块链密码学简介
  • (LeetCode 每日一题) 231. 2 的幂 (位运算)
  • 基于clodop和Chrome原生打印的标签实现方法与性能对比