pmml

Export spark feature transformation pipeline to a file

一世执手 提交于 2021-02-09 07:30:30
问题 PMML, Mleap, PFA currently only support row based transformations. None of them support frame based transformations like aggregates or groupby or join. What is the recommended way to export a spark pipeline consisting of these operations. 回答1: I see 2 options wrt Mleap: 1) implement dataframe based transformers and the SQLTransformer -Mleap equivalent. This solution seems to be conceptually the best (since you can always encapsule such transformations in a pipeline element) but also alot of

Export spark feature transformation pipeline to a file

心已入冬 提交于 2021-02-09 07:18:38
问题 PMML, Mleap, PFA currently only support row based transformations. None of them support frame based transformations like aggregates or groupby or join. What is the recommended way to export a spark pipeline consisting of these operations. 回答1: I see 2 options wrt Mleap: 1) implement dataframe based transformers and the SQLTransformer -Mleap equivalent. This solution seems to be conceptually the best (since you can always encapsule such transformations in a pipeline element) but also alot of

Export spark feature transformation pipeline to a file

江枫思渺然 提交于 2021-02-09 07:14:43
问题 PMML, Mleap, PFA currently only support row based transformations. None of them support frame based transformations like aggregates or groupby or join. What is the recommended way to export a spark pipeline consisting of these operations. 回答1: I see 2 options wrt Mleap: 1) implement dataframe based transformers and the SQLTransformer -Mleap equivalent. This solution seems to be conceptually the best (since you can always encapsule such transformations in a pipeline element) but also alot of

性能优化:线程资源回收

一世执手 提交于 2020-12-09 19:25:29
本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 一、问题 模型服务平台的排序请求出现较多超时情况,且不定时伴随空指针异常。 二、问题发生前后的改动 召回引擎扩大了召回量,导致排序请求的item数量增加了。 三、出问题的模型 基于XGBoost预测的全排序模型。 四、项目介绍 web-rec-model:模型服务平台。用于管理排序模型:XGBoost、TensorFlow、pmml....召回模型:item2item,key2item,vec2item....等模型的上下线、测试模型一致性、模型服务等。 五、一次排序请求流程 1、如下图所示,一次排序请求流程包含:特征获取、向量获取、数据处理及预测。以上提到的三个步骤均采用多线程并行处理,均以子任务形式执行。每个阶段中间夹杂这数据处理的流程,由主线程进行处理,且每个阶段的执行任务均为超时返回,主线程等待子线程任务时,也采用超时等待的策略。(同事实现的一个树形任务执行,超时等待的线程框架) 2、特征数据闭环:该步骤为异步执行,将排序计算使用到的特征及分数,模型版本等信息记录。后续作为模型的训练样本,达到特征闭环。 3、一次排序请求中, 特征获取及向量获取 为网络IO(IO密集型任务),超时可直接响应中断,线程可快速返回。 数据处理及模型 为计算步骤(CPU密集型任务)。 4、当前请求耗时情况

使用基于python的flask框架在服务器端部署机器学习模型pmml格式文件

笑着哭i 提交于 2020-10-11 00:27:49
安装anaconda环境 访问 https://www.anaconda.com/products/individual 拉到底部,下载并安装相应版本的anaconda 命令行输入conda -V,查看是否安装成功 开发 安装flask、pypmml 命令行输入 pip install flask pip install pypmml 新建server.py并写入 from flask import Flask, jsonify, request import json from pypmml import Model app = Flask(__name__) @app.route('/predict', methods=['POST']) def predict(): input_json = request.get_data(as_text=True) #调用服务器时输入的json字符串 dict_json = json.loads(input_json) model = Model.load('lr_model.pmml')#加载模型文件 result = model.predict(dict_json) return jsonify({'probability(0)':result['probability(0)'],'probability(1)':result[

get这款工具,不会机器学习也能轻松搞定深度分析

北城以北 提交于 2020-08-14 08:20:24
机器学习是一门多学科交叉专业,涵盖概率论知识、统计学知识、近似理论知识和复杂算法知识。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。通过计算机对数据的处理和对算法的运用,实现对业务场景的深度分析,帮助人们更好的做决策。永洪深度分析模块是将机器学习算法封装成节点,用户通过拖拽的方式从而便捷的应用机器学习算法。 如何使用深度分析模块?首先需要安装永洪Desktop,里面会带有深度分析功能,目前可以免费试用3个月。其次根据需要安装R服务环境或Python服务环境,也可以两个都安装。如果不会安装可以查看在线帮助或到官网社区中的产品问答中看相关说明。再次,安装好后,打开Desktop,选择【管理系统】-【系统设置】-【R计算配置/Python计算配置】,如下图1所示。填写服务器地址和端口号,点击测试连接,如果连接正确,右上角会弹出测试成功。最后点击保存连接,至此,深度分析功能就可以使用了。 图1 想要对业务进行深度分析,就需要对机器学习的流程有一定的了解,通常的流程共有8步,如下图2。在永洪的产品中提供了几个常用的深度分析的场景,大家可以打开看看,也可以复用使用。 图2 第一步,问题分析,就是要确定对哪个问题进行分析。例如,对于银行业企业,通常会进行信用卡反欺诈分析、营销策略分析等。对于零售行业,通常会进行销售预测、用户画像分析等。对于政府,可以进行交通预测

机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测

别等时光非礼了梦想. 提交于 2020-08-05 12:34:02
  机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法:    1.在Java语言中,通过python的解释器执行python代码,简单来说就是在java中通过python解释器对象,传入写好的python代码,进行执行,这样的方式运行的效率非常低,而且存在很多python包无法使用的情况,只适合做简单的python代码的运行,并不推荐使用。   2.通过PMML工具,将在sklearn中训练好的模型生成一个pmml格式的文件,在该文件中,主要包含了模型的一些训练好的参数,以及输入数据的格式和名称等信息。生成了pmml文件之后,在java中导入pmml相关的包,我们就能通过pmml相关的类读取生成的pmml文件,使用其中的方法传入指定的参数就能实现模型的预测,速度快,效果不错。   3.第二种方法因为模型已经训练好了,无法改变,不能实现在线调参的功能,我们可以通过socket服务来进行python和java之间的网络通信,python提供socket服务,java端将模型的参数通过网络传给python端,python端接受到参数之后,进行模型的训练,训练完成之后,将得到的结果返回给Java端。    下面给是使用pmml方式调用的步骤:

机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测

一笑奈何 提交于 2020-08-05 04:45:57
  机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法:    1.在Java语言中,通过python的解释器执行python代码,简单来说就是在java中通过python解释器对象,传入写好的python代码,进行执行,这样的方式运行的效率非常低,而且存在很多python包无法使用的情况,只适合做简单的python代码的运行,并不推荐使用。   2.通过PMML工具,将在sklearn中训练好的模型生成一个pmml格式的文件,在该文件中,主要包含了模型的一些训练好的参数,以及输入数据的格式和名称等信息。生成了pmml文件之后,在java中导入pmml相关的包,我们就能通过pmml相关的类读取生成的pmml文件,使用其中的方法传入指定的参数就能实现模型的预测,速度快,效果不错。   3.第二种方法因为模型已经训练好了,无法改变,不能实现在线调参的功能,我们可以通过socket服务来进行python和java之间的网络通信,python提供socket服务,java端将模型的参数通过网络传给python端,python端接受到参数之后,进行模型的训练,训练完成之后,将得到的结果返回给Java端。    下面给是使用pmml方式调用的步骤:

机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测

亡梦爱人 提交于 2020-08-05 02:56:06
  机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法:    1.在Java语言中,通过python的解释器执行python代码,简单来说就是在java中通过python解释器对象,传入写好的python代码,进行执行,这样的方式运行的效率非常低,而且存在很多python包无法使用的情况,只适合做简单的python代码的运行,并不推荐使用。   2.通过PMML工具,将在sklearn中训练好的模型生成一个pmml格式的文件,在该文件中,主要包含了模型的一些训练好的参数,以及输入数据的格式和名称等信息。生成了pmml文件之后,在java中导入pmml相关的包,我们就能通过pmml相关的类读取生成的pmml文件,使用其中的方法传入指定的参数就能实现模型的预测,速度快,效果不错。   3.第二种方法因为模型已经训练好了,无法改变,不能实现在线调参的功能,我们可以通过socket服务来进行python和java之间的网络通信,python提供socket服务,java端将模型的参数通过网络传给python端,python端接受到参数之后,进行模型的训练,训练完成之后,将得到的结果返回给Java端。    下面给是使用pmml方式调用的步骤:

高德算法工程一体化实践和思考

*爱你&永不变心* 提交于 2020-02-27 18:37:22
背景 随着高德地图业务的快速开展,除了导航本身的算法业务外,其他中小型业务对算法策略的需求越来越多、越来越快,近两年参与的一些新项目从算法调研到应用上线都在一周级,例如与共享出行相关的各种算法服务,风控、调度、营销等各个体系的业务需求。类似于传统导航中成熟的长周期、高流量、低时延的架构和开发方式已无法满足此类业务初期的快速试错和优化改进诉求,找到合适的为业务赋能的算法服务方式就变得势在必行。 在落地实施的过程中,采用一体化架构。所谓的一体化是指整个算法、工程一体化,涉及数据、系统等全链路打通,实现数据流的系统化流动;算法业务调研兼顾工程服务开发,测试、验证过程自动化、智能化,从而形成业务闭环,推动业务的快速迭代。 项目初期,需要快速试错和策略优化。此时,业务需求的QPS往往不高(<1k),因此,传统的应用开发和部署方式,一方面拖慢了业务节奏,另一方面浪费了大量资源。 在此过程中,我们希望达到的目标就是离线策略调研即服务逻辑开发,离线调研完成即服务化完成,这样就能够显著降低算法调研到策略上线的时间。因为性能(QPS、RT)压力不大,离线用Python进行快速的开发就成为可能。 从长期看,随着业务逐步成熟,算法快速组合、服务调用量和服务性能成为衡量算法服务重要的评价标准,此时合理的优化就应该被向前推进,例如核心算法逻辑高性能化将会变成重要的工作。 因此