目前,我参与了基于数据仓库的Banking Analytics 项目。我们一直使用 Oracle 作为数据库, Oracle商业智能工具(OBIEE 11g)作为用户通过weblogic服务器的前端或表示层。
在这里,我需要为ATM卡欺诈模式检测实现支持向量机(SVM)算法。用于流失预测的 CART ,并通过OBIEE将结果提供给用户。所以我的问题是如何将这些算法(用Python实现)集成到OBIEE?
我见过 Oracle Data Miner 与OBIEE的集成,但它实现了自己的算法。
答案 0 :(得分:4)
11g外部表中有一个名为PREPROCESSOR
的新功能(可以找到11gR2的白色页面here)
外部表使您可以直接将平面文件读取到oracle中的表中。新的preprocessos命令使您可以指定脚本名称而不是文件,oracle将使用输出流作为输入。这样你就可以将algorithem结果直接输入oracle。
让我们以CART算法为例
在oracle中创建一个工作目录
create or replace directory dmdir as "/some_folder_on_your_os"
创建一个执行算法的脚本,并以逗号分隔的格式打印输出。我们可以说,对于CART算法,您可以将树输出为level,attribute,value,outcome,confidence
。
创建外部表
CREATE TABLE cart_tree 等级号码, attribute varchar2(2000), value varchar2(2000), 结果varchar2(2000), 信心数 )外部组织( TYPE ORACLE_LOADER 默认目录dmdir 访问参数( NEWLINE删除的记录 字段被','终止 缺少字段值为空 PREPROCESSOR execdir:'my_cart_algorithem.py' FIELDS( 水平, 属性, 值, 结果, 置信
)) 地点 ('')) REJECT LIMIT UNLIMITED
location
是脚本的参数。在这种情况下是非。查询
select * from cart_tree
重要的是要理解每次查询表时oracle都会执行脚本。所以 - 我通常使用外部表格来创建一个物化视图。
您可能会发现有用的第二个选项是使用oracle与R的现有集成.RART中都提供了CART和SVM算法,并且已经与oracle集成。你可以在这里阅读here