归⼀化函数normalize详解
opencv2归⼀化函数normalize详解
1.归⼀化定义与作⽤
归⼀化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的⼀定范围内。⾸先归⼀化是为了后⾯数据处
理的⽅便,其次是保证程序运⾏时收敛加快。归⼀化的具体作⽤是归纳统⼀样本的统计分布性。归⼀化在0-1之间是统计的
概率分布,归⼀化在某个区间上是统计的坐标分布。归⼀化有同⼀、统⼀和合⼀的意思。
归⼀化的⽬的简⽽⾔之,是使得没有可⽐性的数据变得具有可⽐性,同时⼜保持相⽐较的两个数据之间的相对关系,如⼤
⼩关系;或是为了作图,原来很难在⼀张图上作出来,归⼀化后就可以很⽅便的给出图上的相对位置等。
在使⽤机器学习算法的数据预处理阶段,归⼀化也是⾮常重要的⼀个步骤。例如在应⽤SVM之前,缩放是⾮常重要的。
Sarle的神经⽹络FAQ的第⼆部分(1997)阐述了缩放的重要性,⼤多数注意事项也适⽤于SVM。缩放的最主要优点是能
够避免⼤数值区间的属性过分⽀配了⼩数值区间的属性。另⼀个优点能避免计算过程中数值复杂度。因为关键值通常依赖特
征向量的内积(innerproducts),例如,线性核和多项式核,属性的⼤数值可能会导致数值问题。我们推荐将每个属性线
性缩放到区间[-1,+1]或者[0,1]。
当然,我们必须使⽤同样的⽅法缩放训练数据和测试数据。例如,假设我们把训练数据的第⼀个属性从[-10,+10]缩放到
[-1,+1],那么如果测试数据的第⼀个属性属于区间[-11,+8],我们必须将测试数据转变成[-1.1,+0.8]。
参考:“SVM:从理论到OpenCV实践”4.2归⼀化数据:
ize函数介绍
函数原型:
voidnormalize(InputArraysrc,OutputArraydst,doublealpha=1,doublebeta=0,intnorm_type=
NORM_L2,intdtype=-1,InputArraymask=noArray())
该函数归⼀化输⼊数组使它的范数或者数值范围在⼀定的范围内。
Parameters:
src
输⼊数组
dst
输出数组,⽀持原地运算
alpha
rangenormalization模式的最⼩值
beta
rangenormalization模式的最⼤值,不⽤于normnormalization(范数归⼀化)模式。
normType
归⼀化的类型,可以有以下的取值:
NORM_MINMAX:数组的数值被平移或缩放到⼀个指定的范围,线性归⼀化,⼀般较常⽤。
NORM_INF:此类型的定义没有查到,根据OpenCV1的对应项,可能是归⼀化数组的C-范数(绝对值的最⼤值)
NORM_L1:归⼀化数组的L1-范数(绝对值的和)
NORM_L2:归⼀化数组的(欧⼏⾥德)L2-范数
dtype
dtype为负数时,输出数组的type与输⼊数组的type相同;
否则,输出数组与输⼊数组只是通道数相同,⽽tpye=CV_MAT_DEPTH(dtype).
mask
操作掩膜,⽤于指⽰函数是否仅仅对指定的元素进⾏操作。
3.归⼀化公式:
1、线性函数转换,表达式如下:(对应NORM_MINMAX)
ifmask(i,j)!=0
dst(i,j)=(src(i,j)-min(src))*(b'-a')/(max(src)-min(src))+a'
el
dst(i,j)=src(i,j)
其中b'=MAX(alpha,beta),a'=MIN(alpha,beta);
2.当norm_type!=NORM_MINMAX:
ifmask(i,j)!=0
dst(i,j)=src(i,j)*alpha/norm(src,norm_type,mask)
el
dst(i,j)=src(i,j)
其中,函数norm的功能是计算norm(范数)的绝对值
Thefunctionsnormcalculateanabsolutenormofsrc1(whenthereisnosrc2):
本文发布于:2022-12-12 00:24:39,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/88839.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |