4.3.2 数据规范化

数据规范化(归一化)处理是数据挖掘中的一项基础工作。消除指标间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例缩放,使之落入一个特定的区域,便于进行综合分析。如将工资收入属性映射到[-1, 1]或者[0, 1]内。

数据规范化对于基于距离的挖掘算法尤为重要

  • 最小 - 最大规范化
    也称为离差标准化,是对原始数据的线性变换,将数值值映射到[0, 1]之间。
    转换公式:max-min 为极差

    离差标准化保留了原来数据中存在的关系,是消除量纲和数据取值范围影响的最简单的方法。缺点:某个数值很大,规范化后接近0。将来有超过目前属性[min, max]取值范围的时候,会引起系统出错,需要重新设定min和max.

  • 零-均值规范化
    也称为标准差标准化,经过处理的数据的均值为0,标准差为1。
    转化公式:当前使用最多的数据标准化方法

  • 小数定标规范化
    通过移动属性值的小数位数,将属性值映射到[-1, 1]之间,移动的小数位数取决于属性值绝对值的最大值。
    转化公式为:

import numpy as np
import pandas as pd
datafile = './data/normalization_data.xls'  # 参数初始化
data = pd.read_excel(datafile, header=None)  # 读取数据
(data - data.min()) / (data.max() - data.min())  #最小-最大规范化
(data - data.mean()) / data.std()  # 零-均值规范化
data / 10**np.ceil(np.log10(data.abs().max())) # 小数定标规范化

np.ceil(np.log10(data.abs().max()))
0    3.0
1    3.0
2    3.0
3    4.0
dtype: float64

你可能感兴趣的:(4.3.2 数据规范化)