课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,机器学习等人工智能相关技术被众多开发团队学习和使用,下面我们就一起来了解一下,关于机器学习的环境平台构建都有哪些要求。
机器如何学习?
人脑具备不断积累经验的能力,依赖经验我们便具备了分析处理的能力,比如我们要去菜场挑一个西瓜,别人或者自己的经验告诉我们色泽青绿、根蒂蜷缩、纹路清晰、敲声浑响的西瓜比较好吃。
我们具备这样的能力,那么机器呢?机器不是只接收指令,处理指令吗?和人脑类似,可以喂给机器历史数据,机器依赖建模算法生成模型,根据模型便可以处新的数据得到未知属性。
平台设想
在同程内部,我们对应用机器学习的一些团队做了了解,发现存在一些痛点:
线上数据到线下搬运耗时
训练数据量难均衡,如果训练数据量较大,用R或者Python做单机训练将会非常耗时。如果训练数据量较小,训练出来的模型容易过拟合。
对分析和挖掘人员的编码能力有一定的要求。
因此我们觉得可以构建一套平台化的产品直接对线上数据进行建模实验,节省机器学习的开发成本,降低机器学习的应用门槛。
平台构建
设计目标
支持大数据量的建模实验,通过并行计算缩短耗时
抽象出小执行单元,配置简单。通过拖拽以及连线的形式构建建模流程
支持常用的机器学习学习算法处理回归、分类、聚类等问题支持常用的特征工程组件,如标准化、归一化、缺失值处理等
支持算法评估结果可视化
算法库
在算法库方面,我们选择了Spark,相比于R或者Python,Spark具备分布式计算的能力,更高效。
ml和mllib都是Spark中的机器学习库,目前常用的机器学习功能两个个库都能满足需求。ml主要操作的是DataFrame,相比于mllib在RDD提供的基础操作,ml在DataFrame上的抽象级别更高,数据和操作耦合度更低。
ml提供pipeline,和Python的sklearn一样,可以把很多操作(算法/特征提取/特征转换)以管道的形式串起来,对于任务组合非常便利,如StringToIndexer、IndexerToString、VectorAssembler等。
组件化设计
从架构设计上来说,不管是算法单元、特征工程单元、评估单元或者其他工具单元,我们认为都可以以组件的形式来设计。借助通用的接口行为以及不同的实现可以达到松耦合、易扩展的目的。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!