数据变换是数据准备的重要环节,它通过数据平滑、数据聚集、数据概化和规范化等方式将数据转化成适用于数据挖掘的形式。
- 数据平滑:去除数据中的噪声,将连续的数据离散化。可采用分箱、聚类和回归的方式进行数据平滑。
- 数据聚集:对数据进行汇总,在SQL中有一些聚集函数,如:Max()、Sum().
- 数据概化:用较高的概念替换较低的概念。如:上海、北京、深圳可以概化为中国。
- 数据规范化:使属性数据按比例缩放,将原来的数据映射到一个新的特定区域中。
- 属性构造:构造出新的属性并添加到属性集中,即特征工程。如数据表中有每科的成绩,可以构造总和属性,用于后续的数据挖掘计算。
数据规范化的方法:
1、Min-Max规范化
将原始数据转化到[0,1]的空间中。公式:
新数值=(原数值-极小值)/(极大值-极小值)
2、Z-Score规范化
公式:
新数值=(原数值-均值)/标准差(方差的算术平方根)
优点在于算法简单,不受数据量级影响,易于比较,缺点在于结果没有实际意义。
3、小数定标规范化
小数点移动多少位取决于属性取值中的最大绝对值,最大绝对值有几位,小数点就向左移动几位,使之处于[-1,1]
使用Python的SciKit-Learn库进行数据规范化
1、Min-Max规范化
默认投射到[0,1]
from sklearn import preprocessing
import numpy as np
x=np