机器学习中的数据清洗和特征处理综述
2016-03-10 16:33
465 查看
本文参考了美团技术团队发表的《机器学习中的数据清洗和特征处理综述》,以下是学习笔记:
http://tech.meituan.com/machinelearning-data-feature-process.html
典型的监督学习过程
原文中将蓝色箭头解释为离线处理,绿色箭头解释为在线处理,我认为不好。蓝色箭头应理解为使用特征数据+标注数据经机器学习算法得出预测模型,然后将新数据输入该模型得到预测值。只不过对于美团的实际应用(如即时团购推荐)而言,绿色处理过程对实时性要求较高,所以可称其为在线处理过程。
确定特征数据
在数据来源不固定,不明了的情况下,需要考虑为了达到目标,需要哪些特征值。首先可以借鉴一些业务经验选择一些特征,然后需要对使用数据的可用性进行评估,包括数据的获取难度,数据的规模,数据的准确率,数据的覆盖率等。
特征处理过程
1,初步处理
样本采样 -- 当模型不能使用全部的数据来训练时,需要对数据进行采样,设定一定的采样率。采样的方法包括随机采样,固定比例采样等方法。
样本过滤 -- 主要是对样本中的异常点检测,以及去除作弊,spam等数据等。
2,特征分类
在分析完特征和标注的清洗方法之后,应对特征进行分类,对于不同的特征应该有不同的特征处理方法。
根据不同的分类方法,可以将特征分为(1)Low level特征和High level特征。(2)稳定特征与动态特征。(3)二值特征、连续特征、枚举特征。具体可参看原文。总的来说对于Low level特征和High level特征可能适合不同的模型;稳定特征与动态特征可以针对性地设计特征存储和更新方式;二值特征、连续特征、枚举特征则需要做特征归一化,离散化,缺省值等处理。
3,特征处理
特征处理一般有:
(1)特征归一化,离散化,缺省值
(2)特征降维
(3)特征选择
关于为什么药特征选择和降维,可以参考另外一篇文章:http://blog.csdn.net/onlyqi/article/details/50843541
文中最后用实例强调了特征监控的重要性。
http://tech.meituan.com/machinelearning-data-feature-process.html
典型的监督学习过程
原文中将蓝色箭头解释为离线处理,绿色箭头解释为在线处理,我认为不好。蓝色箭头应理解为使用特征数据+标注数据经机器学习算法得出预测模型,然后将新数据输入该模型得到预测值。只不过对于美团的实际应用(如即时团购推荐)而言,绿色处理过程对实时性要求较高,所以可称其为在线处理过程。
确定特征数据
在数据来源不固定,不明了的情况下,需要考虑为了达到目标,需要哪些特征值。首先可以借鉴一些业务经验选择一些特征,然后需要对使用数据的可用性进行评估,包括数据的获取难度,数据的规模,数据的准确率,数据的覆盖率等。
特征处理过程
1,初步处理
样本采样 -- 当模型不能使用全部的数据来训练时,需要对数据进行采样,设定一定的采样率。采样的方法包括随机采样,固定比例采样等方法。
样本过滤 -- 主要是对样本中的异常点检测,以及去除作弊,spam等数据等。
2,特征分类
在分析完特征和标注的清洗方法之后,应对特征进行分类,对于不同的特征应该有不同的特征处理方法。
根据不同的分类方法,可以将特征分为(1)Low level特征和High level特征。(2)稳定特征与动态特征。(3)二值特征、连续特征、枚举特征。具体可参看原文。总的来说对于Low level特征和High level特征可能适合不同的模型;稳定特征与动态特征可以针对性地设计特征存储和更新方式;二值特征、连续特征、枚举特征则需要做特征归一化,离散化,缺省值等处理。
3,特征处理
特征处理一般有:
(1)特征归一化,离散化,缺省值
(2)特征降维
(3)特征选择
关于为什么药特征选择和降维,可以参考另外一篇文章:http://blog.csdn.net/onlyqi/article/details/50843541
文中最后用实例强调了特征监控的重要性。
相关文章推荐
- 函数的四种调用方式
- Android项目由Eclipse到Android Studio的完美迁移(包含友盟分享、百度统计、ViewPagerIndicat等第三方库文件、Jar包等)——项目迁移二
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- 乌克兰危机简报
- android studio logcat 包名过滤失效问题
- 用Android studio进行 OpenCV 开发的第一个项目
- JAVA - HashMap和HashTable
- 纯js的excel导出插件
- 搜索和排名
- ascii' codec can't encode characters in position 598-599: ordinal not in range(128)解决方案
- 智能选择:单位转换(unit conversion)
- 斐波那契数列的递归方法和用数组保存中间值方法
- 为Android应用添加搜索功能
- 1068. Find More Coins (30)
- java类与对象
- 第五章程序i 调试和剖析详细流程
- Log4Net邮件设置
- spark中fatMap和Map的区别
- 将一个登陆的Activity转类为一个dialog弹窗
- guava中的join和split功能