范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

算法工程PMML模型文件内容跟读(通过PMML了解提升数原理)

  摘要: PMML  ,GBDT  PMML介绍
  PMML(Predictive Model Markup Language)预测模型标记语言,是基于标记语言XML创建的应用标准语言,是W3C的标准语言。 PMML就是以XML为基础描述模型的数据定义、数据转化、模型构建、输出内容多一系列操作,可以在不同平台是新数据交换、模型共享 ,在1997年诞生,到目前已经升级到4.4版本,由数据挖掘组织DMG负责维护升级。 XML的基础要素
  XML的基础要素包括头部和正文,头部,头部包含XML声明、文档类型,正文包含根元素、子元素、属性等。
  XML基础要素
  如图 根元素是books,一个XML只能有一个根元素,剩下的都是元素 。books的子元素是book,可以有多个子元素,id="bk101"是属性,author、title、description是book的子元素。 在XML中属性和子元素可以互相转化,既可以写为属性也可以写为子元素 ,一般id类写为属性,其他写为子元素。
  一个XML可以想象为一个树结构,从根节点(跟元素)开始生长,如下图
  树结构图PMML的内容要素
  PMML主要包含以下模型内容 (1)  数据字典  :定义了数据的字段名称,数据类型(2)  缺失和异常处理  :解决缺失值填充和异常值处理的问题,应对部署环境下的数据情况(3)  特征转换  :列入数据特征派生,数据分箱等功能(4)  模型构建  :定义模型结构(5)  模型输出  :定义模型的输出标签(6)  输出处理  :模型输出标签的二次加工处理,列入概率和分数的转化等PMML文件学习
  下面以一个PMML文件为例,学习一下PMML文件的结构和各种属性,以下是折叠了所有元素信息的PMML文件内容
  PMML缩略图1.PMML头部
  第一行是PMML头部信息,代表 XML声明 ,一个XML文件必须由一个XML申明开始,一个XML声明就是一个XML处理指令,他声明了 XML规范的版本 和 字符编码 ,standalone=yes表示此XML是独立的,不需要再配合一个DTD文件。 2.PMML正文
  从根元素开始就是正文内容,在这个PMML中根元素下有4个子元素,分别是 Header  ,MiningBuildTask  ,DataDictionary  ,MiningModel  ,其中Header和MiningBuildTask是每个PMML必须有的,其他可选。
  (1)根元素PMML
  根元素PMML
  根元素中定义了三个属性 xmlns  :代表默认命名空间  ,是xml name space的意思,命名空间指定一个URI(网址链接),这个URI的作用仅仅是用来唯一标识,并没有取这个链接拉取数据资源。命名空间的目的是为了解决不同领域的XML词汇同名冲突的问题,就相当于申明了下面所有的元素名称都是在"http://www.dmg.org/PMML-4_4"规范下的。默认命名空间没有前缀,因此在下面的包含体中所有没有前缀的元素和属性都属于这个默认命名空间。xmlns:data  :代表显式命名空间  ,使用冒号间隔,冒号后面的内容是用户自定义的,在下面的包含体中所有以前缀+冒号开头的元素都属于这个显式命名空间。version  :表示PMML标准版本号,这个是必选属性。
  (2)Header元素
  Header
  Header是必须在PMML中出现的,且出现在第一个,Header描述了这个模型时何时使用什么程序生成的。上图中有两个子元素 Application  :生成模型的应用程序描述,又包含name和version两个属性,表示生成该PMML的程序时JPMML_SkLearn,JPMML_SkLearn版本时1.6.35。Timestamp  :创建该PMML模型的时间戳。
  (3)MiningBuildTask元素
  MiningBuildTask
  这个代表挖掘任务,包含模型的训练信息,主要是模型训练和创建时的 配置信息 。上图所示就是Sklearn的Pipeline,其中包含一个叫preprocessor的ColumnTransformer预处理过程和一个叫classifier的XGBClassifier过程。其中预处理过程包含好多,既有对缺失值的填充,又有onehot,其中本例中是对每一个列单独起的一个SimpleImputer,因为采用均值填充的方式,每个列的均值不一样。
  (4)DataDictionary元素
  DataDictionary数据字典定义了数据的类型和取值范围,训练和预测数据都需要符合这个数据字典的约定。DataDictionary是PMML必选的元素。
  DataDictionary元素
  DataDictionary的子元素DataField定义了列,他又有name,optype,dataType三个属性 name  :字段名称,是唯一的optype  :度量尺度,比如连续型,离散型dataType  :数据类型,比如字符串string,证书integer,小数double
  DataField有子元素Value,定义了离散变量的取值集合,其中包含了字符串null。
  (5)MiningModel元素
  从这个元素开始进入模型部分,先看一下这个元素的整体结构
  MiningModel元素
  MiningModel  是MODEL-ELEMENT是模型元素集合中的一个元素,他有以下这些元素
  MODEL-ELEMENT集合
  MiningModel有三个属性 functionName  :模型任务类型,回归还是分类,这个是必须属性algorithmName  :算法名称x-mathContext  :等于float,告诉PMML引擎需要切换到32位浮点模式
  MiningModel通常用于模型的融合 ,因为本例子是XGB因此是多个分类回归树的融合。他包含两个子元素 MiningSchema  ,Segmentation  。MiningSchema  :是所有模型都必须有的子元素,这个元素里面包含了这个模型用到的所有字段,DataDictionary定义的是这个PMML的所有字段,而MiningSchema定义的这个模型使用到的字段。除此之外,MiningSchema的子元素MiningField还可以对字段缺失值异常值进行处理。Segmentation  :MiningModel包含的一个特有子的元素,用于融合多个模型。
  5.1 MiningSchema
  MiningSchema元素
  MiningSchema包含了一个MiningField序列,MiningField包含以下属性 name  :字段名称usageType  :默认是active,表示在模型中使用,如是target则是一个有监督模型的学习目标missingValueReplacement  :缺失值填充值设定,指定一个实际值来填充该列missingValueTreatment  :缺失值填充处理方法,包含asIs,asMean,asMode,asMedian,asValue,第一个是用原始输入就是null来处理,后面三个是均值,众数,中位数,最后一个是使用一个写死的值invalidValueTreatment  :无效值处理方式,asIs就是不处理用原始输入,在本例中只有离散变量会做这个操作
  总结一下MiningSchema定义了模型的输出字段,以及每个字段的异常和缺失处理逻辑。
  5.2 Segmentation
  Segmentation元素
  Segmentation包含属性 multipleModelMethod  ,它指定多个模型的融合方式是modelChain,即前一个模型的输出作为后一个模型的输入是链式的,实际上,因为XGBoost用的是回归树,然后将所有树的输出结果相加得到第一个模型的输出。除此之外multipleModelMethod还包含average ,majorityVote 等融合策略。
  Segmentation中包含两个模型,每一个模型都被包括在子元素 Segment中,通过id来标识。先看Segment id="1"元素。
  Segment id="1"元素
  第一行代表PREDICATE是,说明使用该模型计算预测值。下面又是一个MiningModel,相当于的融合模型中的模型1本身又是一个融合模型。下面定义了这个融合模型的输出 Output  属性, localTransformations  指定了特征转化的工作
  localTransformations元素
  其中 DerivedField  代表 派生新的字段 ,这里就是把对应字段转化为float类型。下面通过Segmentation定义这个子融合模型的融合方式, 采用 sum  方式,一共有145个分类回归树(Segment id="1",Segment id="2",Segment id="3")加和逼近结果,具体看一下其中一棵树
  树模型内容
  每一个模型是一个 TreeModel元素  ,他的属性是 functionName  定义数据挖掘任务,是分类还是回归,是必选项。这里是回归, 因为GBDT这一类算法解决分类问题是使用的回归树,他需要将每个树的预测结果和之前所有树相加作为预测结果,预测结果和实际结果相减计算残差,如果是采用分类基模型,label类别的相减是没有意义的,因此GBDT采用类似逻辑回归的对数似然函数损失来计算预测概率和实际概率的残差。 noTrueChildStrategy  定义了无法到达叶子节点时预测的策略。
  TreeModel有两个子元素 MiningSchema  定义了输入当前树模型的字段, 这个字段不是全局的,每棵树不一样 。
  Node  元素, 用于在树模型中定义分割或叶子节点,用来定义一个嵌套规则使用其他字段如何到达这个叶子节点,就是树模型的规则集 。看一个Node
  Node总览
  这是一个多层嵌套的node
  多层嵌套node
  其中 score  代表叶子节点的预测值,每个Node包含一个Predicates  ,Predicates可以是SimplePredicate  ,True  。SimplePredicate  :以简单布尔表达式定义的规则,比如图中特征score>=58.95,特征last_1_exist_infection>=1。
  每个树的预测结果是怎么计算出来的
  node层级中向右缩进的是子节点,同级的是并列node,会有一个根node给一个初始分。 1.所有进入该树的特征从上到下过一遍SimplePredicate的规则,如果满足规则,就拿SimplePredicate这一层的score作为预测得分(就是SimplePredicate的前一个缩进的Node的score属性) 如果不满足规则则拿上一层的score(SimplePredicate的前一个缩进的前一个缩进的Node的score),如果所有规则都不满足,就拿根Node的score。 3.如果特征满足多个Node规则,则取其中score最大的那个作为score,一个树只能产出一个score
  此刻再看一下这个模型融合中第一个模型的Output和他的子融合模型的融合方式
  多个树的聚合方式
  每个树的score结果使用 sum  就是累计求和的方式输出,输出未xgbValue,这个和提升树的原理也对上了。然后整个融合模型是 modelChain  方式融合的,就是把xgbValue输出给下一个模型,然后再看整个融合模型的第二个模型
  Segment id="2"
  第二个模型是个 RegressionModel  ,PMML的RegressionModel不仅可以做回归,也可以做分类,因为可以组合多个回归方程(回归树)来预测分类值。先看他的属性functionName  就是任务类型是分类任务,normalizationMethod  是针对分类任务的属性,它描述了如何将预测转换未概率,结合下面的MiningField name="xgbValue"就是把刚才所有树的加和结果(xgbValue是上一个融合模型的输出)都做了logit变换(1/(1+np.exp(-sum(score))))。下面是MiningField,这里定义了这个模型的输入,需要把label作为target输入。
  在Output里面分别定了1的概率和0的概率,然后到RegressionTable  回归表,如果学习任务是分类,则每个targetCategory都会有一个RegressionTable,回归表的目的是给出回归的结果,即每个变量的权重偏置信息。它包含子元素NumericPredictor  定义了一个数值自变量,变量名称是xgbValue,指定了系数是1,偏置是0,因此targetCategory=1的情况就是0 + xgbValue * 1结果赋值给Output中的probabilit(1)。相当于融合模型的第二个模型就是把前面所有树的加和结果(sum(score))在求个logit函数得到最后的预测概率,整个PMML结束。总结PMML的运作方式:对于提升树,PMML的主要内容(服务于预测)是数据字典(DataDictionary)、挖掘模型(MiningModel专用于模型融合的元素),它把每棵树的叶子节点路径和叶子节点的score值作为布尔逻辑规则写在PMML,并且定义加和融合的方式,在输出层定义logit变换方式,这些内容是跨语言的,相当于把模型文件写成XML格式,描述模型的内部逻辑。当有新的数据进来时,根据数据字典规则,经过数据缺失填充,异常处理逻辑,然后从第一颗树开始走规则表,每个树的score相加,最后求logit,在PMML里面把数据经过布尔条件,简单运算即可得到预测结果。 提升树的原理:提升树每个树是回归树,将所有树输出结果求和相加,最后做logit变化得到预测概率。
  本文参考:
  PMML 4.3 - Regression
  pmml模型文件解析与自定义_pmml文件_Catherine_In_Data的博客-CSDN博客

海鲜市场为什么都用黑色塑料袋各位朋友,大家有没有如果海鲜市场买海鲜,或者是北方的内陆朋友们去旅游的时候买海鲜。今天,小编,就和大家分享下海鲜市场的猫腻。图片来自网络1。黑色塑料袋不知道大家有没有发现,几乎所有世界上女人最多的国家被分成118个省拉脱维亚1991年苏联解体后独立,位于东欧波罗的海东岸。面积还没有我国重庆市大,总人口200万左右,却被分成了118个省。这里因为男少女多,也成为世界上女人占比最多的国家。首都里加探索恐龙大灭绝事件,其原因是什么,又是否与太阳活动有关呢?大家好,我是馨云。地球的生命存在从根本上依赖着太阳,太阳燃烧抛出的物质和能量的变化会对地球的生态系统造成巨大的影响。那么恐龙大灭绝事件是否也跟太阳活动有关呢?太阳活动是如何引导了这最新研究恐龙可能拥有颜色鲜艳的皮肤,或用来吸引配偶近日,一项由德克萨斯大学奥斯汀分校科学家进行的研究表明,灭绝的恐龙很有可能拥有颜色鲜艳的皮肤。这种明亮的色彩,可以帮助吸引配偶,就像现在的鸟类一样。研究人员分析了现存的恐龙近亲(包恐龙的美食植物活化石桫椤生物多样性公约缔约方大会第十五次会议(COP15)选择在中国云南昆明举办,这与云南丰富的生物多样性资源密不可分。在云南,群山与河谷纵横交错,生态系统复杂多样,各类珍稀动物植物微生物36氪独家图数据库厂商创邻科技完成A2轮过亿元融资,正在服务四大行之一36氪获悉,图数据库厂商创邻科技近日完成A2轮过亿元融资,分别由A轮领投方以及同创伟业达晨财智联合投资,义柏资本担任公司独家财务顾问。本轮融资将用于持续升级产品,同时进一步推动图数宇宙星系的排列是完全随机的,还是有着一定的规律?综述在过去,人类对世界的认知一直受到了巨大的局限性。在古代,不管是东方还是西方,人们都不具备先进的科技手段,只能垫着脚或者在高处去观察天空,眼看着日升日落,月缺月满,以及其他斑斑点单场50分!北控救星真来了!签约后今日正式抵达国内,已开启隔离在过去一个月的时候,当时兰兹伯格这个点就一直被人热议,因为一直都传闻兰兹伯格会加盟北控。这种情况下,北控也已经正式和兰兹伯格达成了签约,也就是说他会出现在第二阶段。同时根据目前的消周杰深夜再发文回应,8个承认排比句显无奈,晒6张手写字被嘲早就已经淡出国内娱乐圈的周杰,这段时间再次惹上了麻烦,最主要还是因为某女生在网上曝光他的私生活有问题,并且人品堪忧。随着事情的发酵,周杰再次成为风口浪尖的人物。不过周杰现在不是娱乐硬核科幻猛剧终于又上线,才播出了一集就飙到9。1分12月10日,足足盼了一年的苍穹浩瀚终于回归,了不起的一部太空科幻题材作品,终于奉上了第六季。苍穹浩瀚是一部技术向的硬核科幻剧,根据同名畅销书改编,第一季诞生于2015年,由Syf直播带货再出损招,假明星站台,网友怒斥丢脸近年来,明星直播带货在网络上广为流行,不少商家借明星光环,来吸引网友购买商品。消费者购买明星推荐的商品,主要是出于对他们的信任,但信任总是被辜负,假黄金假酒,因明星直播带货引发的投
亚洲健美标志性人物山岸秀匡宣布退役,健美生涯跨越17年山岸秀匡是第一位出现在奥林匹亚先生健美大赛中的日本IFBB职业健美运动员,他在2001年获得职业健身卡后,很快就成为亚洲健美标志性人物。最近,这位IFBB职业健美运动员和212磅的NBA明日比赛预测新篮网抵挡猛雄鹿总结下今天的比赛,整体比赛除猛龙方向出现偏差,其余都在线,不以短时定胜负,昨天好多朋友都在开玩笑我的发挥失常,其实也没啥,确实失准严重,好在今天可以调整回来,明天把失去的拿回来。开央视直播CBA第29轮!广东队辽宁队靠实力,北京双雄受青睐CBA常规赛第29轮,将在北京时间3月1日开打,休整了一个月的时间,各支球队还是会发生一些变化。常规赛最后十轮比赛,竞争将升级,赛季进入冲刺阶段,每支球队都想取得一个好成绩,实力强大虾又出新做法!不炸不煮,哄得人五迷三道直流口水,就看你敢不敢吃吃海鲜,当属广东潮汕人的吃法最野最生猛!广东人吃海鲜,除了体现食材本身鲜甜的白灼外,潮汕生腌也是一大重头戏!在广东吃生食,潮汕排第二就没人敢说自己是第一。海鲜生腌的吃法,可是被称为国际奥委会主席巴赫收藏刘铁飞冬奥新作老炮炫技国际奥委会主席巴赫正式宣布2022年冬奥会举办城市为中国北京。这是中国首次举办冬季奥运会,北京也创造了历史,成为全球唯一一个既举办夏季奥运会,又举办冬季奥运会的城市。国际奥委会主席春天有条件多吃5样,少吃3样,省酸增甘,调节饮食,健康过春季微微的春风拂面,树枝发起了嫩芽,春天迈着轻盈的步伐走来了。春天看似温柔,却是阳气升发的季节,在饮食上不能有所忽略,所谓春养肝,夏养心,春天温度上升回暖,部分人的肝火较大,在春季就需不能二次加热的4种食物,提前了解一下,下次别吃错了如今随着人们生活水平的不断提高,基本上每家每户都过上了小康生活,这也导致很多人养成了良好的身体素质,同时也非常注重勤俭节约。勤俭节约是我国的传统美德,从小我们就被教育不能浪费食物,春季,记得要少酸多甘,建议多吃7种甘味食物,顺利度过春天老话说得好春天养生要少酸多甘!就是少吃酸性的食物,多吃甘味的食物。认为酸味不利于春天阳气的发生,而多吃甘味可以滋养人体的阳气!很多朋友认为甘味,就是多吃甜食呗!如果你也这样做,那可春天,少吃大鱼大肉,多吃这5种高钾食物,增强体质营养高春天是最美好温暖的季节,大地回春换新装,阳光明媚,微风不凉,暖意浓浓,这样的季节也是万物复苏,瓜果蔬菜最多的时候,年已过完,吃了不少大鱼大肉,很多人也不想吃油腻的食物了,只想给身体提示这3种食物或成痛风帮凶,建议平时尽量少吃一直以来,痛风问题都严重困扰着人们的正常生活,每当痛风发作时,就好像有老虎在啃食患者的关节一般,这种疼痛感是常人所不能忍受的。其实,痛风之所以会出现,多半是由于患者体内的嘌呤物质超iOS16曝光,低电量提醒终于改了大家都知道,除了每年固定的几场苹果硬件发布会之外,于每年6月举行的WWDC苹果开发者大会也是一场分量十足的重头戏。按照惯例,苹果会在今年的WWDC上发布旗下五大系统的最新版本。其中苹果海外推36期免息分期,分期中途可换新机!会引入国内么?目前苹果国内官网很多数码产品,都支持两年24期免息分期,比如说手机笔记本耳机以及智能手表等等,也算是给用户减轻了一定的压力。不过现在苹果的产品价格也是水涨船高,最顶配的iPhone鸡蛋的几种吃法轻松补气血,头晕,面色苍白,气血不足都走开昨天,门诊医生接诊了一位患者。患者,女,46岁,最近感觉头晕,心慌,脸色苍白。查血常规血红蛋白严重低下,网织红细胞低下,诊断为缺铁性贫血。医生开了铁剂治疗,并嘱咐患者多吃鸡蛋补血。党参的食用方法和禁忌人群,你知道吗?1形态特征多年生草本植物,有乳汁。茎基具多数瘤状茎痕,根常肥大呈纺锤状或纺锤状圆柱形,茎缠绕,不育或先端着花,黄绿色或黄白色,叶在主茎及侧枝上的互生,叶柄有疏短刺毛,叶片卵形,边缘印度作为人口大国,冬奥只派一人参加,能夺得2036奥运主办权吗两个星期以来,北京冬奥会吸引了全球观众的目光,然而不知道大家有没有发现一个现象,那就是奥运的金牌榜奖牌榜,排在前列那些国家妥妥的都是发达国家。我国也好俄罗斯也好,美国也好德国也好瑞面黄失眠,血虚?两味药,补心养血滋阴润燥问下大家有这样的经历吗?就是我们蹲在地上两分钟,然后猛然站起来,眼前一黑,头晕目眩,摇摇欲坠,过一段时间就好了的情况,如果有请继续看下去。这种情况在我们中医上讲就是血虚,因为血液亏初春建议多吃这16种甘味食物,养肝健脾胃,补气血,健康一整年一年之计在于春,初春养生重护肝。初春时节,人体经过整个冬天的蛰伏,逐渐复苏萌发,身体各项生理机能和新陈代谢是最活跃的时期,此时也是调养肝脏的最佳时机。饮食上应遵循春日宜省酸增甘,以这场没人参加的奥运会,却最感人微博视觉志作者牧羊北京冬奥会圆满结束,我们看到00后小将苏翊鸣,将超高难度转体完成的行云流水,宛若飞人。青蛙公主谷爱凌背负滑雪的天花板神话。也见证了在强悍对手面前,中国队以2分37春季肝火旺盛,建议多吃9种甜味食物,健脾胃补气血,常吃气色好春季是万物复苏,万象更新的季节,也是我们养生保健的好时节,素来就有春生夏长秋收冬藏的说法,春天养生饮食要注重多甘少酸,也就是说多吃一些甘味的食物,少吃一些酸味的食物。春季肝气旺盛,甲鱼壳竟有这么多妙用?消腹内肿块,滋阴清热,快来了解一下你知道吗?甲鱼壳有很大的药用价值,不仅可以滋阴清热,还可以消除腹内肿块。随着生活水平提高,甲鱼因为具有很好的营养,逐渐走上大众的餐桌,而甲鱼的壳是一味常用的中药,下面我们来了解一下讲一味丹参,功同四物,活血消斑,通三焦气血,改善气血大家好,今天想给大家讲一讲血瘀这个问题。在日常生活中,其实有很多人都有血瘀的表现,最典型的表现是感觉身上好像被针扎了一样的疼痛,而这种疼痛主要以刺痛为主。并且还伴随着面色萎黄长斑肌公路训练,机票众筹,一人参赛,印度人参加冬奥咋这么难?视频请见下面链接公路训练,机票众筹,一人参赛,印度冬奥为何比东奥更惨?各位博导大人们好,这里是沉迷冬奥,不忘更新的一心博士。这次冬奥有很多高光时刻?比如谷爱凌的惊艳一跳!比如武大靖