IT虾米网

机器学习之特征工程(一)详解

shasha 2018年07月04日 大数据 345 0

一 什么是特征工程

特征是指数据中抽取出来的对结果预测有用的信息

特征工程是使用专业背景和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。

特征工程的意义:1.更好的特征意味着更强的灵活性 2更好的特征意味着只需要简单模型 3更好的特征意味着更好的结果


应用机器学习的主要工作就是特征工程

数据和特征决定了算法能达到的上限,算法和模型的选择只是无限接近这个上限

如何特征十分清晰、易辨别,可能不需要神经网络这样复杂的算法,只需要常见的机器学习算法就能达到很好的结果


二 特征工程在实际工作中的作用

工作中可能70%的时间处理数据,30%的时间建模、模型状态评估、ensemble。

算法、模型的研究是一些算法专家、专业人员在做

大部分人的工作:

     1. 跑数据,各种map-reduce, hive sql,数据库搬砖

     2. 数据清洗,数据清洗,数据清洗...

     3.业务分析,分析case, 找特征,找特征...

     4. 一招LR打天下   (一般机器学习部分都有一个LR作为baseline, 可控; svm在小的数据集上效果很好,但很大的数据,例如电商每天数据很大,不太实用svm)


工业界的特征工程有多大作用呢?

例如某搜索引擎,广告部门,2周内可以完成一次特征迭代,有效的情况下AUC提升3-5%;  而一个月左右完成模型的小优化,有效的情况下AUC提升5%

贴近业务场景进行特征分析可能比算法的优化更有效

三 特征工程的重要环节

1.  数据采集

    考虑哪些数据有用;

    埋点,数据打标签

2  数据格式化

    确定存储格式,例如时间格式

    大多数情况下,需要关联非常多的hive表和集群文件

3. 数据清洗(data cleaning)

    garbage in, garbage out

    算法大多数情况下就是一个加工机器,最后的产品往往取决于原材料的好坏。 所以理解业务更加透彻、数据清洗对结果影响很大

    主要是去除脏数据

    1. 错误数据,例如人身高5m,这样的数据无论是否真实,对模型训练不利

    2. 组合或统计属性判定      例如购买篮球鞋的人应该男生占多数才对

    3. 补齐可对应的缺省值    不可信的样本丢掉,缺省极多的字段考虑不用

4. 数据采样

     1.很多情况下,正负样本是不均衡的,例如电商的用户点击/买过的商品和没有行为的商品

     2.大多数模型对正负样本比是敏感的   比如LR,如果有99个正样本,1个负样本,那预测时全部预测正,准确率也可以达到99%,这不能反映模型的好坏

     正负样本不平衡的处理方法:

          1. 正负样本量很大,一类样本数量 >> 另一类样本数量, 采用下采样,即对偏多的数据进行采样,使两类样本数量达到一定比例,例如1:1, 3:2等

          2. 正负样本量不大, 一类样本数量>>另一类样本,

                1)采集更多的数据

                2)oversampling,即硬生生的增加量少的一方的样本,比如增加几倍的量少的样本(或简单处理量少的数据,例如图像识别中的镜像、旋转),容易过拟合

                3)修改loss function,例如增加量大的样本的惩罚权重

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

方差,标准差,MSE, RMSE详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。