最近在看Yang大牛稀疏表示论文的代码,发现里面很多的操作的用到了矩阵的列归一化,这里谈一谈列归一化的实现,以及其带来的好处。
矩阵的列归一化,就是将矩阵每一列的值,除以每一列所有元素平方和的绝对值,这样做的结果就是,矩阵每一列元素的平方和为1了。
举个例子,矩阵[1,2,3]',将其归一化的结果就是[0.2673,0.5345,0.8018]。其平方和就为1了。
Yang在代码中,将那些平方和为0,以及平方和很小的列向量的剔除了,不用做训练,所以最后训练样本矩阵中的每一列就是一个训练图像块,行数代表了图像块的大小。
之前一直不清楚,为什么要做这么多的归一化,直到想到了对称矩阵(请原谅数学不好的我,在理解的路上磕磕绊绊)。
假设通过上述归一化处理的样本集合为X,x的没一列的平方和都是1,假设X是25*1000的一个矩阵好了,那么X‘为一个1000*25的矩阵,Yang等人的方法里用到了
A=X’*X。那么通过上面的那些变化,X的每列元素的平方和都是1,那么A的对角线元素都是1,且A是关于对角线对称的。那么A就是一个对角线元素全为1的对称矩阵,而实对称矩阵具有如下的性质:
这就为之后的处理奠定了基础。
最近在看Yang大牛稀疏表示论文的代码,发现里面很多的操作的用到了矩阵的列归一化,这里谈一谈列归一化的实现,以及其带来的好处。矩阵的列归一化,就是将矩阵每一列的值,除以每一列所有元素平方和的绝对值,这样做...
最近在看Yang大牛稀疏表示论文的代码,发现里面很多的操作的用到了矩阵的列归一化,这里谈一谈列归一化的实现,以及其带来的好处。
矩阵的列归一化,就是将矩阵每一列的值,除以每一列所有元素平方和的绝对值,这样做的结果就是,矩阵每一列元素的平方和为1了。
举个例子,矩阵[1,2,3]',将其归一化的结果就是[0.2673,0.5345,0.8018]。其平方和就为1了。
Yang在代码中,将那些平方和为0,以及平方和很小的列向量的剔除了,不用做训练,所以最后训练样本矩阵中的每一列就是一个训练图像块,行数代表了图像块的大小。
之前一直不清楚,为什么要做这么多的归一化,直到想到了对称矩阵(请原谅数学不好的我,在理解的路上磕磕绊绊)。
假设通过上述归一化处理的样本集合为X,x的没一列的平方和都是1,假设X是25*1000的一个矩阵好了,那么X‘为一个1000*25的矩阵,Yang等人的方法里用到了
A=X’*X。那么通过上面的那些变化,X的每列元素的平方和都是1,那么A的对角线元素都是1,且A是关于对角线对称的。那么A就是一个对角线元素全为1的对称矩阵,而实对称矩阵具有如下的性质:
这就为之后的处理奠定了基础。
本文不讲归一化原理,只介绍实现(事实上看了代码就会懂原理),代码如下: def Normalize(data): m = np.mean(data) mx = max(data) mn = min(data) return [(float(i) - m) / (mx - mn) for i in data] ...
本文不讲归一化原理,只介绍实现(事实上看了代码就会懂原理),代码如下:
defNormalize(data): m = np.mean(data) mx = max(data) mn = min(data)return [(float(i) - m) / (mx - mn)for iin data]
代码只有5行并不复杂,但是需要注意的一点是一定要将计算的均值以及矩阵的最大、最小值存为变量放到循环里,如果直接在循环里计算对应的值会造成归一化特别慢,笔者之前有过深切的酸爽体验….
这属于基础知识,老师应该讲的,...最小最大归一化 和区间映射(我理解的是把一个区间[a,b]映射到[c,d],c+(x-a)*(d-c)/(b-a),没查,应该是这样,主要要理解的问题是两段距离映射的话要除以比例因子(d-c)/...
这属于基础知识,老师应该讲的,可是;老师没讲.....在这个实验室,一师姐老师只要不在考试购物唱歌,完全无视其他人存在,给各个单身小学弟卖钱包,手表.......真是够了,精神污染....
一.最小最大归一化
和区间映射(我理解的是把一个区间[a,b]映射到[c,d],c+(x-a)*(d-c)/(b-a),没查,应该是这样,主要要理解的问题是两段距离映射的话要除以比例因子(d-c)/(b-a),自己理解的,这样就可以把数据映射到[-1,1])不一样,这是映射到[0,1],就是x' = (x-min)/(max-min),其中max和min分别是是x序列的最大、小值,并不是0和1。
这种方法的缺点是,如何加入新数据的话min和max可能变化。
二.Z-Score标准化方法
这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化(x-u)/std。经过处理的数据符合标准正态分布,即均值为0,标准差为1。
三.L2标准化
由此,我们可以很块的写出最简单的matlab源代码如下:首先按行归一化:
% Examples A=[3 4;5 12]; [m n] = size(A); % normalize each row to unit for i = 1:m A(i,:)=A(i,:)/norm(A(i,:)); end
按列归一化。
% normalize each column to unit A=[3 4;5 12]; for i = 1:n A(:,i)=A(:,i)/norm(A(:,i)); end
然而,上述代码最能实现功能,但并不是最优的,它只是一种对该过程的最佳理解代码。在Matlab中,for循环是一件非常费时间的结构,因此我们在代码中应该尽量少用for循环。由此,我们可以用repmat命令得到另一种更加简洁更加快速的代码,只是这种代码对于初学者理解起来比较费劲。可以看做是自己水平的一种进阶吧。
% normalize each row to unit A = A./repmat(sqrt(sum(A.^2,2)),1,size(A,2)); % normalize each column to unit A = A./repmat(sqrt(sum(A.^2,1)),size(A,1),1);
参考:http://blog.sciencenet.cn/blog-810210-655011.html
http://www.newsmth.net/nForum/#!article/NumComp/108647
参考下面文章,可以使用normalize 函数。 ... 对于彩色rgb图像,也可以直接使用以上函数, ...以上主要应用于给定矩阵image,但是里面的数值没有归一化到0-255之间,不方便保存。因此可以使用以上函数归一化后保存。
归一化类型,常见的有NORM_L1,NORM_L2,NORM_INF,NORM_MINMAX	dtype	whennegative,theoutputarrayhasthesametypeassrc;	otherwise,ithasthesamenumber...
下面自己写的文档函数介绍部分参考了这2篇博客: https://blog.csdn.net/cosmispower/article/details/64457406 ... 自叙:第一次写博客,本来不想写,但网上对于这个归一化函数实例部分函数讲解部分没有十...
对数据归一化的matlab程序。 通过输入不同的上下限,可将原始数据归一化到指定的区间内。...针对数据的列归一化,较为完善的合法性判断,基本不会报错。 自己编写的,免费拿去用吧! 尊重知识产权就行。
如何对混淆矩阵进行绘制并归一化结果? sklean.metrics.confusion_matrix 混淆矩阵是数据科学、数据分析和机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出...
在使用KNN之前需要对所有的变量进行归一化处理。下面介绍几种归一化的方法: 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 2、对数函数转换,表达式如下: y=log10 (x) 3、反余切函数转换 ,...
归一化是指一种简化计算的方式,将数据经过处理后限定到...归一化具体计算方法:y=(x-MinValue)/(MaxValue-MinValue),这里的MaxValue和MinValue分别是矩阵中每一个字段的最大值和最小值,x是字段中的值,y是归一化结
1、法线归一化的一个意思是: 通过叉乘得到一个面的面法线,然后进行归一化的目的是,求得单位长度的向量,就是说,法线向量的x,y,z都要除以向量长度。因为法线长度和面积成正比,但光照不能随面积变化,所以取...
数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的...
关于归一化报错问题——以Python为例 不少小伙伴在开始数据处理,进行归一化的时候,会出现以下报错问题:本文将讲述报错原因以及如何改正。在改错之前,首先要了解归一化的基本知识。归一化介绍 通常,在做数据...
可参考sklearn_数据处理API帮助理解! 标准归一化 ...先贴出主要的源码,乍一看,很乱,其实细看之下,就是多了一些判断稀疏矩阵之类的条件性代码。 #coding=utf-8 import numpy as np from...
批量归一化(BatchNormalization) 对输入的标准化(浅层模型) 处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。 标准化处理输入数据使各个特征的分布相近 批量归一化(深度模型) 利用小批量上的...
层次分析法中判断矩阵的填写方法、一致性检验的步骤、以及根据判断矩阵计算权重的方法
提出了一种改进的行和归一化排序方法(INRAM),从保序性、置换不变性、相容性和累积优势度等方面对该方法的合理性进行了研究,并且利用互补判断矩阵和互反判断矩阵之间的转换公式,给出了相应的求解互补判断矩阵...
零均值归一化互相关函数是用于对参考子区和目标子区进行相关性测量,当值为1时,相关性最好,下面是零均值归一化互相关函数的公式: 话不多说,上代码,下面是MATLAB代码实现:该脚本操作很简单,将代码复制到...