数据预处理

数据预处理操作主要包括:数据过滤、处理数据缺失、处理异常值、合并多个数据源数据、汇总数据

特征工程主要包括 特征构建 特征提取 特征选择三个部分

数据驱动=开发技能+理论技能+特征工程(和场景相关)

数据与特征处理

  1. 数据采集
  2. 数据格式化 
    1. 确定存储格式,日期等,串成字符串等  
  3. 数据清洗
    1. 单维度不可信数据(3M+的人)
    2. 统计属性判定  
    3. 补齐缺失值(缺省太多的不考虑)
    4. 基于统计分布(箱线图)
  4. 数据采样
    1. 大多数情况正负案例不均匀(随机采样 分层采样)
    2. 处理方法
      1. 正>>负  且样本量都很大,=>下采样/欠采样
      2. 样本量不大,量不大=>1.采集更多 2.过采样 3.修改损失函数  
  5. 特征处理
    1. 数值型  1.幅度调整(归一化,标准化)  2.log等数据域变化 3.统计值max,min  4.离散化 5.hash分桶 6.数值转类别型   
    2. 统计型  于统计信息得到的特征,可以通过离散化并确定阈值的方法来得到预测结果。(sigmoid)
    3. 类别型  1.one-hot编码  2.哑变量  3. hash与聚类处理  4. 统计每个类别变量下各个target比例,转成数值型
    4. 可以做离散(季度,星期,时段)也可以做连续(持续时间浏览时长,间隔时长)
    5. 文本型    1.词袋模型  2. TF-IDF模型  3.word2vec模型(CBOW,slip-gram)
  6. 特征处理的统计特征
    1. 加减平均:高于平均价格多少
    2. 分位线:价格处于多少分位线处
    3. 次序型:排第几
    4. 比例类别  :好中差的比例   超过百分之...的人
  7. 特征处理的组合特征
    1. 简单组合-拼凑   
    2. 模型特征组合(用GBDT产生特征组合路径,将组合特征和原始特征一起放进LR训练)  

① one-hot编码就是哑变量编码

为什么要用one-hot(0,0,1,0),而不用数字1,2,3,4呢?

假如我们队四个变量分别编码为1,2,3,4,则相当于不同种类的样本的权重不同了,w如果大于0,则编码为4的特征出现的概率会变得很高,如果w小于0,编码为1的特征出现的概率会变得很高,所以我们应该让不同的特征出现的概率是等价的,所以选择可以正交的one-hot编码。

比如颜色编码:

② Hash技巧

只要是出现的词,下面都会出现1,上面的编码太稀疏,下面的编码是在有词表的情况下,统计三个文档(doc1,doc2,doc3)落在不同类型的词表(财经bucket1、体育bucket2、政治bucket3等)当中的词有多少个,从而体现当前文本内容分布的倾向性。

可以将词块用哈希函数来确定它在特征向量的索引位置,可以不创建词典,这称为哈希技巧(hashing trick)。

哈希技巧是无固定状态的(stateless),它把任意的数据块映射到固定数目的位置,并且保证相同的输入一定产生相同的输出,不同的输入尽可能产生不同的输出。

 

特征选择

特征降维:

  冗余:部分特征相关度太高,消耗计算性能

  噪声:部分特征对结果有负影响

特征选择和降维的不同:

  选择是除掉和结果不相关的数据

  降维是做特征的计算组合成新特征

特征选择方式:

过滤型:(没考虑特征间的关联作用,可能把有用的关联特征误踢掉)

  1.评估单个特征和结果值之间的相关程度,留下topk相关特征

  2.pearson相关系数,互信息,距离相关度

包裹型:把特征选择看作一个特征子集搜索问题,筛选各种特征子集,用模型评估效果。

    典型的算法是递归特征删除算法

 

 嵌入型:

    根据模型分析特征的重要性

    最常用正则化做特征选择(L1正则化让特征稀疏)

    在嵌入式特征选择中,特征选择算法本身作为组成部分嵌入到学习算法里。最典型的即决策树算法,

原文链接:https://blog.csdn.net/jiaoyangwm/article/details/81180343

原文链接:https://blog.csdn.net/jiaoyangwm/article/details/81180343

posted @ 2020-05-14 17:40  发量决定水平  阅读(584)  评论(0)    收藏  举报