特征工程之特征预处理

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 05:40   767   0

概念

特征预处理是什么呢?特征预处理是通过统计方法(数学方法)将数据转换成算法要求的数据,所以特征预处理也叫做数据预处理。

下面是几种数据预处理的方法
1、数值型数据:标准缩放:1、归一化2、标准化
2、类别型数据:one-hot编码
3、时间类别:时间的划分

下面介绍归一化和标准化归一化

归一化

特点:通过对原始数据进行变换把数据映射到(默认在[0,1])之间

公式:


其中公式作用于每一列(列:特征,行:样本),max和min分别代表每一列的最大值和最小值,X''为最终结果,mx,mi分别为指定的映射区间的最大值和最小值默认值为1和0。

下面是归一化的例子:


当多个特征同等重要的时候需要进行归一化处理,目的是使每一个特征不会对最终结果造成更大的影响。

归一化的缺点是:异常点对最大值和最小值影响太大,所以说只适合传统精确小数据场景。

下面是归一化的Python代码(使用sklearn):

def mm():
    """
    归一化处理
    :return: None
    """
    mm = MinMaxScaler(feature_range=(0,1))
    data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
    print(data)
下面是运行结果:


标准化

特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内。

公式:(由于输入不方便,所以直接引用)


标准化的优点是具有一定数据量,少量的异常点对于平均值得影响并不太大即异常点对于方差和平均值得影响是比较小。

下面是标准化的Python代码:

def stand():
    """
    标准化处理
    :return: None
    """
    std = StandardScaler()
    data = std.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
    print(data)

    return None
运行结果:




分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP