【特征工程】
这大概是全网最全的特征工程了吧
新手小白,总结的不足之处还望指正和批评哦 _
这是一篇自带BGM的博客,附赠总结的思维导图。
- 特征使用方案
1.1. 为了达到目标,需要使用那些数据?——基于对业务的理解尽可能的筛选出需要的自变量
1.2. 可用性评估
1.2.1. 获取难度
1.2.2. 覆盖率
1.2.3. 准确率 - 特征获取方案
2.1. 如何获取特征?
2.2. 如何存储? - 特征处理
3.1. 特征清洗
3.1.1. 清洗异常样本
3.1.2. 采样
• 数据不平衡
• 样本权重
3.2. 预处理
3.2.1. 单个特征
• 缺失值
• 数值型
• 数据变换
• log
• 指数
• box-cox
• 归一化、标准化
• Binning(分箱) / Equal Frequency Scaler/ 二值化/取整
• 变为分类变量
• No linear encoding
• 类别型
• Dummy coding
• one- hot
• 优点:一定程度上扩充特征
• 缺点:类别数量过多,特征空间会变得特别大,可以使用+PCA组合
• label encoding
• category embedding
• 区别:one-hot针对无序的category属性
label encoding 针对存在序数的category属性。
• 时间特征(sin化)
• 自然语言处理(MFCC(梅尔频率倒谱系数))
3.2.2. 多个特征
• 降维(投影、流形学)
• PCA(无监督,适合类别多的情况)
• IPCA(增量):mini-batch。处理大数据集,且可实现在线学习
• 随机PCA:能快速找到接近前d个主成分,它的计算复杂度与d相关而不与n相关
• Kernel PCA:善于保持聚类后的集群(clusters)后投影,有时展开数据接近于扭曲的流形
• LDA(有监督,适合类别少的i情况):不同样本间距离最大,相同样本间最小;降维后的数据点尽可能可分
• SVD:奇异值分解后仅保留三个比较小的矩阵,不仅能表示原矩阵节省存储量,更减少了计算量;当数据量较大时,使用SVD分解会耗费很大的内存以及运算速度较慢
• Auto-encoder
• 特征选择
• Filter:
• 思路:自变量和目标变量之间的关联
• 信息增益,互信息
• Wrapper
• 思路:通过目标函数(AUC/MSE)来决定是否加入一个变量
• 迭代:产生特征子集,评价
• 完全搜索
• 启发式搜索
• 随机搜索
• Embedded
• 思路:学习器自动选择特征
• 正则化
• L1——Lasso
• L2——Ridge
• 决策树
• 熵、信息增益
• 深度学习
3.2.3. 衍生变量
• 对原始数据加工,生成有商业意义的变量 - 特征监控
4.1. 特征有效新分析——特征重要性、权值
4.2. 监控重要特征——防止特征质量下降,影响模型效果 - 变量
• numerica(对+、-avg有意义)
• continuous(对乘除有意义)测量而来
• discrete(对乘除无意义) 计数
• category(对+、-avg有意义)
• nominal(无序)
• ordinal(有序)