特征处理是什么

通过特定的统计方法(数学方法)将数据转换成算法要求的数据

不同数据处理方法

  • 数值型数据:标准缩放
    1. 归一化
    2. 标准化
  • 类别型数据:
    1. one-hot编码
  • 时间类型:
    1. 时间的切分

特征处理API sklearn.preprocessing

归一化

  • 特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
  • 目的:使得某一个特征对最终结果不会造成更大影响。
  • 注意:再特定场景下最大值最小值是变化的,另外,最大值与最小值容易受到异常点的影响,所以这种方法鲁棒(
    健壮和强壮 )性较差,只适合传统精确小数据场景。
  • 公式:

归一化API sklearn.preprocessing.MinMaxScaler

MinMaxScaler语法

归一化步骤

  1. 实例化MinMaxScalar
  2. 通过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语法

标准化步骤

  1. 实例化StandardScaler
  2. 通过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()

发表回复