抱着认真崇拜的心情学习这篇博客: http://dataunion.org/25792.html
机器学习in action其他四篇:
机器学习如何解决问题:http://www.wtoutiao.com/p/f34DQa.html
Logistic Regression 模型简介:http://tech.meituan.com/intro_to_logistic_regression.html
美团推荐算法实践:http://tech.meituan.com/mt-recommend-practice.html
另外:
spark性能优化基础篇:http://tech.meituan.com/spark-tuning-basic.html
spark性能优化高级篇:http://tech.meituan.com/spark-tuning-pro.html
另外:
fm:http://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html
online_learning:http://tech.meituan.com/online-learning.html
活动大促容量预估:http://tech.meituan.com/stress-test-before-promotion.html
1、摘抄1:本文以点击下单率预测为例,结合实例来介绍如何进行数据清洗和特征处理。首先介绍下点击下单率预测任务,其业务目标是提高团购用户的用户体验,帮助 用户更快更好地找到自己想买的单子。这个概念或者说目标看起来比较虚,我们需要将其转换成一个技术目标,便于度量和实现。最终确定的技术目标是点击下单率 预估,去预测用户点击或者购买团购单的概率。
感受:工作中要切实可行的目标
2、特征选择方法:
1 业务经验拍特征,与点击率有关的特征:
距离,很显然这是一个很重要的特征。如果购买一个离用户距离较远的单子,用户去消费这个单子需要付出很多的代价。 当然,也并不是没有买很远单子的用户,但是这个比例会比较小。
用户历史行为,对于老用户,之前可能在美团有过购买、点击等行为。
用户实时兴趣。
单子质量,上面的特征都是比较好衡量的,单子质量可能是更复杂的一个特征。
是否热门,用户评价人数,购买数等等。
在确定好要使用哪些数据之后,我们需要对使用数据的可用性进行评估,包括数据的获取难度,数据的规模,数据的准确率,数据的覆盖率等
数据获取难度
例如获取用户id不难,但是获取用户年龄和性别较困难,因为用户注册或者购买时,这些并不是必填项。即使填了也不完全准确。这些特征可能是通过额外的预测模型预测的,那就存在着模型精度的问题。
数据覆盖率
数据覆盖率也是一个重要的考量因素,例如距离特征,并不是所有用户的距离我们都能获取到。PC端的就没有距离,还有很多用户禁止使用它们的地理位置信息等。
用户历史行为,只有老用户才会有行为。
用户实时行为,如果用户刚打开app,还没有任何行为,同样面临着一个冷启动的问题。
数据的准确率
单子质量,用户性别等,都会有准确率的问题。
3 标注和特征数据清洗
数据采样,例如对于分类问题:选取正例,负例。对于回归问题,需要采集数据。对于采样得到的样本,根据需要,需要设定样本权重。当模型不能使用全部的数据来训练时,需要对数据进行采样,设定一定的采样率。采样的方法包括随机采样,固定比例采样等方法。
除了采样外,经常对样本还需要进行过滤,包括
1.结合业务情况进行数据的过滤,例如去除crawler抓取,spam,作弊等数据。
2.异常点检测,采用异常点检测算法对样本进行分析,常用的异常点检测算法包括
偏差检测,例如聚类,最近邻等。
基于统计的异常点检测算法
例如极差,四分位数间距,均差,标准差等,这种方法适合于挖掘单变量的数值型数据。全距(Range),又称极差,是用来表示统计资料中的变异量数 (measures of variation) ,其最大值与最小值之间的差距;四分位距通常是用来构建箱形图,以及对概率分布的简要图表概述。
基于距离的异常点检测算法,主要通过距离方法来检测异常点,将数据集中与大多数点之间距离大于某个阈值的点视为异常点,主要使用的距离度量方法有绝对距离 ( 曼哈顿距离 ) 、欧氏距离和马氏距离等方法。
基于密度的异常点检测算法,考察当前点周围密度,可以发现局部异常点,例如LOF算法
(发现异常,还没试过)