特征处理是什么
通过特定的统计方法(数学方法)将数据转换成算法要求的数据
不同数据处理方法
- 数值型数据:标准缩放
- 归一化
- 标准化
- 类别型数据:
- one-hot编码
- 时间类型:
- 时间的切分
特征处理API sklearn.preprocessing
归一化
- 特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
- 目的:使得某一个特征对最终结果不会造成更大影响。
- 注意:再特定场景下最大值最小值是变化的,另外,最大值与最小值容易受到异常点的影响,所以这种方法鲁棒(
健壮和强壮 )性较差,只适合传统精确小数据场景。
- 公式:

归一化API sklearn.preprocessing.MinMaxScaler
MinMaxScaler语法

归一化步骤
- 实例化MinMaxScalar
- 通过fit_transform转换
示例代码
from sklearn.preprocessing import MinMaxScaler
def mm():
'''
归一化处理
:return:None
'''
# 设置区间范围
mm = MinMaxScaler(feature_range=(2,3))
data = mm.fit_transform(
[[90,2,10,40],
[60,4,15,45],
[75,3,13,46]])
print(data)
return None
if __name__ == '__main__':
mm()
# 运行结果
[[3. 2. 2. 2. ]
[2. 3. 3. 2.83333333]
[2.5 2.5 2.6 3. ]]
标准化
- 特点:通过对原始数据进行变化把数据变换到均值为0,方差为1范围内
- 注意:对于标准化来说,如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
- 在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。
- 公式:

sklearn特征化API scikit-learn.preprocessing.StandardScaler
StandardScaler语法

标准化步骤
- 实例化StandardScaler
- 通过fit_transform转换
代码示例:
from sklearn.preprocessing import StandardScaler
def stand():
'''
标准化处理
:return:None
'''
std = StandardScaler()
data = std.fit_transform(
[[1.,-1.,3.],
[2.,4.,2.],
[4.,6.,-1.]])
print(data)
return None
if __name__ == '__main__':
stand()