归一化

  • 常见的归一化方法:

1、min-max归一化(Min-Max Normalization)

对各维特征值分别进行线性变换,使得各维特征值被映射到[0, 1]之间(区间缩放),转换函数如下:

其中max为某一维特征值的最大值,min为某一列特征值的最小值。这种方法有个缺陷,就是当有新样本加入时,max和min可能会变化,需要重新定义,然后需要重新计算各特征值。

2、z-score标准化

这种方法用各维的均值和标准差来标准化各维特征值,它的转换函数为:

经过处理后,各维特征值相当于从标准正态分布采样得到,即各维特征服从标准正态分布。

此外,标准化的本质就是表示原始值与均值之间差了多少个标准差,是一个相对值,所以有去除量纲的功效。


p代表的是样例为正例的概率,是一个与模型无关而只与数据集有关的量,而总的归一化代价是取决于模型的好坏的

首先如果不归一化会怎么样,我们把下面公式的分母去掉,并重新定义计算函数:

#计算 正概率代价(横轴)
def calculate_Pcost(p,c01,c02):
    Pcosts=[]
    for i in range(len(p)):
        Pcost=round(p[i]*c01,4)
        Pcosts.append(Pcost)
    return Pcosts
#计算 归一化总概率(纵轴)
def calculate_cost_norm(p,c01,c02,FNR,FPR):
    costs_norm=[]
    for i in range(len(p)):
        cost_norm=round((FNR*p[i]*c01+FPR*(1-p[i])*c02),4)
        costs_norm.append(cost_norm)
    return  costs_norm

  • 实验结果

归一化_第1张图片

右边的图在给定p下其纵坐标与横坐标受cost01与cost10的影响,当cost01,cost10改变时,不方便比较,于是需要归一化,都除以pcost01+(1-p)cost10,均匀缩放到[0,1]的范围内

你可能感兴趣的:(归一化)