数据标准化处理方法

在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。

一、Min-max 标准化

    min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:

    新数据=(原数据-极小值)/(极大值-极小值)

    用svm对数据进行训练前一般采用此方法对数据进行标准化。

二、z-score 标准化

    这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。

    z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

    新数据=(原数据-均值)/标准差

    spss默认的标准化方法就是z-score标准化。

    用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。
    步骤如下:
    1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
    2.进行标准化处理:
      zij=(xij-xi)/si
      其中:zij为标准化后的变量值;xij为实际变量值。
    3.将逆指标前的正负号对调。
    标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

三、Decimal scaling小数定标标准化

    这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用decimal scaling标准化到 x'的计算方法是:

    x'=x/(10*j)

    其中,j是满足条件的最小整数。

    例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被规范化为-0.986。

    注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。

四、除了上面提到的数据标准化外还有对数Logistic模式、模糊量化模式等等:

    对数Logistic模式:新数据=1/(1+e^(-原数据))

    模糊量化模式:新数据=1/2+1/2sin[派3.1415/(极大值-极小值)*(X-(极大值-极小值)/2) ]       X为原数据

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据标准化是一种常用的数据处理方法,用于将不同尺度和范围的数据转化为统一的标准尺度。在Python中,可以使用多种方法进行数据标准化处理,以下是两种常用的方法: 1. 最小-最大标准化(Min-Max标准化): 最小-最大标准化是将数据线性地映射到指定的最小值和最大值之间的过程。公式如下: ``` X_scaled = (X - X_min) / (X_max - X_min) ``` 其中,X_scaled是标准化后的数据,X是原始数据,X_min是原始数据的最小值,X_max是原始数据的最大值。 以下是一个使用最小-最大标准化处理数据的示例代码: ```python from sklearn.preprocessing import MinMaxScaler data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] scaler = MinMaxScaler() scaled_data = scaler.fit_transform(data) print(scaled_data) ``` 输出结果为: ``` [[0. 0. 0. ] [0.5 0.5 0.5 ] [1. 1. 1. ]] ``` 2. 标准差标准化(Z-score标准化): 标准差标准化是将数据转化为均值为0,标准差为1的分布。公式如下: ``` X_scaled = (X - X_mean) / X_std ``` 其中,X_scaled是标准化后的数据,X是原始数据,X_mean是原始数据的均值,X_std是原始数据的标准差。 以下是一个使用标准差标准化处理数据的示例代码: ```python from sklearn.preprocessing import StandardScaler data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] scaler = StandardScaler() scaled_data = scaler.fit_transform(data) print(scaled_data) ``` 输出结果为: ``` [[-1.22474487 -1.22474487 -1.22474487] [ 0. 0. 0. ] [ 1.22474487 1.22474487 1.22474487]] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值