数据转换是指将数据转换或统一成适合于挖掘的形式。数据规范化大致分为三种最大最小规范化、z-score规范化、按小数定标规范化。
一、z-score规范化
z-score规范化:又称标准差规范化或零均值规范化,数据处理后服从标准正态分布,也是比较常用的规范化方法。其中为对应特征的均值,为标准差。
python中有两种方法实现:利用Pandas中DataFrame的apply函数;利用sklearn库已经封装好的方法。
1.apply()函数
DataFrame.apply(func,axis=0,broadcast=False,raw=False,reduce=None,args=(),**kwds)
func:函数,既可以是python内置函数,也可以是自己实现。
axis:表示传入的是行还是列。axis=0代表列,apply函数会自动遍历每一列数据,将结果组成一个Series数据结构并返回。
*args和**kwds:给func函数传递的参数。
2.scale()函数
sklearn.preprocessing的scale()函数和StandardScaler类都可实现。
sklearn.preprocessing.scale(X,axis=0,with_mean=True,with_std=True,copy=True)
X:数组或矩阵。
with_mean:默认为True,表示将数据的均值规范到0。
with_std:默认为True,表示将数据的标准差规范到1。
3. StandardScaler进行标准化
sklearn.preprocessing.StandardScaler(with_std=True,with_mean=True,copy=True)
二、最大最小规范化
(1)apply函数,使用最大最小化的公式;
(2)sklearn.preprocessing的MinMaxScaler类
sklearn.preprocessing.MinMaxScaler(feature_range=(0,1),copy=True)