JPMML打分流程

版权声明:欢迎转载,请注明原文地址:http://blog.csdn.net/c1481118216 https://blog.csdn.net/c1481118216/article/details/78413292

准备数据

输入数据即预测变量数据集,不包括目标标量。预测变量由挖掘模式 (Mining Schema) 定义,每一个预测变量的属性在数据字典中定义。

数据预处理

该过程的主要目的是检测输入数据的有效行。

  • 遗漏值 (missing value) 检测。如果输入值为空,则为 missing value。否则对于分类变量,如果数据字典中定义了有效分类值和遗漏值集合, 如果输入数据等于其中某一遗漏值,或者不等于任何遗漏值,但是也不属于某一种有效值,我们都认为该值是一个遗漏值。 对于连续变量来说,数据字典中可以定义一个或多个有效值区间 (Interval),如果输入值不在该区间,该值就是 missing value, 如果没有任何有效区间定义,任何有效的数值都是有效。如清单 1 所示,变量 Sex 的取值只有 {F, M},如果不是这两个取值, 就认为是遗漏值;变量 Age 有效区间为 [0, 120],如果输入值为 150 则被认为是 missing value。
  • 异常值 (outliers) 检测。该检测只适用于连续变量,如果输入数据不是 missing value,PMML 定义了以下三种不同的处理方式:
    • 不做任何处理 (asIs)。
    • 作为 missing value(asMissingValues)。
    • 被边界值代替 (asExtremeValues)。如果小于最小值,则被当前的最小值代替,否则如果大于最大值, 被最大值代替。如清单 2 所示,如果变量 Na 输入值为 0.01,会被最小值 0.02 代替,如果输入值是 0.09,则会被最大值 0.08 代替。
  • 遗漏值 (missing value) 替换。如果输入值被认为是 missing value,PMML 可以在挖掘模式中可以定义遗漏替换值, 如果该属性被定义,当前遗漏值会它所替换。如清单 2 所示,如果输入的变量 BP 被判定为遗漏值,将使用“HIGH”进行取代。

打分

不同的模型 Score 方式是不一样的,取决于模型的类型。以我们最常用的决策树来说, Score 就是从根节点 (root node) 开始,根据每一个节点的判断语句 (Predicates),选择其中的一个子节点, 直到达到叶子节点为止。

输出结果

按照output 所定义的格式输出结果

  • Rule: SimpleRuleScoreDistribution{result=1, confidence_entries=[1=1.0], entityId=RULE1}
  • RandomForest: ProbabilityDistribution{result=setosa, probability_entries=[setosa=1.0]} setosa 1.0 0.0 0.0
  • LR: 0.9999999972257427 0.9999999972257427
  • GBDT: ProbabilityDistribution{result=0, probability_entries=[0=0.9965122268672915, 1=0.003487773132708538]} 0.9965122268672915 0.003487773132708538
  • DT: NodeScoreDistribution{result=1, probability_entries=[0=0.0, 1=1.0], entityId=2, confidence_entries=[]}

猜你喜欢

转载自blog.csdn.net/c1481118216/article/details/78413292
今日推荐