一. 特征预处理
通过teddy的统计方法(数学方法)将数据转换成算法要求的数据
1. 特征处理的方法
数值型数据: 归一化,标准化,缺失值
-
归一化:
注意:在特定场景下最大值最小值是变化的,另外最大值与最小值非常容易受异常点影响,所以这种方法robust较差,只适合传统精确小数据场景 -
标准化
如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小
在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景 -
缺失值
删除: 如果每列或者行数据缺失值达到一定的比例,建议放弃整行或者整列
插补:可以通过缺失值每行或者每列的平均值、中位数来填充
类别性数据: one-hot编码
事件类型:事件的切分
2. sklearn特征处理API
- sklearn归一化API:sklearn.preprocessing.MinMaxScaler
from sklearn.preprocessing import MinMaxScaler
def mm():
'''归一化处理'''
mm = MinMaxScaler()
data = mm.fit_transform([[90,2,10,40],
[60,4,15,45],
[75,3,13,46]]
)
print(data)
return None
if __name__=='__main__':
mm()
- sklearn 特征化API: sklearn.preprocessing.StandardScaler
from sklearn.preprocessing import StandardScaler
def ss():
'''标准化处理'''
mm = StandardScaler()
data = mm.fit_transform([[ 1., -1., 3.],
[ 2., 4., 2.],
[ 4., 6., -1.]]
)
print(data)
return None
if __name__=='__main__':
ss()
- sklearn缺失值API:sklearn.preprocessing.Imputer
from sklearn.preprocessing import Imputer
import numpy as np
def im():
'''缺失值处理'''
mm = Imputer()
data = mm.fit_transform([[1, 2],
[np.nan, 3],
[7, 6]]
)
print(data)
return None
if __name__=='__main__':
im()