简单函数处理
如平方、开方、取对数、差分运算
在数据挖掘中,简单的函数变换可能更为必要,如个人年收入范围从10000到10亿,这是一个很大的区间,使用对数变换对其进行压缩是常用的一种变换处理方法。
数据标准化
u scale 零均值单位方差
1)直接标准化
from sklearn import preprocessing
x_scale = preprocessing.scale(x) #x_scale即为标准化(均值为0,方差为1)后的数据
2)间接标准化,可以将测试集也标准化
scaler = preprocessing.StandardScaler().fit(train_set)
scaler.transform(train_set)
scaler.transform(test_set)
u 缩放至某一范围
1)最小最大值标准化(离差标准化),缩放到[0,1]
min_max_scaler = preprocessing.MinMaxScaler()
X_train_min_max = min_max_scaler.fit_transform(X_train)
2)MaxAbsScaler(绝对值最大标准化)
它通过将每个数据除以绝对值最大的值的绝对值,将数据缩放到[-1, 1]
使用这种标准化方法的原因是,有时数据集的标准差非常非常小,有时数据中有很多很多零(稀疏数据)需要保存住0元素。
max_abs_scaler = preprocessing.MaxAbsScaler()
X_train_maxabs = max_abs_scaler.fit_transform(X_train)
自定义数据处理函数
通常,您将需要将现有的Python函数转换,以协助数据清理或处理。您可以使用任意函数实现变压器FunctionTransformer。
import numpy as np
from sklearn.preprocessing import FunctionTransformer
transformer = FunctionTransformer(np.log1p)
X = np.array([[0, 1], [2, 3]])
transformer.transform(X)
>>>
array([ [ 0. , 0.69314718],
[ 1.09861229, 1.38629436] ])