文章目录
数据归一化\标准化
数据标准化(normalization)是将数据按比例缩放, 使之落入一个小的特定区间. 在某些比较和评价的指标处理中经常会用到, 去除数据的单位限制, 将其转化为无量纲的纯数据, 便于在不同单位或量级的指标能够进行比较和加权.
最典型的就是归一化处理, 即将数据统一映射到[0,1]区间
0-1标准化\Z-score标准化
0-1标准化
01 定义:
将数据的最大值\最小值记录下来, 通过公式
x = (x-min) / (max-min) 得到归一化之后的值
02 代码:
df = pd.DataFrame({
"value1":np.random.rand(10)*20,"value2":np.random.rand(10)*100})
def data_norm(df,*cols):
df_n = df.copy()
for col in cols:
ma = df_n[col].max()
mi = df_n[col].min()
df_n[col + "_n"] = (df[col]-mi) / (ma- mi) # 给df_n添加列
return df_n
df_n = data_norm(df,"value1","value2")
print(df_n.head())
03 案例应用
八类产品的两个指标value1, value2, 其中value1的权重为0.6, value2权重为0.4.
通过0-1标准化, 判断那个产品综合指标状况最好?
便于在不同单位或量级的指标能够进行比较和加权
df = pd.DataFrame({
"value1":np.random.rand(10)*30,
"value2":np.random