[机器学习理论] 降维算法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(七) 附录
随机推荐
- web form 服务器控件表单验证
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ValidationDemo ...
- Luogu P4336 [SHOI2016]黑暗前的幻想乡 矩阵树定理+容斥原理
真是菜到爆炸....容斥写反(反正第一次写qwq) 题意:$n-1$个公司,每个公司可以连一些边,求每个边让不同公司连的生成树方案数. 矩阵树定理+容斥原理(注意到$n$不是很大) 枚举公司参与与否的 ...
- JavaScript实现 简易 堆
有两个原始操作用于保证插入或删除节点以后堆是一个有效的最大堆或者最小堆: shiftUp(): 如果一个节点比它的父节点大(最大堆)或者小(最小堆),那么需要将它同父节点交换位置.这样是这个节点在数组 ...
- Laravel Passport API 认证使用小结
Laravel Passport API 认证使用小结 八月 4, 2017 发布在 Laravel 看到Laravel-China 社区常有人问 Laravel Passport 用于密码验证方式来 ...
- kubernetes 存储volume,pv和pvc的使用
emptyDIR 临时目录 hostPath :使用主机的路径 网络存储: 传统的设备存储:NAS,SAN 分布式存储:glusterfs,rbd,cephfs 云存储:EBS,Azure,阿里云的 ...
- 強悍的Linq
在使用Linq轉化XML,ActiveDirectory,Datatable,Array,List,Dictionary后意識到Linq的強大.VS居然還提供專門的LINQ Explorer,不覺明厲 ...
- IVIEW组件的render方法在Table组件中的使用
后端项目地址:https://gitee.com/wlovet/table-server 前端项目地址: https://gitee.com/wlovet/table-project 一.Rende ...
- kong-dashbord本地安装gulp打包报错的解决办法
本地安装kong-dashbord执行npm run build 报如下错误 gulp[]: ../src/node_contextify.cc::]->IsString()' failed. ...
- Rhel7.4系统部署cobbler
cobbler安装 一.系统信息: [root@openstack ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server releas ...
- CF258B
CF258B 题意: 7个人在 $ [1,m] $ 区间内取数,求第一个人选的数的4和7的个数大于其他人的4和7个数总和的方案数. 解法: 要求输入的 $ m $ 可以很大,而且需要按位考虑每隔人的贡 ...