数据预处理(normalize、scale)
2017-03-28 11:58
141 查看
matlab 工具函数(三)—— normalize(归一化数据)
注:待处理的数据 X∈Rd×N,N 表示样本的个数,d 则是单个样本的维度;
x∈[a,b]⇒x′=(d−c)⋅x−ab−a+c,x′∈[c,d]
其中 x−ab−a 将原始数据,缩放到 [0, 1] 区间内;
比如将数据从 [-1, 1] 线性映射到 [0.1, 0.9] 区间:
再比如对神经网络权值矩阵的 xavier-initializer 初始化方式,服从 (-r, r) 上的均匀分布(r=6nin+nout−−−−−−√),matlab 中的 rand() 生成的是 (0, 1) 上的均匀分布,这里如何从 (0, 1) 上的均匀分布,获取任意区间上的均匀分布((−r,r)),
x∼U[0,1]⇒x−01−0(r−(−r))−r=x⋅2r−r
注:待处理的数据 X∈Rd×N,N 表示样本的个数,d 则是单个样本的维度;
1. 去均值(remove DC)
X = bsxfun(@minus, X, mean(X));
2. 截断标准差
这里比如截断保留 +/- 3 个标准差,并 scale 至 -1/1xstd = 3*std(X(:)); X = max(min(xstd, X), -xstd)/xstd;
3. 从一个尺度空间,缩放(线性映射)到另一个尺度空间
现考虑将 [a,b] 缩放(map/transform)到另一个尺度空间 [c,d]:x∈[a,b]⇒x′=(d−c)⋅x−ab−a+c,x′∈[c,d]
其中 x−ab−a 将原始数据,缩放到 [0, 1] 区间内;
比如将数据从 [-1, 1] 线性映射到 [0.1, 0.9] 区间:
X = (.9-.1)*(X+1)/2+.1;
再比如对神经网络权值矩阵的 xavier-initializer 初始化方式,服从 (-r, r) 上的均匀分布(r=6nin+nout−−−−−−√),matlab 中的 rand() 生成的是 (0, 1) 上的均匀分布,这里如何从 (0, 1) 上的均匀分布,获取任意区间上的均匀分布((−r,r)),
x∼U[0,1]⇒x−01−0(r−(−r))−r=x⋅2r−r
function theta = initializeParameters(visSize, hidSize): r = sqrt(6/(visSize+hidSize)); W1 = rand(hidSize, visSize)*2*r-r; b1 = zeros(hidSize, 1); theta = [W1(:); b1(:)]; end
相关文章推荐
- 数据预处理之Normalize
- 数据标准化 数据归一化 数据预处理 data normalization / scale
- sklearn数据预处理-scale
- Sklearn数据预处理:scale, StandardScaler, MinMaxScaler, Normalizer
- 数据预处理:规范化(Normalize)和二值化(Binarize)
- 数据预处理 center&scale&box-cox
- 数据预处理的过程
- 数据预处理和weka.filters的使用--数据挖掘学习和weka使用(三)
- Google跨机房数据同步方案 Large-scale Incremental Processing Using Distributed Transactions and Notifications
- 数据预处理
- 【北大天网搜索引擎TSE学习笔记】第11节——倒排索引等数据文件的建立(预处理子系统)
- weka中的数据预处理
- Java/jdbc连接数据库预处理只能查询一条数据?
- 数据预处理的形式
- 数据预处理与关联规则挖掘
- 数据预处理(2)
- 读书笔记《数据挖掘概念与技术》第2章 数据预处理 2.7 小结
- 文本数据预处理系统软件
- PDO-使用预处理语句重复插入数据
- libsvm 数据预处理 模块化程序