转自七月算法班
特征工程需要根据实际的业务场景进行处理
---数据与特征处理
1. 数据选择/清洗/采样
2. 数值型/类别型/日期型/文本型特征处理
3. 组合特征处理
---特征选择
1. Filter/Wrapper/Embedded 三种特征选择方式及开发包/案例
特征:数据中抽取出来的对结果预测有用的信息
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程
意义:
更好的特征意味着更强的灵活度
更好的特征意味着只需要用简单的模型
更好的特征意味着更好的结果
真正在互联网公司进行开发的人,在做
1. 跑数据,各种map-reduce,hive SQL,数据仓库搬砖
2. 数据清洗
3. 分析业务,分析case,找特征
4. 应用在常见的机器学习算法上
特征工程在特征工业界的作用
能够有效提高AUC
更高效的特征,能够获得更精准的结果
---1. 数据采集(思考哪些数据对最后的预测结果有帮助)
举例:现在要做预测用户对商品下单情况,或者做商品推荐,那么我们需要采集什么信息?
从三个维度:商家的,商品的,用户的
商家(商家评分,评论数据:发货速度,开业时间,服务态度)
商品(购买量、点击量、加入购物车、商品固有属性)
用户(历史性:以前购买最高价,最低价、喜欢什么材质、消费能力
上下文信息:停留时间)
----2. 数据格式化
确定存储格式
1. 按时间存储(年月日、时间戳、第几天)
2. 单个动作记录/一天行为集合
大多数情况需要关联很多的hive表和hdfs文件夹,所以要用到很多的map-reduce
----3. 数据清洗
去掉脏数据
举例:
简单:身高高于3米+ | 一个月买脸盆墩布买了10w的人 | 5,6w买发卡
组合或者统计属性判定:
1)号称在米国却ip一直都是大陆的新闻阅读用户
2)判定一个人是否会买篮球鞋,样本中女性用户占比85%
补齐可对应的缺省值
1)不可信样本丢掉,缺省值极多的字段考虑不用(比如contry,contrycode)
---4. 数据采样
很多情况下,正负样本是不均衡的
1)电商的用户点/买过的商品和没有行为的商品
2)某些疾病的患者和健康人
大多数的模型对正负样本的比例是敏感的(比如LR)
随机采样和分层抽样
正负样本不平衡的处理办法
1. 正样本>>负样本,且量都很大 -->downSampling(下采样,从正样本中抽取和负样本差不多1:1的情况)
2. 正样本 >>负样本,量不大
1)采集更多数据
2) 上采样/oversampling(比如图像识别中的镜像和旋转)造一些负样本
3) 修改损失函数(给负样本大一些权重)