通过特定的统计方法(数学方法),将数据转换成算法要求的数据
1、数值型数据
标准缩放:
(1)归一化
(2)标准化
(3)缺失值
2、类别型数据:one-hot编码
3、时间类型:时间的切分
4、预处理API:sklearn.preprocessing
注:作用于每一列,max、min为每一列的最大、最小值;x’'为最终结果,mx、mi分别为指定区间值——默认mx=1,mi=0。
MinMaxScaler(feature_range=(0,1)...)
每个特征缩放的范围(默认是[0,1])
MinMaxScaler.fit_transform(X)
x:numpy array格式的数据[n_samples, n_features]
返回值:转换后的形式相同的arrayIn [1]:from sklearn.preprocessing import MinMaxScaler mm = MinMaxScaler() data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) data Out [1]:array([[1. , 0. , 0. , 0. ], [0. , 1. , 1. , 0.83333333], [0.5 , 0.5 , 0.6 , 1. ]])
-作用于每一列,mean为平均值,thegma为标准差。
-方差var = ( (x1 - mean)2 + (x2 - mean)2 + … ) / n(每个特征的样本数)
-thegma = aqrt(var)
-其中,方差(考量数据的稳定性)
In [1]:from sklearn.preprocessing import StandardScaler
std = StandardScaler()
data = std.fit_transform([[1.,-1.,3.],[2.,4.,2.],[4.,6.,-1.]])
data
Out [1]:array([[-1.06904497, -1.35873244, 0.98058068],
[-0.26726124, 0.33968311, 0.39223227],
[ 1.33630621, 1.01904933, -1.37281295]])
1、删除
2、插补:平均值、中位数等
In [1]:from sklearn.preprocessing import Imputer
im = Imputer(missing_values='NaN', strategy='mean', axis=0)
data = im.fit_transform([2, 1], [np.nan, 3], [7, 6])
data
Out [1]:array([[2. , 1. ],
[4.5, 3. ],
[7. , 6. ]])