[机器学习理论] 降维算法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(七) 附录
随机推荐
- [Luogu] 无线网络发射器选址
https://www.luogu.org/problemnew/show/P2038 二维前缀和 #include <iostream> #include <cstdio> ...
- DP基础(线性DP)总结
DP基础(线性DP)总结 前言:虽然确实有点基础......但凡事得脚踏实地地做,基础不牢,地动山摇,,,嗯! LIS(最长上升子序列) dp方程:dp[i]=max{dp[j]+1,a[j]< ...
- 条件随机场和CRF++使用
参考资料 条件随机场和CRF++使用: http://midday.me/article/94d6bd4973264e1a801f8445904a810d 基于CRF++的中文分词 http://ww ...
- php 一段 shmop
$size = 1024*1024; $shm_key = ftok(__FILE__, 't'); $shm_id = shmop_open($shm_key, "c", 064 ...
- MySQL| MySQL关键字和保留字
MySQL 5.5 Keywords and Reserved Words The following list shows the keywords and reserved words in My ...
- 【redis 学习系列07】Redis小功能大用处01 慢查询分析以及Redis Shell
Redis提供了5种数据结构已经足够强大,但除此之外,Redis还提供了诸如慢查询分析.功能强大的Redis Shell.Pipeline.事务与Lua脚本.Bitmaps.HyperLogLog.发 ...
- myeclipse使用SVN分支与合并详解
此博文主要内容来源地址:https://blog.csdn.net/liuyifeng1920/article/details/53118183,感谢原创博主: 先介绍一下svn的两种开发和发布的规范 ...
- if-for-while
if help if可以看看if的用法 if ls -l / ;then echo "ok";else echo "no" ;fi for for ((i=0; ...
- redis 概述及部署 安装php和python客户端
概述 Redis是一个基于key-value键值对的持久化数据库存储系统.redis支持的数据存储类型比memcached更丰富,包括strings(字符串),lists(列表),sets(集合)和s ...
- LC 638. Shopping Offers
In LeetCode Store, there are some kinds of items to sell. Each item has a price. However, there are ...