想知道怎么用matlab做数据的无量纲化?
发布网友
发布时间:2022-04-20 03:13
我来回答
共3个回答
热心网友
时间:2023-12-20 15:54
1. min-max归一化
该方法是对原始数据进行线性变换,将其映射到[0,1]之间,该方法也被称为离差标准化(但是请注意,网上更多人喜欢把z-score称为标准化方法,把min-max称为归一化方法,然后在此基础上,强行给标准化(z-score)与归一化(min-max)划条界线,以显示二者之间的相异性。对!二者之间确实有很大的不同,这个我们后面会有介绍,但是这两个方法说到底还都是用来去除量纲的,都是无量纲化技术中的一员而已,所以,请不要纠结标准化与归一化这两个概念了)。
上式中,min是样本的最小值,max是样本的最大值。由于最大值与最小值可能是动态变化的,同时也非常容易受噪声(异常点、离群点)影响,因此一般适合小数据的场景。此外,该方法还有两点好处:
1) 如果某属性/特征的方差很小,如身高:np.array([[1.70],[1.71],[1.72],[1.70],[1.73]]),实际5条数据在身高这个特征上是有差异的,但是却很微弱,这样不利于模型的学习,进行min-max归一化后为:array([[ 0. ], [ 0.33333333], [ 0.66666667], [ 0. ], [ 1. ]]),相当于放大了差异;
2) 维持稀疏矩阵中为0的条目。
使用方法如下:
from sklearn.preprocessing import MinMaxScaler
x = np.array([[1,-1,2],[2,0,0],[0,1,-1]])
x1 = MinMaxScaler().fit_transform(x)
热心网友
时间:2023-12-20 15:54
在matlab中可以用函数zscore对数据矩阵进行无量纲化。
假设在matlab中输入矩阵x,输入函数y=zscore(x)即可对该矩阵进行无量纲化。
热心网友
时间:2023-12-20 15:55
http://zhidao.baidu.com/question/386607480.html?oldq=1