一、说明:

Z-Score标准化是数据处理的一种常用方法。通过它能够将不同量级的数据转化为统一量度的Z-Score分值进行比较。提高了数据可比性,削弱了数据解释性。

二、公式:

在这里插入图片描述

1、总体数据的均值(μ)

2、总体数据的标准差(σ)

3、个体的观测值(x)

三、Z-Score的优缺点

优点:
1、简单,容易计算,凭借最简单的数学公式就能够计算出Z-Score并进行比较。

2、Z-Score能够应用于数值型的数据,并且不受数据量级的影响,因为它本身的作用就是消除量级给分析带来的不便。

缺点:
1、首先,估算Z-Score需要总体的平均值与方差,这一值在真实的分析与挖掘中很难得到,大多数情况下是用样本的均值与标准差替代。

2、其次,Z-Score对于数据的分布有一定的要求,正态分布是最有利于Z-Score计算的。

3、最后,Z-Score消除了数据具有的实际意义,A的Z-Score与B的Z-Score与他们各自的分数不再有关系,因此Z-Score的结果只能用于比较数据间的结果,数据的真实意义还需要还原原值。

四、Z-Score标准化python代码实现

import math
def get_average(data):  #求数组平均数
    return sum(data) / len(data)
def get_variance(data):#求数组方差
    average = get_average(data)
    return sum([(x - average) ** 2 for x in data]) / len(data)
def get_standard_deviation(data): #求数组标准差
    variance = get_variance(data)
    return math.sqrt(variance)
def get_z_score(data): #求数组的z-score归一化最后的结果
    avg = get_average(data)
    stan = get_standard_deviation(data)
    scores = [(i-avg)/stan for i in data]
    return scores

五、实际应用Python实现

def get_z_score(df):
    return (df['Duration'] - df['Duration'].mean())/df['Duration'].std()

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐