美文网首页编程学习
Python 数据归一化/标准化

Python 数据归一化/标准化

作者: 米小河123 | 来源:发表于2020-01-20 16:41 被阅读0次

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。最典型的就是数据的归一化处理,即将数据统一映射到(0,1]区间上

(1)0-1标准化
将数据的最大最小值记录下来,并通过max-min作为基数(即min=0,max=1)进行数据的归一化处理

x=(x - min) / (max - min)

df = pd.DataFrame({"value1":np.random.rand(10)*20,
                  'value2':np.random.rand(10)*100})
print(df.head())
print('------')
# 创建数据

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_n[col] - mi) / (ma - mi)
    return(df_n)
# 创建函数,标准化数据

df_n = data_norm(df,'value1','value2')
print(df_n.head())

(2)Z-score标准化
Z分数(z-score),是一个分数与平均数的差再除以标准差的过程 → z=(x-μ)/σ,其中x为某一具体分数,μ为平均数,σ为标准差
Z值的量代表着原始分数和母体平均值之间的距离,是以标准差为单位计算。在原始分数低于平均值时Z则为负数,反之则为正数
数学意义:一个给定分数距离平均数多少个标准差?

df = pd.DataFrame({"value1":np.random.rand(10) * 100,
                  'value2':np.random.rand(10) * 100})
print(df.head())
print('------')
# 创建数据

def data_Znorm(df, *cols):
    df_n = df.copy()
    for col in cols:
        u = df_n[col].mean()
        std = df_n[col].std()
        df_n[col + '_Zn'] = (df_n[col] - u) / std
    return(df_n)
# 创建函数,标准化数据

df_z = data_Znorm(df,'value1','value2')
u_z = df_z['value1_Zn'].mean()
std_z = df_z['value1_Zn'].std()

# 标准化数据
# 经过处理的数据符合标准正态分布,即均值为0,标准差为1
print(df_z)
print('标准化后value1的均值为:%.2f, 标准差为:%.2f' % (u_z, std_z))

# 什么情况用Z-score标准化:
# 在分类、聚类算法中,需要使用距离来度量相似性的时候,Z-score表现更好

# 案例应用
# 八类产品的两个指标value1,value2,其中value1权重为0.6,value2权重为0.4
# 通过0-1标准化,判断哪个产品综合指标状况最好

df = pd.DataFrame({"value1":np.random.rand(10) * 30,
                  'value2':np.random.rand(10) * 100},
                 index = list('ABCDEFGHIJ'))
#print(df.head())
#print('------')
# 创建数据"

df_n1 = data_norm(df,'value1','value2')
# 进行标准化处理

df_n1['f'] = df_n1['value1_n'] * 0.6 + df_n1['value2_n'] * 0.4
df_n1.sort_values(by = 'f',inplace=True,ascending=False)
df_n1['f'].plot(kind = 'line', style = '--.k', alpha = 0.8, grid = True)
df_n1
# 查看综合指标状况
image.png

相关文章

  • Normalization数据归一化/标准化

    Normalization(数据归一化)_大数据_Miracle.Zhao的博客-CSDN博客 数据标准化/归一化...

  • python中归一化、标准化模型保存与加载

    python中归一化、标准化模型保存与加载

  • 均一化和标准化

    数据的标准化(normalization)和归一化 数据的标准化(normalization) 将数据按比例缩放,...

  • 可能是最全的数据标准化教程(附python代码)

    什么是数据标准化(归一化) 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲...

  • Stata--标准化、归一化

    由来 标准化、归一化是我们经常遇到的需求,如下式子 标准化 归一化 整体标准化和归一化 分组标准化和归一化

  • 归一化与标准化

    归一化与标准化 归一化与标准化本质上是一种线性变化 如果对输出结果的范围有要求(0~1之间,用归一化) 如果数据较...

  • 数据归一化方法

    【转载】数据归一化和两种常用的归一化方法 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不...

  • sklearn进行对数据标准化、归一化以及将数据还原的方法

    的方法 标准化和归一化的区别 归一化其实就是标准化的一种方式,只不过归一化是将数据映射到了[0,1]这个区间中。标...

  • Normalization

    Normalization-归一化。 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的...

  • 2018-01-08

    "R语言学习笔记之数据标准化" 数据标准化/归一化 数据标准化是将数据按比例缩放,使之落入一个小的特定区间。在某些...

网友评论

    本文标题:Python 数据归一化/标准化

    本文链接:https://www.haomeiwen.com/subject/snijzctx.html