全部版块 我的主页
论坛 数据科学与人工智能 人工智能 机器学习
1569 0
2016-03-28

比如研发类工程师可能就是根据项目需求写代码,那机器学习,数据挖掘类工程师平时主要的工作内容是怎样的?我理解的是:根据项目选取不同的模型做实验,根据实验结果调参等等。经常阅读本领域内相关的paper,实现一些最新的研究成果,参加各种学术会议。是这样的么?

背景:

当初所在的产品团队所做的是一款类似于Steam的产品,游戏下载是核心需求之一。但是因为国内用户的机器普遍比较差,许多大型而高配置的单机/网络游戏,下载后基本跑不起来,极大伤害用户体验。因此为用户下提供了配置检测功能,在下载前根据用户的机型配置告诉其能否玩某款游戏

对机器配置打分以及对游戏最低配置要求打分都是基于很粗糙的经验公式,经常出现False Positive(系统说能玩,但是用户花了好几个小时下载和安装,结果不能玩;被用户骂得狗血喷头)或者False Negative(系统说不能玩,结果后来实践发现该配置其实能玩,损失了用户的粘性,PM恨死你)

故事在这里开始发生。

第一步,产品团队提出需求
产品团队要求数据团队基于海量数据(日活几百万,日游戏下载数量过百万,日游戏启动次数过千万),优化配置检测的评分系统。

第二步,将需求转化为数学语言或者数学模型
数据团队一看,这个简单呀,其实就是:

目的:优化机器配置的打分函数f(机器配置)和游戏最低配置要求的分数的函数g(游戏)

评价:降低之前提到的FP和FN(可以使用小范围的用户反馈收集以及后台运营人员的小范围测试)

第三步,搭建平台和抽取数据
根据数据量以及不能影响业务的最低职业操守,我们的选择是Hive + MySQL+ Python + R,然后开始抽取最近数月的日志。

第四步,数据处理和清洗形成核心数据集
这一步应该是做这一行的同学们最恨的,原因无他:做起来看似最无技术含量而最耗时间,而往往又最影响最后的产出。(这一段撸啊撸的血泪史就省去了,诸君共勉)最后形成核心数据集,比较核心的字段包括:用户ID、机器配置及得分、玩各个游戏的时长、各个游戏的配置要求最低分等等。

第五步,研究数据和选择合适的模型
一开始就热血沸腾,这个需求好简单呀,我能立马体现价值!对于某些高配置游戏,查看各种配置的机器玩这些游戏的平均时长,就能优化各种配置的得分了。道理也很直观,低配置机器因为很难支持高需求游戏的运行,会出现卡顿或者蓝屏,所以游戏平均时长必然很短。这个推断非常有道理,结果数据跑出来完全偏离常识,这里出现第一坑:

可能出现了脏数据:中国的PC环境太复杂,各种机器改装、刷机(比如许多同一个MAC地址的多个网卡等等)以及软硬件伟哥式得打补丁增强,已经严重改变了该配置本来的性能

可能出现了Survivorship Bias(http://www.peixun.net/view/558.html



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群