PCA主成分分析

概述

主成分分析(Principal Component Analysis,PCA)是一种多变量统计方法,它是最常用的降维方法之一,通过正交变换将一组可能存在相关性的变量数据转换为一组线性不相关的变量,转换后的变量被称为主成分。PCA主要用于发现数据中的基本结构,及数据中变量之间的关系,也用于其他机器学习的数据预处理。
主成分分析主要有两种方法:协方差矩阵的特征值分解和数据矩阵的奇异值分解。

原则

首先将给定的数据进行规范化,使得数据每一个变量的平均值为0,方差为1。之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若干个线性无关的新变量表示的数据。新变量是可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小,将新变量依次称为第一主成分、第二主成分等。
通俗的讲,如果你问如何表达你的家人,你不必介绍你所有的七阿姨和八阿姨,选择最典型的代表。这种模式是询问最有代表性和最好的信息的家庭成员。代表你的家人。
以及如何具体量化这种相关性或不相关性,引入协方差的概念

算法流程

传统的主成分分析是通过数据的协方差矩阵或相关矩阵的特征值分解来进行的,常用的方法是数据矩阵的奇异值分解。
下面描述使用奇异值分解的主成分分析

输入:m%5Ctimes%20n样本矩阵X,每一行元素的均值为零;
输出:k%5Ctimes%20n样本主成分Y
参数:主成分个数k
1)构造新的m%5Ctimes%20n矩阵
x%5E%C2%B7%3D%20%7B%5Cfrac%7B1%7D%7B%5Csqrt%20n-1%7D%7D%5Ctag%7B2%7D%20X%5ET
x%5E%C2%B7每一列的均值为0。
2)对矩阵x%5E%C2%B7进行截断奇异值分解,得到
x%5E%C2%B7%3D%20U%5Csum%20V%5ET
有k个奇异值、奇异向量。矩阵V的前k列构成k个样本主成分。
3)求k%5Ctimes%20n样本主成分矩阵
x%5E%C2%B7%3D%20V%5ETX

用户指导

from sklearn.decomposition import PCA

PCA(n_components=None, copy=True, whiten=False)
sklearn提供了直接调用的API接口,其参数分别表示为:

n_components:

意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n
类型:int 或者 string,缺省时默认为None,所有成分被保留。

      赋值为int,比如n_components=1,将把原始数据降到一个维度。

      赋值为string,比如n_components='mle',将自动选取特征个数n,使得满足所要求的方差百分比。

copy:

意义:表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不 会有 任何改变,因为是在原始数据的副本上进行运算;若为False,则运行PCA算法后,原始训练数据的 值会改,因为是在原始数据上进行降维计算。
类型:bool,True或者False,缺省时默认为True。

whiten:

含义:变白,使每个特征具有相同的方差。
类型:bool,缺省时默认为False

实际效果

在最近的kaggle比赛Ubiquant Market Prediction中,利用DNN的基础上,再加上PCA确实能够提高成绩。
PCA提高成绩

版权声明:本文为博主Facouse原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/MLwodejia/article/details/123032112

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年2月21日 下午2:21
下一篇 2022年2月21日 下午2:44

相关推荐