Oracle 11g Pmml导入

时间:2016-12-02 12:16:40

标签: oracle plsql oracle11g oracle12c pmml

我正在使用oracle数据挖掘器进行一些计算。我需要注册pmml文件来执行我的计算。

我有两个oracle数据库。第一个oracle数据库版本是12c。安装oracle数据挖掘器后,我使用下面的代码注册我的pmml。

ALTER SESSION set NLS_NUMERIC_CHARACTERS = ".," 

BEGIN    
   dbms_data_mining.IMPORT_MODEL ('PMML_SAO_PD_AL01',
        XMLType (bfilename ('EXT_TAB_DIR_ADM_TEST', 'PMML_SAO_PD_AL01.xml'),
          nls_charset_id ('AL32UTF8')
        ));
END;

该代码在oracle 12c中完美运行。

我的第二个数据库版本是11g。安装oracle数据挖掘器后,当我运行相同的代码时,它会得到以下错误

  

ORA-40388:PMML文档中不支持的功能:输出

由于某些许可限制,无法将我的oracle 11g db版本升级到12c。

我的pmml代码(PMML_SAO_PD_AL01.xml)是这样的:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
  <PMML version="4.2"   xmlns="http://www.dmg.org/PMML-4_2"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Header copyright="Copyright(c) Garanti Bank">
<Application name="GT - PMML Generator Addin" version="1.0"/>
<Timestamp>2016-11-15 08:56:21</Timestamp>
</Header>
<DataDictionary numberOfFields="2">
<DataField name="TARGET_NUM" optype="categorical" dataType="string"/>
<DataField name="RAW_SCORE" optype="continuous" dataType="double"/>
</DataDictionary>
<TransformationDictionary>
</TransformationDictionary>
<RegressionModel functionName="classification" targetFieldName="TARGET_NUM" normalizationMethod="">
<MiningSchema>
<MiningField name="TARGET_NUM" usageType="target" optype="categorical"/>
<MiningField name="RAW_SCORE" usageType="active" optype="continuous"/>
</MiningSchema>
<Output>
<OutputField name="I_TARGET_NUM" displayName="Into: TARGET_NUM" optype="categorical" dataType="string" targetField="TARGET_NUM" feature="predictedValue"/>
<OutputField name="U_TARGET_NUM" displayName="Unnormalized Into: TARGET_NUM" optype="categorical" dataType="string" targetField="TARGET_NUM" feature="predictedDisplayValue"/>
<OutputField name="P_TARGET_NUM1" displayName="Predicted: TARGET_NUM=1" optype="continuous" dataType="double" targetField="TARGET_NUM" feature="probability" value="1"/>
<OutputField name="P_TARGET_NUM0" displayName="Predicted: TARGET_NUM=0" optype="continuous" dataType="double" targetField="TARGET_NUM" feature="probability" value="0"/>
</Output>
<Targets>
<Target  field="TARGET_NUM" optype="categorical">
<TargetValue value="1" displayValue="1" priorProbability="0.5"/>
<TargetValue value="0" displayValue="0" priorProbability="0.5"/>
</Target>
</Targets>
<LocalTransformations>
</LocalTransformations>
<RegressionTable intercept="-0.045" targetCategory="1">
<NumericPredictor name="RAW_SCORE" coefficient="0.97"/>
</RegressionTable>
<RegressionTable intercept="0" targetCategory="0"/>
</RegressionModel>
</PMML>

现在,我检查并比较了db的配置,但我没有发现这样做有所不同。所以我认为11g不支持那个版本的pmml。但实际上我需要使用导致错误的输出字段标签。

如何将我的pmml注册到oracle 11g?或者是否有任何可能的方法,例如在pmml中进行一些更改以使其适用于oracle 11g?

0 个答案:

没有答案