我有一个mat文件,其结构如下所示:
如何规范化数据并将其另存为.dat文件(ascii)
答案 0 :(得分:5)
我假设你想要标准化每一列。
有两种方法可以规范化:
(1)将最小值设置为0,最大值设置为1
dataset = bsxfun(@minus,dataset,min(dataset));
dataset = bsxfun(@rdivide,dataset,max(dataset));
(2)将平均值设置为零,将标准差设置为1(如果没有统计工具箱,请分别使用mean
和std
进行减法和除法,如上所述。
dataset = zscore(dataset);
修改强>
为什么有人使用选项2来规范化?
当您计算不同数据点之间的差异(相异性)时,您可能需要平均权衡不同的维度。由于具有较大方差的维度将主导不相似性度量,因此将方差归一化为1。
答案 1 :(得分:0)
您的规范化:
dataset = dataset-ones(size(dataset,1),1)*min(dataset) % subtract min
dataset = dataset ./ (ones(size(dataset,1),1)*max(dataset)+eps) % divide by max