[机器学习理论] 降维算法PCA、SVD(部分内容,有待更新)
几个概念
正交矩阵
在矩阵论中,正交矩阵(orthogonal matrix)是一个方块矩阵,其元素为实数,而且行向量与列向量皆为正交的单位向量,使得该矩阵的转置矩阵为其逆矩阵:
对角矩阵
对角矩阵(英语:diagonal matrix)是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。因此n行n列的矩阵 = (di,j)若符合以下的性质:
则矩阵为对角矩阵。
性质有:
1. 对角矩阵的和差运算结果还为对角矩阵
2. 对角矩阵的数乘运算结果还为对角矩阵
3. 对角矩阵的乘积运算结果还为对角矩阵
可对角化
如果一个方块矩阵 A 相似于对角矩阵,也就是说,如果存在一个可逆矩阵 P 使得 P −1AP 是对角矩阵,则它就被称为可对角化的。
对角化是找到可对角化矩阵或映射的相应对角矩阵的过程。可以对角化=存在某组基,使得这个线性变换在这组基的每一个向量上都是伸缩变换的;不能对角化=找不到这样的一组基。
特征向量(通俗理解)
如果存在矩阵对某一个向量或某些向量只发生伸缩变换,不对这些变量产生旋转的效果,那么这些变量称为这个矩阵的特征向量。
特征分解
前面依次引出了三个概念,正交矩阵是想说明这种矩阵的转置矩阵 == 逆矩阵,故而与其转置矩阵乘积等于单位矩阵。可对角化的矩阵可以做特征分解。
即可以将可对角化的矩阵分解为由其特征值和特征向量表示的矩阵之积。
奇异值分解
因为现实情况,大部分矩阵并不是可对角化的。(即大多数数据集的特征数和样本数是不相等的,M*N非方阵, 不符合条件)
故我们就用奇异值分解(SVD)来解决非方阵型矩阵的特征分解,将矩阵分解为奇异向量和奇异值。
参考资料:
矩阵的行列式、秩的意义
矩阵特征值和特征向量详细计算过程
行列式的计算(矩阵外面加个绝对值)
行列式相加减1,
一步步教你轻松学奇异值分解SVD降维算法
秩,行列式和可逆性的几何意义
线性无关矢量组成的矩阵的行列式不为零;线性相关矢量组成的矩阵的行列式必为零。
理解矩阵(一)
理解矩阵(二)
理解矩阵(三)
【通俗理解线性代数】 -- 矩阵的相似对角化
[机器学习理论] 降维算法PCA、SVD(部分内容,有待更新)的更多相关文章
- # 机器学习算法总结-第五天(降维算法PCA/SVD)
- 机器学习实战基础(二十一):sklearn中的降维算法PCA和SVD(二) PCA与SVD 之 降维究竟是怎样实现
简述 在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的(比如噪音),或 ...
- 机器学习实战基础(二十):sklearn中的降维算法PCA和SVD(一) 之 概述
概述 1 从什么叫“维度”说开来 我们不断提到一些语言,比如说:随机森林是通过随机抽取特征来建树,以避免高维计算:再比如说,sklearn中导入特征矩阵,必须是至少二维:上周我们讲解特征工程,还特地提 ...
- 机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD
PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...
- 机器学习实战基础(二十七):sklearn中的降维算法PCA和SVD(八)PCA对手写数字数据集的降维
PCA对手写数字数据集的降维 1. 导入需要的模块和库 from sklearn.decomposition import PCA from sklearn.ensemble import Rando ...
- 机器学习实战基础(二十五):sklearn中的降维算法PCA和SVD(六) 重要接口,参数和属性总结
到现在,我们已经完成了对PCA的讲解.我们讲解了重要参数参数n_components,svd_solver,random_state,讲解了三个重要属性:components_, explained_ ...
- 机器学习实战基础(二十四):sklearn中的降维算法PCA和SVD(五) PCA与SVD 之 重要接口inverse_transform
重要接口inverse_transform 在上周的特征工程课中,我们学到了神奇的接口inverse_transform,可以将我们归一化,标准化,甚至做过哑变量的特征矩阵还原回原始数据中的特征矩阵 ...
- 机器学习实战基础(二十二):sklearn中的降维算法PCA和SVD(三) PCA与SVD 之 重要参数n_components
重要参数n_components n_components是我们降维后需要的维度,即降维后需要保留的特征数量,降维流程中第二步里需要确认的k值,一般输入[0, min(X.shape)]范围中的整数. ...
- 机器学习实战基础(二十六):sklearn中的降维算法PCA和SVD(七) 附录
随机推荐
- @Transactional(转)
概述@Transactional 是声明式事务管理 编程中使用的注解 添加位置 接口实现类或接口实现方法上,而不是接口类中访问权限:public 的方法才起作用 @Transactional 注解应该 ...
- 题解 [BZOJ2159] Crash的文明世界
题面 解析 这题一眼换根DP啊 首先,我们考虑一下如何转换\(n^m\)这个式子, 先把式子摆出来吧:\(n^m=\sum_{j=0}^mS(m,j)C_n^jj!\) 其中\(S(m,j)\)表示第 ...
- jQuery系列(八):jQuery的位置信息
1.宽度和高度 (1):获取宽度 .width() 描述:为匹配的元素集合中获取第一个元素的当前计算宽度值.这个方法不接受任何参数..css(width) 和 .width()之间的区别是后者返回一个 ...
- g++版本低于4.7使用C++11
编译时需要添加: 需要添加头文件#include<memory> g++ -std=gnu++0x share_ptr.cpp -o s 原文: C++11 features are av ...
- Activity中使用PagerAdapter实现切换代码
主活动 public class ViewPagerManager extends AppCompatActivity { private ViewPager viewPager; @Override ...
- skbuff
在2.6.24之后这个结构体有了较大的变化,此处先说一说2.6.16版本的sk_buff,以及解释一些问题. 一. 先直观的看一下这个结构体~~~~~~~~~~~~~~~~~~~~~~在下面解释每个字 ...
- 取模的n种情况
一 减法 (a-b)%mod=(a%mod-b%mod+n)%mod; 二 大数 有乘法取模 可推出 如下代码 string s; cin>>s; ,len=s.length(); ;i ...
- 基于DAT的中文分词方法的研究与实现
一.从Trie说起 DAT是Double Array Trie的缩写,说到DAT就必须先说一下trie是什么.Trie树是哈希树的一种,来自英文单词"Retrieval"的简写,可 ...
- cast()、decimal(M,D) --SQL对查询字段保留小数位操作
参考:http://database.51cto.com/art/201005/201651.htm http://www.lai18.com/content/1693593.html 直接上例子,以 ...
- 【8583】ISO8583各域段的说明
[ISO8583各域段的说明] 1,信息类型(message type)定义位图位置:-格式:定长类型:N4描述:数据包的第一部分,定义数据包的类型.数据类型由数据包的发起者设定,应遵循以下要求:数据 ...