[机器学习理论] 降维算法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(七) 附录
随机推荐
- Hive的JDBC连接
首相要安装好hive 1.首先修改配置文件文件为hive 路径下的 conf/hive-sit.xml 将内容增加 <property> <name>hive.server2 ...
- XHTML测试题
1.XHTML 指的是? A.EXtra Hyperlinks and Text Markup Language B.EXtensible HyperText Marking Language C.E ...
- Java设计模式-策略模式实际应用场景
容错恢复机制 容错恢复机制是应用程序开发中非常常见的功能.那么什么是容错恢复呢?简单点说就是:程序运行的时候,正常情况下应该按照某种方式来做,如果按照某种方式来做发生错误的话,系统并不会 ...
- @EnableCaching缓存
只有public方法,外部调用才有用,与异步相似 优化后 只有一个参数时,默认的key就参数,可以不写,比如这里写#id和不写key是一样的, 这里第二个如果不写,和其他两个指向就不是一回事了,现在三 ...
- php上传大文件的解决方案
1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...
- Linux之静态库
命名规则: lib + 库的名字 + .a 制作步骤 生成对应.o文件 .c à .o 将生成的.o文件打包 ar rcs + 静态库的名字(libMytest.a) + 生成的所有的.o 发布 ...
- Python数据分析:Numpy学习笔记
Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...
- maven整合ssm框架
1.创建maven web工程 创建完成后,项目结构如下 2.项目配置文件 在pom.xml中添加SSM框架相关jar包的依赖关系,pom.xml代码如下 <?xml version=" ...
- python 文件压缩及解压
文件压缩 import os import zipfile def zip_dir(dirname,zipfilename): """ | ##@函数目的: 压缩指定目录 ...
- centos7 下安装和配置 mongodb (重点)
1.下载安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.4.tgz 2.解压 tar -zxvf m ...