机器学习 - 有监督学习入门
前言
笔者在3年前因工作需要进行过一段时间的机器学习学习,一段时间后还和同事一起参加过几场算法比赛,虽说没取得多么好的成绩,但也在整个过程中积累了不少经验,见识了很多大牛圈子,对于自己的技术视野及数据分析框架有了一定提升。但随着项目结束后工作总再无具体的实操,更多是以需求提出者的形式不关心实现细节,具体的模型算法知识也已有些生疏,这段时间整理资料时又重新翻阅起了这块内容,索性就提笔进行回顾,温故而知新,本篇为有监督学习入门。
生活中的机器学习
上图是美团外卖骑手的订单详情页,这个页面的预计送达时间值得我们研究,它在技术上是如何实现的呢?可以先思考以下几个问题
影响骑手送达时长的因素有哪些?
是否已有现成的送达时间数据,如果没有如何获取?
为什么骑手送达时间是具体时刻,可以是一个时间区间/范围吗?
有了上述的思考,先不着急回答,先一起回顾下一元一次方程的知识:
通过既定已有的数据xy,便可以得出函数解析式;再通过已知值x,可计算得出y,这是初二上学期的数据知识,一分钟即可解题完成,虽说简单,但这就是有监督机器学习的本质,我们会反复提到此内容。
此时再回头来看上面提到的关于美团外卖送达时间的问题,影响骑手送达时长的因素有哪些?
当前天气,城市,商家做餐时间,送餐时间段等因素这些均可影响骑手的送餐时长,只是不同因素对终于对结果的影响大小不一,这些数据就是训练模型要用的基本信息特征X
是否已有现成的送达时间数据,如果没有如何获取?
骑手侧送达外卖时会手动标记已成功送达,并辅以用户侧双向确认,所以历史已送达数据是有的,这些数据就是训练模型要用的结果数据,也叫标签数据Y
为什么骑手送达时间是具体时刻,可以是一个时间区间/范围吗?
当然可以是一个时间范围,类似于现在菜鸟驿站的到货时间预测,“您的订单预计30分钟后到达”,“您的订单预计40分钟内达到”。而至于是时间范围,还是具体时刻,这两者的选择就是分类问题还是回归问题的选择。
回到初中一元一次方程,它和有监督机器学习的对应关系如下:
x1y1,x2y2相当于既有业务行为的存量数据,y=ax+b相当于模型,当然实战中远不止这么简单,也是希望借此能引出有监督机器学习的核心。
有监督学习的核心
笔者认为所有有监督学习都可以理解为它从X到Y的一个映射,即,基于已有的基本信息数据X,经过一个黑箱操作,变成另一组结果数据Y。这便是所有有监督算法模型的核心奥义,无论是决策树,随机森林,SVM还是神经网络,模型无论大小和复杂本质是就是在做x→y的映射关系,有了这样基础的认知对后面深入学习这些算法时会有很大帮助。
理解这一点以后,让我们在回头看看刚才的初中一元一次方程的例子:
这张图算是真正的有监督机器学习实战,万变不离其宗,本质还是初中直线方程,本质还是
f(x)→y的映射,只是在具体项目实战中多了必要的特征工程工作。
首先确认解决问题的需求,确认是回归还是分类问题,输出是离散型还是连续性,一般来说连续性的数据输出对数据标准化和特征工程要求较高。
接下来基于具体问题类型进行相关基础数据整理,包括公司内部数仓的标签主题宽表,实时行为数据日志解析,外部爬虫,第三方云数据库采购;基于这些数据进行入模型前的标准化处理,不同的模型对数据标准的要求不一,一般来说树模型对于数据的标准性要求不像线性模型那么高。
有了数据且选定模型后,便需要进行训练,这里依据具体数据量及模型的不一,通常在实战中使用都是分布式大规模机器学习平台;同时依据AUC,R方等指标进行模型精度测算,根据实际效果进行不断的参数调整,数据调整,反复迭代优化,一般来说这个阶段尤为漫长。
最终模型部署到线上应用进行服务的提供,但上述的训练与调参仍在持续进行,将会一直伴随整个模型的全生命周期。
结语
f(x)→y是有监督学习问题的核心,X是样本特征,是向量,矩阵;Y是样本标签,可以是单一,也可以是多个,按Y的取值是连续与分散,可以把有监督学习问题分为“回归”,“分类”,常见的实际案例有以下几种:
二分类问题,广告点击率预估、风控决策引擎
多分类问题,理财产品喜好,微博用户情感分析
单回归问题,股票预测,销量预测
多回归问题,预测明天的气温、空气湿度、降雨量
以上便是有监督学习入门,希望能对从未涉及机器学习领域的数据从业者提供思路框架上的帮助。
版权声明: 本文为 InfoQ 作者【第519区】的原创文章。
原文链接:【http://xie.infoq.cn/article/7217c18cdd79fcbd3f75b85f2】。文章转载请联系作者。
评论