【笔记】数据特征工程

【笔记】数据特征工程

一、特征归一化

为什么要进行特征归一化?为了消除数据特征之间不同量纲对结果的影响。

定义:将个不同特征指标变换到同一数量级下;

  • 线性函数归一化(Normalization)

对原始数据进行***线性变换***,将结果映射到[0, 1]范围,实际上是对数据进行等比缩放;

公式:
Xnorm=X−XminXmax−Xmin X_{norm} = \frac{X-X_{min}}{X_{max}-X_{min}} Xnorm=XmaxXminXXmin

  • 零均值归一化(标准化, Standardization)

也标准化; 将数据映射到均值为0, 标准差为1的分布上。

单纯减去均值也叫中心化, 其实就是一个平移的过程,平移后所有数据的中心是(0,0);

对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。

公式:
z=x−uσ z = \frac{x-u}{\sigma} z=σxu
其中 uuu 表示均值 ; σ\sigmaσ 表示标准差;

二、类别型特征

掌握

  • 序号编码;

    1,2,3

  • 独热编码;

    one-hot表示

  • 二进制编码;

    将序号变成固定位二进制; 如7; 变成 0000111;效果上类似于多标签;二进制编码也可用来编码数据;比如使用神经网络拟合 FizzBuzz游戏,用二进制编码来讲输入数字转变成输入特征。

    def fizz_buzz_encode(i):
        if i % 15 == 0:
            return 3
        elif i % 5 == 0:
            return 2
        elif i % 3 == 0:
            return 1
        else:
            return 0
    def fizz_buzz_decode(i, prediction):
        return [str(i), "fizz", "buzz", "fizzbuzz"][prediction]
    def binary_encode(i, num_digits):
        """使用二进制方式来表示数据"""
        return np.array([i >> d & 1 for d in range(num_digits)])
    

三、高纬组合特征处理

特征较少时,可以通过特征组合,扩充特征维度;

维度过高时候,需要通过降维;

四、组合特征(特征交叉)

我们可以创建很多不同种类的特征组合。例如:

  • [A X B]:将两个特征的值相乘形成的特征组合。
  • [A x B x C x D x E]:将五个特征的值相乘形成的特征组合。
  • [A x A]:对单个特征的值求平方形成的特征组合。

五、文本表示模型

  • 词袋模型

    词袋模型:就是将每一篇文章看做一袋子词,并忽略每个词出现的顺序。具体地说,就是讲整段文本以词为单位切开,每一篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章的重要程度;常用 TF-IDF来***计算权重***;

    TF-IDF公式为:
    TF−IDF(t,d)=TF(t,d)×IDF(t) TF-IDF(t, d) = TF(t, d) \times IDF(t) TFIDF(t,d)=TF(t,d)×IDF(t)
    其中 TF(t,d)TF(t, d)TF(t,d) 为单词ttt在文档ddd中出现的频率, IDF(t)IDF(t)IDF(t)是逆文档频率;是对数据集的整体分布而言的;用来衡量单词ttt对表达语义所起的重要性;表示为:
    IDF(t)=log文章总数包含单词t的文章总数+1 IDF(t) = log \frac{文章总数}{包含单词t的文章总数+1} IDFt=logt+1
    如果一个单词在非常多的文章里都有出现,那么他可能是一个比较通用的词汇, 比如’的, 你, 我’;对于区分谋篇文章的特殊语义贡献很小,因此对权重做一定的惩罚;

    总结,词袋模型用来表示向量,但是这个向量不不准确,需要权重来约束,TF-IDF是用来计算权重的;

  • WordEmbedding

    谷歌2013年提出的Word2Vec是主流的词嵌入模型;

    Word2Vec实际是一种浅层的神经网络,主要是CBOW 和skip_gram;

    通过训练的方式,取得词和词之间的联系,将词表示成一个高纬向量;

六、数据不足时候的处理方法

在实际应用过程中,经常会出现数据不足的问题;解决方法有以下几种;

  1. 迁移学习;使用迁移学习可以在少样本上学习得到不错的结果;

  2. Data Augmentation (数据增强)

  3. 上采样技术(例如:SMOTE)

    SMOTE算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a, 从他的最近邻中随机选一个样本b, 然后再a, b之间的连线上随机选一点作为新合成的少数类样本;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值