模式识别之样本数据归一化(Normalization)与标准化(Standardization)
归一化化定义:我是这样认为的,归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内,因为我们得到的样本数据中可能一个特征向量的某几个元素的值非常大,使得特征数据不在一个数量级,因此必须限定在一个合适的范围内。归一化就是为了后面数据处理的方便,其次是保正程序运行时收敛加快。没有经过归一化,寻找最优解的过程:经过归一化,把各个特征的尺度控制在相同的范围内:





5、标准差标准化
经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:
其中μ为所有样本数据的均值,σ为所有样本数据的标准差。
而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法:
问题一: 对于归一化处理,其实现的是将一组数据映射到特定的数值范围内。比如matlab自带的mapmaxmin函数,所用的映射函数为y=(ymax-ymin)*(x-xmin)/(xmax-xmin)+ymin 其中,x为输入,y为归一化处理后的输出,[ymin,ymax]是映射的范围,如[0,1]或者[-1,4]等,而(xmax,xin)是输入的数据集x的最小值和最大值。如对于一个178*13的数据集,每一行代表一瓶酒,每一列代表一种特征(如下图)一共13个特征。而在这组数据中,特征5和特征13相对于其他数据,是两组奇异样本数据,所谓奇异样本,是相对于其他输入样本特别大或特别小的样本矢量。
mapmaxmin函数对特征数据归一化处理,是对每一特征来单独归一化的,也就是对图中每一列数据进行归一化。下图是归一化后的数据。归一化后的数据都被映射在[-1,1]范围内,对进一步的数据操作提供方便。
问题三:归一化可以将数据集中太大或太小的样本映射到统一的范围内,但是,这个范围区间的选择怎么定呢?理论上,这个值可以自己随便设定,但是一般情况下,选取[-1,1],2个数值长度的空间,能得到比较好的分类效果。下面是测试实验截图:
(1)采用训练数据和测试数据一起归一化处理,范围为[0,1],获得精度为61.79%
更多推荐





所有评论(0)