matlab归一化方法,数据归一化的基本方法 | 您所在的位置:网站首页 › 反余切函数的表达式 › matlab归一化方法,数据归一化的基本方法 |
大家好,又见面了,我是你们的朋友全栈君。 1.线性归一化 简单公式表达:y = (x-min Value)/(max Value-min Value) 其中,x是归一化之前的数据,y是归一化之后的数据,max Value 和 min Value 分别对应这一组数据中的最大值和最小值。范围:[0,1]。 适用于:把原来数据等比例缩放限定在某一范围内,在不涉及距离度量和协方差计算的时候使用。 2.标准差归一化 简单公式表达:y = (x-μ)/σ 其中,x,y分别对应归一化前后数据。μ代表这组数据的均差,σ代表这组数据的方差。 适用于:原来数据近似高斯分布。同时是距离度量的。 3.对数归一化 简单公示表达:y= log10(x) 其中,x,y分别对应归一化前后数据。 4.反余切归一化 简单公示表达:y = atan(x)*2/pi 其中,x,y分别对应归一化前后数据。反余切函数的范围在[0,π/2],因此对反余切得到的值乘2除π,把范围控制在[0,1] 5.mapminmax 这是matlab中封装好的方法,是线性归一化的一种。 表达式为:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin 其中,x,y分别对应归一化前后数据。xmax,xmin分别对应处理前数据的最大值和最小值,而ymax,ymin则是处理后的数据的最大值最小值,换言之,就是我们希望我们处理后的数据的范围。matlab中使用方式是,[matlab_minmax_data,s1] = mapminmax(minmax_data); matlab_minmax_data是处理后的矩阵,s1为mapminmax操作的索引,可以输出查看。minmax_data是处理前的数据。 简单matlab代码实现 %% 初始的数据部分 % 未经处理的数据data data = [1,3,9,20,2,6; ]; % 获取数据的个数,也就是矩阵的列数。 data_l=size(data,2); %% 进行线性函数归一化 %分配内存空间 minmax_data = zeros(1,data_l); for n=1:data_l %当前的值减去最小值,再除以最大值最小值之差 minmax_data(:,n)=(data(:,n)-min(data))/(max(data)-min(data)); end %输出结果 disp(‘线性归一化’); disp(minmax_data); %% 进行标准差归一化化 %分配内存空间 zscore_data = zeros(1,data_l); for m=1:data_l %当前值减去均值,再除以标准差 zscore_data(:,m)=(data(:,m)-mean(data))/std(data); end %输出结果 disp(‘标准差归一化’); disp(zscore_data); %% 进行对数归一化 % 分配内存空间 log_data = zeros(1,data_l); for n=1:data_l log_data(:,n)=log10(data(:,n)); end % 输出结果 disp(‘对数归一化’); disp(log_data); %% 进行反余切归一化 % 分配内存空间 atan_data = zeros(1,data_l); for n=1:data_l %反余切函数的范围在[0,π/2],因此对反余切得到的值乘2除π,把范围控制在[0,1] atan_data(:,n)=atan(data(:,n))*2/pi; end %输出结果 disp(‘反余切归一化’); disp(atan_data); %% 进行mapminmax归一化 [matlab_minmax_data,s1] = mapminmax(minmax_data); %输出结果 disp(‘mapminmax归一化’); disp(matlab_minmax_data); %输出归一化的索引 disp(‘mapminmax归一化索引’); disp(s1); 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152336.html原文链接:https://javaforall.cn |
CopyRight 2018-2019 实验室设备网 版权所有 |