有些时候我们需要对数据去除量纲,例如对数据聚类之前、或者使用神经网络模型预测时。
下面我们介绍两种常见的方法:
方法1:Min-Max Scaling
方法2:Z-score Normalization
假设原来的数据是x:
x = [3 5 6 2 1];
给大家举例,假设原来的数据为[3 5 6 2 1],最小值为1,最大值为6,因此将数据中的每个数都减去最小值1,然后再除以5(由6-1计算得到),就能够得到特征缩放的结果:[0.4 0.8 1 0.2 0].
代码如下:
xmin = min(x);
xmax = max(x);
new_x = (x - xmin)/(xmax-xmin);
disp(new_x)
代码如下:
x_mean = mean(x);
x_std = std(x); % 一般是样本标准差
new_x = (x - x_mean) / x_std;
disp(new_x)
如果x是一个矩阵,要对每一列分别标准化,那么可以采用下面的代码:
x = [12 1 7;
12 20 4;
17 16 10;
3 16 17;
7 3 13];
% 方法1:Min-Max Scaling
xmin = min(x);
xmax = max(x);
new_x = (x - xmin)./(xmax-xmin);
disp(new_x)
% 方法2:Z-score Normalization
x_mean = mean(x);
x_std = std(x); % 一般是样本标准差
new_x = (x - x_mean) ./ x_std;
disp(new_x)
事实上只需要将原来代码中的除法变成./即可。
在线性代数中,只有两个大小完全相同的矩阵才可以进行相加,而在MATLAB中,只要两个矩阵的大小兼容,就能够进行计算。
以矩阵的加法为例,下表我们给出了MATLAB支持的五种算术运算的兼容模式:
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...