矩阵的秩

主成分分析(PCA)原理详解

我的未来我决定 提交于 2019-12-10 10:07:52
个人分类: 机器学习与Python 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongkelee/article/details/44064401 转载请声明出处: http://blog.csdn.net/zhongkelee/article/details/44064401 一、PCA简介 1. 相关背景 上完陈恩红老师的《机器学习与知识发现》和季海波老师的《矩阵代数》两门课之后,颇有体会。最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得体会。 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在多数情况下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性,同时对分析带来不便。如果分别对每个指标进行分析,分析往往是孤立的,而不是综合的。盲目减少指标会损失很多信息,容易产生错误的结论。 因此需要找到一个合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。主成分分析与因子分析就属于这类降维的方法。 2. 问题描述

线性代数之——相似矩阵

那年仲夏 提交于 2019-12-05 10:54:28
当 \(A\) 有足够的特征向量的时候,我们有 \(S^{-1}AS=\Lambda\) 。在这部分, \(S\) 仍然是最好的选择,但现在我们允许任意可逆矩阵 \(M\) ,矩阵 \(A\) 和 \(M^{-1}AM\) 称为 相似矩阵 ,并且不管选择哪个 \(M\) ,特征值都保持不变。 1. 相似矩阵 假设 \(M\) 是任意的可逆矩阵,那么 \(B = M^{-1}AM\) 相似于矩阵 \(A\) 。 \[B = M^{-1}AM \to A = MBM^{-1}\] 也就是说如果 \(B\) 相似于 \(A\) ,那么 \(A\) 也相似于 \(B\) 。如果 \(A\) 可以对角化,那么 \(A\) 相似于 \(\Lambda\) ,它们肯定具有相同的特征值。 相似的矩阵 \(A\) 和 \(M^{-1}AM\) 具有相同的特征值,如果 \(x\) 是 \(A\) 的一个特征向量,那么 \(M^{-1}x\) 是 \(B = M^{-1}AM\) 的特征向量。 \[Ax=\lambda x \to MBM^{-1}x=\lambda x \to B(M^{-1}x)=\lambda (M^{-1}x)\] 所有具有特征值 1 和 0 的 2×2 矩阵都是相似的,特征向量会随着 \(M\) 而改变,但特征值不变。上面的例子中特征值是不重复的,这种情况很好办

奇异分解(SVD)理论介绍

萝らか妹 提交于 2019-12-04 04:54:49
一、前言 奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,主要应用如下: 信息检索(LSA:隐性语义索引,LSA:隐性语义分析),分解后的奇异值代表了文章的主题或者概念,信息检索的时候同义词,或者说同一主题下的词会映射为同一主题,这样就可以提高搜索效率 数据压缩:通过奇异值分解,选择能量较大的前N个奇异值来代替所有的数据信息,这样可以降低噪声,节省空间。 推荐系统:主要是降噪,矩阵变换至低维空间(分解后还原的矩阵元素值作为原本缺失值的一种近似),方便计算(目前没有意识到它对推荐精确度的提升有什么具体作用)。 二、奇异值与特征值基础知识: 特征值分解的方法比较简单,有趣的是探究什么样的矩阵可以进行特征值分解以及矩阵进行特征值分解之后展现出的矩阵有意思的性质。特征向量矩阵S 是一个正交矩阵,一般写作 Q,也就是实对称矩阵的特征值分解可以写作: 首先,要明确的是,一个矩阵其实相当于一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。比如说下面的一个矩阵: 这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最主要的变化方向(变化方向可能有不止一个),如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。 特征值分解也有很多的局限

矩阵

冷暖自知 提交于 2019-12-03 01:35:42
矩阵 矩阵运算 加法 数乘 乘法 转置 特殊矩阵 对角阵 单位阵 数量阵 上下三角阵 对称阵 反对称阵 正交阵 初等矩阵 行阶梯矩阵 行最简矩阵 伴随矩阵 矩阵 逆矩阵 转置 数乘 行列式 秩 可逆矩阵 求逆矩阵的方法 通过伴随矩阵(行列式好求时) 初等变化(行列式不好求时) 初等变换 初等矩阵 等价 矩阵的秩 子式 公式 分块矩阵 运算 来源: https://www.cnblogs.com/vergilwu/p/11769432.html

5求解Ax=0:主变量、特解

匿名 (未验证) 提交于 2019-12-03 00:38:01
本课时将讲解如何计算那些空间中的向量,从概念定义转向算法,求解Ax=0的算法是怎样的,即如何求解零空间。 消元法解Ax=0 消元过程中,方程通过加减消元本质上是线性变换,解是不会改变的。实际上, 消元法改变了系数矩阵的列空间,而不改变系数矩阵的行空间。 所以,注意消元过程中不变的是什么,随消元不变的是方程组的解。 行向量或者列向量之间的相关性可以在消元过程中表现出来。A中第一列和第二列共线,A的第三行是第一行和第二行的线性组合。 看例子: A矩阵第一阶段的消元是把主元1那一列下面的元素变为0,第二阶段的消元是把主元2那一列下面的元素变为0,最终得到阶梯型echelon的矩阵U。图中圈出来的为主元,个数为2,这里引出一个重要概念: 矩阵的秩Rank(A): 矩阵主元的个数。 如此,我们在解Ax=0,现在变为了Ux=0,但解和零空间不变,现在进行回代 找出“主变量”pivot variables,主列,即主元所在的列,其他列,称为自由列。(自由列表示可以自由或任意分配数值,列2和列4的数值是任意的,因此x2和x4是任意的,可以自由取)。当我们把x2和x4分别取1和0时,可得到解x=c(-2 1 0 0),c是常数,表示第二列减去2倍第一列为0。此时解是四维空间中穿过原点的一条直线。 因此,解Ax=0的 新算法 : 1)A矩阵消元,确定主元,解出主变量,也就确定主列,其余为自由列

机器学习――低秩矩阵分解中低秩的意义、矩阵填补、交叉验证

匿名 (未验证) 提交于 2019-12-03 00:22:01
一、低秩矩阵中低秩(Low-rank)的意义 1,问题的引出――对低秩矩阵分解中低秩的误解 点击打开链接 ),当时对矩阵分解的理解是:评分矩阵X分解成两个隐特征矩阵U和V,U代表用户隐特征矩阵,V代表商品隐特征矩阵。U和V的隐因子向量的长度为k,其中k<<min{m,n},自己也就理解成了分解后的两个矩阵的秩是比原来的评分矩阵X的秩低很多,所以就把该方法称为低秩矩阵分解法。 2,低秩矩阵分解中低秩的意义 我们先来回忆下线性代数里面“秩”到底是啥?举个简单的例子吧: 对上面的线性方程组,第一个方程和第二个方程有不同的解,而第2个方程和第3个方程的解完全相同。从这个意义上说,第3个方程是“多余”的,因为它没有带来任何的信息量,把它去掉,所得的方程组与原来的方程组同解。为了从方程组中去掉多余的方程,自然就导出了“矩阵的秩”这一概念。 从物理意义上讲,矩阵的秩度量的就是矩阵的行列之间的相关性。 如果矩阵的各行或列是线性无关的,矩阵就是满秩的,也就是秩等于行数。回到上面线性方程组来说吧,因为线性方程组可以用矩阵描述嘛。秩就表示了有多少个有用的方程了。上面的方程组有3个方程,实际上只有2个是有用的,一个是多余的,所以对应的矩阵的秩就是2了。 OK。既然秩可以度量相关性,而矩阵的相关性实际上就表示了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间

数学基础-day3

匿名 (未验证) 提交于 2019-12-03 00:09:02
1 代数余子式 在一个n阶行列式A中,把(i,j)元素a ij 所在的第i行和第j列划去后,留下的n-1阶方阵的行列式叫做元素a ij 的余子式,记作M ij 。 代数余子式A ij =(-1) i+j M ij 2 伴随矩阵 对于n*n方阵,其代数余子式组成的方阵A * 称为A的伴随矩阵。 A*A * =|A|*I 3 范德蒙行列式 4 矩阵乘法 5 矩阵和向量的乘法 A为m*n的矩阵,x为n*1的列向量,则Ax为m*1的列向量。 矩阵和向量的乘法实际给出了从n维空间的点到m维空间点的线性变换,特殊地,若m=n,则Ax完成了n维空间内的线性变换。 6 矩阵的秩 在m*n矩阵A中,任取k行k列,不改变这k2个元素在A中的次序,得到k阶矩阵,称为矩阵A的k阶子式。 设在A中有一个不等于0的r阶子式D,且所有r+1阶子式全等于0,那么D称为矩阵A的最高阶非零子式,r称为矩阵A的秩,记作R(A)=r n*n的可逆矩阵,秩为n,可逆矩阵又称满秩矩阵。 秩与线性方程组的解的关系,对于n元线性方程组Ax=b: 无解的充要条件:R(A)<R(A,b) 唯一解的充要条件:R(A)=R(A,b)=n 无限多解的充要条件:R(A)=R(A,b)<n 7 向量组等价 向量b能由向量组A:a1,a2,…,am线性表示的充要条件是矩阵A=(a1,a2,…,am)的秩等于矩阵B=(a1,a2,…,am,b

MATLAB编程与应用系列-第3章 矩阵运算(2)

匿名 (未验证) 提交于 2019-12-02 22:56:40
本系列教程来源于出版设计《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:156204968@qq.com。 出版社:人民邮电出版社, 页数:525。 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:156204968@qq.com ###3.1.5 矩阵函数 MATLAB提供了丰富的函数来实现对矩阵的各种运算,下面将逐步介绍。因篇幅关系,将不作数学方面的解释。表3.1所示为常用的矩阵运算函数以及函数相对应的功能描述。 表3.1 常用矩阵运算函数 函数名 功能 det(X) 计算方阵行列式 rank(X) 求矩阵的秩,得出的行列式不为零的最大方阵边长。 trace(X) 矩阵A的迹b,即A的对角线元素之和 expm(A) 使用Pade近似算法计算eA,这是一个内部函数,A为方阵 expm1(A) 使用一个M文件和内部函数相同的算法计算e^A expm2(A) 使用泰勒级数计算e^A expm3(A) 使用特征值和特征向量计算e^A logm(X) 计算矩阵X的对数,它是expm(X)的反函数 funm(X, fun) 指定的函数fun计算方阵X的函数矩阵 sqrtm(X) 计算矩阵A的平方根A1/2,相当于X*X=A,求X polyvalm(P, X) 按照矩阵运算规则计算多项式的值。其中

《python数据分析和数据挖掘》——数据预处理

心不动则不痛 提交于 2019-11-30 18:25:18
此文为《python数据分析和数据挖掘》的读书笔记 通俗讲,经过我们前期的数据分析,得到了数据的缺陷,那么我们现在要做的就是去对数据进行预处理,可包括四个部分:数据清洗、数据集成、数据变换、数据规约。 处理过程如图所示: 1、数据清洗 1) 缺失值处理: 删除记录、数据插补、不处理。不处理吧总感觉不自在,删除了吧数据又有点舍不得,所以一般插补方法用的比较多,该文重点介绍Lagrange插补法和牛顿插补法,并介绍代码。 偷点懒他的详细过程我截图好了。 a 拉格朗日插补法 b 牛顿插补法 但是由于python中的Scipy库中提供了Lagrange插值法的函数,实现上更为容易,应用较多。而牛顿插值法则需要根据自行编写。需要指出两者给出的结果是相同的(相同次数、相同系数的多项式),不过表现的形式不同而已。 二话不说贴上亲测的python代码: import pandas as pd from scipy.interpolate import lagrange#导入拉格朗日函数 import sys sys.__stdout__=sys.stdout inputfile='catering_sale.xls'#销售数据途径 outputfile='tmp/sales.xls'#输出数据途径 data=pd.read_excel(inputfile,Index_col=u'日期')#读入数据

形象理解线性代数(三)——列空间、零空间(核)、值域、特征值(特征向量)、矩阵与空间变换、矩阵的秩

≡放荡痞女 提交于 2019-11-29 10:56:28
这里,我们还是要以 形象理解线性代数(一)——什么是线性变换? 为基础。矩阵对向量的作用,可以理解为线性变换,同时也可以理解为空间的变换,即(m*n)的矩阵会把一个向量从m维空间变换到n维空间。 一、 矩阵的列空间与矩阵的秩以及值域的关系 矩阵的列空间,其实就是矩阵的列所组成的空间 。比如我们考虑一个(3*2)的矩阵 ,他的列空间就是 向量和 向量所能组成的空间。在这里,我们有两个向量,所以矩阵的列秩为2(在两向量线性不想关的情况下,表现在图中即两个向量不共线)。如果共线,那么向量 可以写成 的线性表示,这个时候,这两个向量所张成的空间只能是一条直线,所以秩变成了1。 一个矩阵 中的m和n不能等价于矩阵的秩。矩阵的秩,其实就是矩阵的列空间所张成的空间的维度。 矩阵的秩的意义是列向量所能张成的空间的形状的一种描述,虽然在三维空间中,列向量张成的空间中的任一个向量要用三维坐标来表示,但是并不意味着这个空间是一个三维的体,而是一个面,只不过这个面是带有角度的。 从线性变换的角度理解的值域,其实就是从空间角度理解的矩阵的列空间。 二、矩阵与空间变换 同样我们考虑上面的矩阵 ,言外之意就是把二维空间转化为三维空间。在原二维空间中的一个向量 ,经过矩阵A变换后,可以写成: ,即 向量和 向量的线性组合。两个向量(不共线)只能组成平面,而不能形成一个立方体。也就是说,输入 的定义域是一个二维平面