前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这些数据处理方法你get了么?

这些数据处理方法你get了么?

作者头像
巴山学长
发布2019-10-16 11:41:25
1.9K0
发布2019-10-16 11:41:25
举报
文章被收录于专栏:巴山学长

今天取这个标题把小编给难倒了,本来想写“数据归一化”的,一查阅网上资料,发现大家对“归一化”和“标准化”各执一词,索性就不管了,就叫数据处理吧。本文目的不是为了让大家弄清楚什么是“归一化”、什么是“标准化”,而是将这些“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函数

代码语言:javascript
复制
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上发布

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档