今天取这个标题把小编给难倒了,本来想写“数据归一化”的,一查阅网上资料,发现大家对“归一化”和“标准化”各执一词,索性就不管了,就叫数据处理吧。本文目的不是为了让大家弄清楚什么是“归一化”、什么是“标准化”,而是将这些“XX化”的处理方式集合到一个函数里,方便平时大家处理数据时调用,因此也就没有必要刻意区分这些个概念。要是大家有不同看法,欢迎在推文下方留言,给小编解解惑
。
经过小编上网查阅,收集了以下十来种方法:
1、 最大值归一化,即是将对应数据xi除以数据最大值xmax:
yi = xi/xmax;
2、 区间归一化,即是将数据最大值xmax与最小值xmin之和减去该数据xi,再与最大值xmax相除:
yi = (xmax + xmin - xi)/xmax;
3、最大值极差归一化,即是将数据最大值xmax减去对应数据xi,再与最大最小值之差(xmax - xmin)相除:
yi = (xmax - xi)/(xmax - xmin);
4、最小值极差归一化,即是将对应数据xi减去最小值xmin,再与最大最小值之差(xmax - xmin)相除:
yi = (xi-xmin)/(xmax - xmin);
5、均值归一化,即是将对应数据xi减去数据均值xmean,再与最大最小值之差(xmax - xmin)相除:
yi = (xi-xmean)/(xmax-xmin)
6、占比归一化,即是对应数据xi与数据总和xsum相除:
yi = xi/xsum;
7、z-score标准化,即是将对应数据xi减去数据平均值xmean,再与数据标准差xstd;相除:
yi = (xi-xmean)/xstd;
8、log10归一化,即是将对应数据xi取以10为底的对数,再与数据最大值xmax以10为底的对数值相除:
yi = log10(xi)/log10(xmax);
9、反正切归一化,即是将对应数据xi取反正切值乘以2,再与π相除:
yi = atan(xi)*2/π;
10、L2范数归一化,即是将对应数据xi与数据的模||X||相除:
yi = xi/||X||
其中||X|| = sqrt(x1^2+x2^2+...+xn^2);
测试用main.m函数
clc;clear;close all;
x = 100*rand(10,4);
[m,n] = size(x);
name = {'最大值归一化';'区间归一化';'最大值极差归一化';'最小值极差归一化';...
'均值归一化';'占比归一化';'z-score标准化';'log10归一化';'反正切归一化';...
'L2范数归一化'};
color = {'r','b','g','y','m','c','k','b-.','k-.','r-.'};
% 设置归一化方法种类数
N = 10;
% 取第一列数据作为测试
xm = mean(x(:,1));
xs = std(x(:,1));
xcv = xm/xs;
% 初始化归一化结果
y = zeros(m,n,N);
% 将N中归一化计算结果存入y中
for k = 1:N
% 调用第k中处理方法并存入y中
y(:,:,k) = normalization(x,k);
end
% 提取第一列数据进行绘图
t = 1:m;
figure('Color','white');
subplot(1,2,1); plot(t,x(:,1),'ro-','LineWidth',1.5);title('原始数据');
subplot(1,2,2); hold on;
% 计算第一列处理后的均值
ym = zeros(1,N);
% 计算第一列处理后的方差
ys = zeros(1,N);
for k = 1:N
ym(k) = mean(y(:,1,k));
ys(k) = std(y(:,1,k));
plot(t,y(:,1,k),color{k},'LineWidth',1.5);
end
% 计算变异系数
ycv = ym./ys;
title('归一化数据');
legend(name);
hold off;
box on;
figure('Color','white');
% 绘制处理前后的均值、方差和变异系数
nt = 1:N;
plot(nt,ym,'r*-',nt,ys,'bo-',nt,ycv,'k-.','LineWidth',1.5);
title('不同方法对应的均值、方差和变异系数');
xlabel('方法序号');
legend('均值','方差','变异系数');
运行结果
处理前后数据对比
[1] https://www.zhihu.com/question/20467170
[2] https://blog.csdn.net/pipisorry/article/details/52247379
[3] https://blog.csdn.net/geekmanong/article/details/51344732
封面图片:由mcmurryjulie在Pixabay上发布