数据预处理
数据预处理操作主要包括:数据过滤、处理数据缺失、处理异常值、合并多个数据源数据、汇总数据
特征工程主要包括 特征构建 特征提取 特征选择三个部分
数据驱动=开发技能+理论技能+特征工程(和场景相关)
数据与特征处理
- 数据采集
- 数据格式化
- 确定存储格式,日期等,串成字符串等
- 数据清洗
- 单维度不可信数据(3M+的人)
- 统计属性判定
- 补齐缺失值(缺省太多的不考虑)
- 基于统计分布(箱线图)
- 数据采样
- 大多数情况正负案例不均匀(随机采样 分层采样)
- 处理方法
- 正>>负 且样本量都很大,=>下采样/欠采样
- 样本量不大,量不大=>1.采集更多 2.过采样 3.修改损失函数
- 特征处理
- 数值型 1.幅度调整(归一化,标准化) 2.log等数据域变化 3.统计值max,min 4.离散化 5.hash分桶 6.数值转类别型
- 统计型 于统计信息得到的特征,可以通过离散化并确定阈值的方法来得到预测结果。(sigmoid)
- 类别型 1.one-hot编码 2.哑变量 3. hash与聚类处理 4. 统计每个类别变量下各个target比例,转成数值型
- 可以做离散(季度,星期,时段)也可以做连续(持续时间浏览时长,间隔时长)
- 文本型 1.词袋模型 2. TF-IDF模型 3.word2vec模型(CBOW,slip-gram)
- 特征处理的统计特征
- 加减平均:高于平均价格多少
- 分位线:价格处于多少分位线处
- 次序型:排第几
- 比例类别 :好中差的比例 超过百分之...的人
- 特征处理的组合特征
- 简单组合-拼凑
- 模型特征组合(用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
浙公网安备 33010602011771号