矩阵常用归一化

简介:   这属于基础知识,老师应该讲的,可是;老师没讲.....在这个实验室,一师姐老师只要不在考试购物唱歌,完全无视其他人存在,给各个单身小学弟卖钱包,手表.......真是够了,精神污染.... 一.最小最大归一化   和区间映射(我理解的是把一个区间[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。

  这属于基础知识,老师应该讲的,可是;老师没讲.....在这个实验室,一师姐老师只要不在考试购物唱歌,完全无视其他人存在,给各个单身小学弟卖钱包,手表.......真是够了,精神污染....

一.最小最大归一化

  和区间映射(我理解的是把一个区间[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

目录
相关文章
|
12月前
|
存储 机器学习/深度学习 计算机视觉
稠密矩阵
稠密矩阵是一种特殊形式的矩阵,其中所有元素都是非零的。与稀疏矩阵相比,稠密矩阵在存储和计算时需要更多的空间和计算资源,因为它的所有元素都需要被存储和计算。
205 7
|
1月前
|
数据采集 定位技术 计算机视觉
归一化
【9月更文挑战第15天】
54 3
|
5月前
玩转矩阵
玩转矩阵
|
机器学习/深度学习 决策智能
矩阵分析 (四)向量和矩阵的范数
矩阵分析 (四)向量和矩阵的范数
149 0
|
算法 Python
线代矩阵问题
线代矩阵问题
107 0
【线性代数】求矩阵的特征值、特征向量和协方差矩阵
线性代数基础知识:求矩阵的特征值、特征向量和协方差矩阵
【线性代数】求矩阵的特征值、特征向量和协方差矩阵
|
人工智能 开发者
矩阵的秩 | 学习笔记
快速学习矩阵的秩
284 0
矩阵的秩 | 学习笔记
|
Windows
详解扬氏矩阵
详解扬氏矩阵
168 0
详解扬氏矩阵
|
机器学习/深度学习
矩阵相关练习
矩阵相关练习
矩阵相关练习