0.前言 理解量钢化:https://zhuanlan.zhihu.com/p/225387114 量钢化方法: 图片来源:https://zhuanlan.zhihu.com/p/225387114
数据归一化和标准化都属于数据特征无量纲的一种方式。
1.数据归一化Normalization 和 Min-Max Scaling 归一化的目的是让数据压缩在【0,1】范围内,包括两个边界数字0和数字1;其计算公式为: pandas实现方法:代码来源
import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame(np.random.randint(-100,100,size=(20, 4)), columns=list('ABCD'))
def minmax_norm(df_input):
return (df - df.min()) / ( df.max() - df.min())
df_minmax_norm = minmax_norm(df)
print(df_minmax_norm)
2.数据标准化 标准化是一种最为常见的量纲化处理方式。其计算公式为: pandas实现方法:代码来源
import pandas as pd
import numpy as np
np.random.seed(0)
df = pd.DataFrame(np.random.randint(-100,100,size=(20, 4)), columns=list('ABCD'))
def mean_norm(df_input):
return df_input.apply(lambda x: (x-x.mean())/ x.std(), axis=0)
df_mean_norm = mean_norm(df)
print(df_mean_norm)
3.数据最大化MaxS 最大值化,其目的是让最大值作为参照标准,所有的数据全部除以最大值;其计算公式为X / Max,即以最大值作为单位,全部数据全部去除以最大值。需要特别说明一点是,此种处理方式时一般都是要求数据全部大于0,否则可能就不适合用此种量纲方式。
pandas实现方法:
path = r'./file/'
def max_norm(data):
return data.apply(lambda x: (x)/ x.max(), axis = 1)
for i in os.listdir(path):
df = pd.read_excel(os.path.join(path,i))
df_MaxS = max_norm(df)
save_path = r'./file1/'
df_MaxS.to_excel(os.path.join(save_path,i),header = None,index = False)
print('done!')
参考资料: 数据处理中的标准化、归一化:https://zhuanlan.zhihu.com/p/351243330 12种数据量纲化处理方式:https://zhuanlan.zhihu.com/p/225387114 在 Pandas DataFrame 中如何归一化某列
|