[发明专利]一种在线分类微服务的构建方法有效
| 申请号: | 201810188057.7 | 申请日: | 2018-03-07 |
| 公开(公告)号: | CN108573275B | 公开(公告)日: | 2020-08-25 |
| 发明(设计)人: | 李红;吕攀;王成城;钱广一;杨国青;吴朝晖 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F8/60 |
| 代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 王琛 |
| 地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 在线 分类 微服 构建 方法 | ||
本发明公开了一种在线分类微服务的构建方法,相对于传统基于批处理的分类方法(如SMO等)由于每次分类都要对所有训练样本进行计算,具有耗时大和部署困难的问题,不利于模型的在线修改。本发明在线分类微服务构建方法,可以利用实时获取的训练样本对分类器进行更新,同时提高了对数据处理的效率,利用微服务的架构可以对降低部署模型的复杂度,加快模型的上线迭代。
技术领域
本发明属于智能信息处理技术领域,具体涉及一种在线分类微服务的构建方法。
背景技术
传统的批量处理分类方法如SMO(Search Media Optimization,搜索媒体优化)等支持向量机算法,由于分类数据过于庞大,每次分类都需要对所有数据重新进行处理,会因为计算复杂度过高而耗时太多,难以作为线上服务进行发布,因此需要对分类算法的处理步骤进行改进。
在线学习算法与离线学习算法相比,具有收敛速度快和计算内存消耗少的优点,但是分类精度往往不如离线学习算法,因此需要对训练样本进行取舍,通过KKT(KarushKuhn Tucker)条件的判定可以方便地选出对更新分类超平面有帮助的训练样本。同时在线学习面临的问题是部署和集成比较复杂,通常会面临算法模块需要使用Python实现,而业务模块需要使用Java实现,即多语言通信的问题,而微服务恰好可以解决多语言的问题,同时通过将不同模块拆分成服务,可以方便的找出服务间调的瓶颈所在,调整服务内部的设计。
发明内容
鉴于上述,本发明提供了一种在线分类微服务的构建方法,能够对外界收集到的样本数据集进行有选择性的学习。
一种在线分类微服务的构建方法,包括如下步骤:
(1)获取初始样本集,其中每个样本预设有正负标签,进而采用LSSVM(最小二乘支持向量机)分类器对样本集进行分类,得到最优分类超平面f1,此时超平面f1将样本集分成两类,这些样本组成了支持向量集SV1;
(2)获取新的训练样本,通过KKT条件判断该训练样本能否被超平面f1正确分类:若能,则舍去该训练样本;若不能,则将该训练样本加入到支持向量集SV1中进行分类训练得到新的超平面f2;
(3)反复执行步骤(2),每一次超平面更新后均需要检查之前训练样本的KKT条件,所有不满足KKT条件的训练样本纳入集合Tk并加入到下一次的训练过程中;训练过程分离线训练和线上更新两个阶段,同时对样本数据进行存储。
进一步地,所述训练过程中的离线训练阶段包括对初始样本集进行离线训练,得到超平面f1,进而将训练模型序列化后得到模型文件;线上更新阶段则在离线训练流程的基础上,搭建算法模型微服务,提供更新模型的POST接口,输入为新增加的训练样本,输出为超平面是否被更新的信息,通过输出结果决定是否对模型文件进行更新,此外线上更新还提供模型预测的POST接口,输入为样本向量,输出为预测的正负值。
进一步地,所述样本数据分为历史数据和实时数据两部分进行存储,历史数据包含了每次支持向量集和超平面更新后不满足KKT条件的训练样本所组成的集合Tk,实时数据则包含了每次传入的新训练样本。
进一步地,所述线上更新阶段采用Python Flask来搭建微服务,提供的是RESTful接口,方便与其他语言(如Java)后台进行通信,同时使用pickle序列化文件将模型持久化。
进一步地,所述步骤(3)中采用MongoDB对历史数据进行存储,由于历史数据量大,且对数据存取速度要求较高,MongoDB更适合作为数据存储部分的实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810188057.7/2.html,转载请声明来源钻瓜专利网。





