讲讲降维算法:PCA 主成分分析

人工智能 机器学习 算法
PCA是一种降维的经典算法,属于线性、非监督、全局的降维方法。PCA的原理是线性映射,简单的说就是将高维空间数据投影到低维空间上,然后将数据包含信息量大的主成分保留下来,忽略掉对数据描述不重要的次要信息。

在机器学习的领域中,我们对原始数据进行特征提取,经常会得到高维度的特征向量。在这些多特征的高维空间中,会包含一些冗余和噪声。所以我们希望通过降维的方式来寻找数据内部的特性,提升特征表达能力,降低模型的训练成本。PCA是一种降维的经典算法,属于线性、非监督、全局的降维方法。

一、PCA原理

PCA的原理是线性映射,简单的说就是将高维空间数据投影到低维空间上,然后将数据包含信息量大的主成分保留下来,忽略掉对数据描述不重要的次要信息。而对于正交属性空间中的样本,如何用一个超平面对所有样本进行恰当合适的表达呢?若存在这样的超平面,应该具有两种性质:

  • 所有样本点到超平面的距离最近
  • 样本点在这个超平面的投影尽可能分开

以上两种性质便是主成分分析的两种等价的推导,即PCA最小平方误差理论和PCA最大方差理论,本篇主要为大家介绍最大方差理论。 PCA的降维操作是选取数据离散程度最大的方向(方差最大的方向)作为第一主成分,第二主成分选择方差次大的方向,并且与第一个主成分正交。不算重复这个过程直到找到k个主成分。

数据点分布在主成分方向上的离散程度最大,且主成分向量彼此之间正交。

二、PCA算法实现步骤

1、对所有数据特征进行中心化和归一化对样本进行平移使其重心在原点,并且消除不同特征数值大小的影响,转换为统一量纲:

2、计算样本的协方差矩阵

协方差是对两个随机变量联合分布线性相关程度的一种度量;

3、对协方差矩阵求解特征值和特征向量

注意点:1、对称矩阵的特征向量相互正交,其点乘为02、数据点在特征向量上投影的方差,为对应的特征值,选择特征值大的特征向量,就是选择点投影方差大的方向,即是具有高信息量的主成分;次佳投影方向位于最佳投影方向的正交空间,是第二大特征值对应的特征向量,以此类推; 4、选取k个最大大特征值对应的特征向量,即是k个主成分 U是协方差矩阵所有的特征向量构成的矩阵,对应的特征值满足:λ1>λ2>⋯>λn,同时使其满足在主成分向量上投影的方差和占总方差的99%或者95%以上,即确定了k的选取。

三、降维python实现

1、配置环境,导入相关包

2、读取数据

3、读取特征、标签列,并进行中心化归一化,选取主成分个数,前2个主成分的方差和>95%

4、将降维后特征可视化,横纵坐标代表两个主成分,颜色代表结果标签分类,即可根据主成分进行后续分析、建模

以上PCA主成分分析就讲完了,本文进行了样本点在超平面的投影尽可能分开的推导原理阐述,大家感兴趣的可以研究另一种等价推导,即样本点到超平面的距离最近。

责任编辑:庞桂玉 来源: Python开发者
相关推荐

2017-09-11 09:20:14

机器学习无监督学习聚类

2016-10-21 14:17:21

2017-07-06 08:36:10

特征向量矩阵PCA

2014-07-03 10:05:15

机器学习

2014-07-14 09:41:04

机器学习

2018-04-04 15:55:56

数据科学数据从业者机器学习

2023-10-10 15:17:54

数据集降维技术

2022-04-26 06:15:34

降维算法Python

2017-06-01 16:25:36

数据挖掘算法

2013-04-10 10:31:21

R语言

2022-08-27 13:35:39

L4级自动驾驶辅助驾驶自动驾驶

2021-05-24 08:00:00

机器学习数据云计算

2014-08-27 10:13:25

降维算法

2021-03-30 11:29:02

人工智能深度学习

2024-01-31 21:54:22

NodeDenoMacOS

2020-02-15 16:48:28

机器学习算法人工智能

2017-01-23 13:34:44

2020-07-23 10:51:29

NginxWebApache

2021-05-31 09:41:17

机器学习人工智能计算机

2019-07-15 15:59:32

高维数据降维数据分析
点赞
收藏

51CTO技术栈公众号