PCA/SVD--怎样确定topNfeat(特征值数目/奇异值数目)

Coding by Chang, 2017/04/30

1.主成分分析(PCA)

1.1 PCA数学模型

  最大可分性出发(参考《机器学习》周志华):样本点在超平面上的投影能尽可能分开。

  即应该使投影后样本点的方差最大化:

    maxtr(WTXXTW)     s.t. WTW=I

  这个目标函数可以通过对协方差矩阵XXT做特征值分解求得转换矩阵W.

  降维原理:在W对应的开始r个主成分之后,方差就会迅速下降。这意味着数据集X中只有r个重要特征。

1.2 实践中确定topNfeat数目方法:

  在选择开始几个主成分后,方差就会迅速下降,可以通过计算方差百分比来确定topNfeat的具体数目。

  方差百分比=sum(the selected eigvals)/sum(all eigVals)

 1 #coding by C
 2 #-*- coding:utf-8 -*-
 3
 4 sumOfEigVals=sum(eigVals)
 5 total=0.0
 6 for j in range(topNfeat):
 7     total+=eigVals[eigValInd(j)]
 8     percent=total/sumOfEigVals
 9     if percent>0.98:
10         print ‘the number of eigVals: %d, var: %f‘ %(j,percent)
11         print ‘the best number of topNfeat:‘ ,j
12         break
13     print ‘the number of %d has occupied %f‘ %(j,percent)

2.奇异值分解(SVD)

2.1 SVD数学模型为:

    Xm×n=Um×mΣm×nVTn×n

  Σ矩阵的对角元素称为“奇异值”。

  Σ矩阵的两个特点:只有对角元素,其他元素为0;对角元素从大到小排列;

  降维原理:在r个奇异值之后,其他的奇异值都置为0. 这意味着数据集X中只有r个重要特征。

2.2 利用python实现SVD

  依赖库:python内部线性代数工具箱 numpy.linalg

  实现方法:linalg.svd()

  

  注意:Σ是对角矩阵,但是它“只返回对角元素”,节省空间。

3,。特征值与奇异值之间的关系

  奇异值就是矩阵X*XT特征值的平方根。

时间: 2024-07-29 22:39:21

PCA/SVD--怎样确定topNfeat(特征值数目/奇异值数目)的相关文章

特征值与奇异值的基础知识

在看论文的过程中,经常遇到涉及到特征值.特征向量.奇异值.右奇异向量等相关知识的地方,每次都是看得似懂非懂.本文将从特征值和奇异值相关的基础知识入手,探究奇异值和特征值的内涵,进而对特征值和奇异的知识进行梳理. 特征值分解和奇异值分解(SVD)在主成分分析(PCA)和机器学习领域都有广泛的应用.PCA的实现由两种方法,一种是特征值分解,另一种是奇异值分解,特征值分解和奇异值分解的目的是一样的,都是提取出一个矩阵最重要的特性.特征值和奇异值在大部分人的印象中都只是停留在线性代数中,对他们特殊的物理

关于线性模型你可能还不知道的二三事(三、特征值与奇异值的魔力)

目录 1 L2惩罚项 1.1 惩罚项 1.2 L2惩罚项与过拟合 1.3 多目标值线性模型2 特征值分解3 奇异值分解4 总结5 参考资料 1 L2惩罚项 1.1 惩罚项 为了防止世界被破坏,为了维护世界的和平……不好意思,这篇一开头就荒腔走板!某些线性模型的代价函数包括惩罚项,我们从书本或者经验之谈中学习到惩罚项主要有两个作用:为了防止模型过拟合,为了维护模型的简洁性.常见的惩罚项有L0.L1和L2惩罚项,其中L0惩罚项为权值向量W中不为0的分量个数,L1惩罚项为权值向量W各分量的绝对值之和,

PCA, SVD以及代码示例

本文是对PCA和SVD学习的整理笔记,为了避免很多重复内容的工作,我会在介绍概念的时候引用其他童鞋的工作和内容,具体来源我会标记在参考资料中. 一.PCA (Principle component analysis) PCA(主成分分析)通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维. 为什么需要降维?以下图为例,图c中的点x y 呈现明显线性相关,假如以数据其实以数据点分布的方向的直线上的投影(一维)已经能够很好的描述这组数据特点了 .

SVD理解和其在PCA,LSI的应用

首先确实是觉得这篇文章写得很好,后面的附录也是非常值得一看 整体框架转自 http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 中间穿插一些自己的理解的部分 前言: PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的.在上篇文章中便是基于特征值分解的一种解释(之后进行补充这一种方法).特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中.而且线性代数或者

浅谈 PCA与SVD

前言 在用数据对模型进行训练时,通常会遇到维度过高,也就是数据的特征太多的问题,有时特征之间还存在一定的相关性,这时如果还使用原数据训练模型,模型的精度会大大下降,因此要降低数据的维度,同时新数据的特征之间还要保持线性无关,这样的方法称为主成分分析(Principal component analysis,PCA),新数据的特征称为主成分,得到主成分的方法有两种:直接对协方差矩阵进行特征值分解和对数据矩阵进行奇异值分解(SVD). 一.主成分分析基本思想 ??数据X由n个特征降维到k个特征,这k

说文解字----矩阵分析(二)特征值特征向量 奇异值分解(SVD)

特征值,奇异值,相关分解是矩阵分析中一个非常重要的概念,我再网上找了些资料,很多人已经对此分析的非常纯熟,为了尊重原创作者,首先贴几个链接,大家欣赏下: 外文链接:http://www.ams.org/samplings/feature-column/fcarc-svd 翻译文章:http://blog.csdn.net/dinosoft/article/details/37884597 数学之美与SVDhttp://blog.chinaunix.net/uid-24517893-id-3261

What is an intuitive explanation of the relation between PCA and SVD?

What is an intuitive explanation of the relation between PCA and SVD? 36 FOLLOWERS Last asked: 30 Sep, 2014 QUESTION TOPICS Singular Value Decomposition Principal Component Analysis Intuitive Explanations Statistics (academic discipline) Machine Lear

SVD 奇异值分解

强大的矩阵奇异值分解(SVD)及其应用 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected].也可以加我的微博: @leftnoteasy 前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的.在上篇文章中便是基于特征值分解的一种解释.特征值和奇异值在大部分人的印象中,往

【转载】--主成分分析PCA

降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有0.02%. 3.过多的变量会妨碍查找规律的建立. 4.仅在变量层面上分析可能会忽略变量之间的潜在联系.例如几个预测变量可能落入仅反映数据某一方面特征的一个组内. 降维的目的: 1.减少预测变量的个数 2.确保这些变量是相互独立的 3.提供一个框架来解释结果 降维的方法有:主成分分析.因子分析.