用 SPL 做数据挖掘建模预测
SPL 在易明建模的配合下可以提供的是全自动化的建模预测。使用方法主要包含以下步骤:
一、配置易明建模
1. 下载安装易明建模软件
下载地址:http://www.raqsoft.com.cn/download/download-ymodel
安装建模软件,并记录安装目录,比如:C:\Program Files\raqsoft\ymodel
2. 在 SPL 中配置外部库
(1)复制外部库所需要的文件
在易明建模的安装路径下找到下列 jar 包,复制到外部库路径比如“C:\Program Files\raqsoft\esProc\extlib\Ym2Cli”
(2)SPL 环境配置
a. 配置外部库
打开 SPL,在选项菜单里,配置外部库路径,勾选易明建模外部库。
在无图形界面的服务器中去集算器的安装目录下 esProc\config\raqsoftConfig.xml 文件中进行配置外部库路径和名称。
<extLibsPath> 外部库路径
<importLibs> 外部库名称(可多个)
b. 线程数设置
如果有并发预测,还需要在 SPL 设置“最大并行数”,也就是线程数。设置多少用户根据需求和机器情况自行设定。
在无图形界面的服务器中去集算器的安装目录下 esProc\config\raqsoftConfig.xml 文件中进行配置。
<parallelNum> 最大并行数
到此,环境配置完成。
二、建模
1. 用易明建模软件生成 mcf 文件
在用 SPL 建模之前,需要借助易明建模软件来完成数据加载,目标变量设置,变量选择,模型配置等内容,并将其保存为 mcf 文件。易明建模的使用方法请参考相关说明:文档总览 (raqsoft.com.cn)
设有一个贷款违约数据表如下,需要建模来预测新用户是否会发生违约行为。
文件命名为 bank-full.csv。
首先使用易明建模将数据导入,选择“y”为目标变量(预测目标),保存为 bank-full.mcf。
2. 导入 mcf 文件,建立模型
打开 SPL,导入配置好的 mcf 文件就可以建模了
A |
|
1 |
=ym2_env("C:/Program Files/raqsoft/ymodel") |
2 |
=ym2_mcfload("bank-full.mcf") |
3 |
=ym2_model(A2) |
4 |
=ym2_pcfsave(A3,"bank-full.pcf") |
A1 初始化环境。ym2_env(appPath, configFile, pythonPath),appPath: 易明建模的安装路径,configFile: userconfig.xml 配置文件。默认的情况下,后两个不用设,
A2 导入配置好的 mcf 文件
A3 建立模型
A4 保存模型文件
3. 查看模型表现
A |
|
… |
… |
5 |
=ym2_pcfload("C:/Users/29636/Desktop/tmp/bank-full.pcf") |
6 |
=ym2_result@p(A5) |
7 |
=ym2_result@r(A5) |
8 |
=ym2_result@i(A5) |
9 |
>ym2_close() |
A5 导入模型文件
A6 返回多种模型指标和图形,如 Gini,AUC,ROC, Lift……
比如点击 A6 的第 6 条记录的 Value,然后点击右上角“图形浏览”图标,数值字段选择“Lift”,就可以查看 Lift 曲线
A7 返回模型算法信息和参数
A8 返回每个变量对目标变量的影响程度,简称重要度
A9 关闭建模服务,释放资源
注:A6,A7,A8 的内容也可返回为 json 串格式,在选项后加 j 即可,例如“ym2_result@pj()”
三、预测
预测之前需要有 pcf 模型文件和预测数据集
1. 数据预测
A |
|
1 |
=ym2_env("C:/Program Files/raqsoft/ymodel") |
2 |
=ym2_pcfload("bank-full.pcf") |
3 |
=ym2_predict(A2,"bank-full.csv") |
4 |
=ym2_result(A3) |
5 |
=file("bank-full_result.csv").export@tc(A4) |
6 |
>ym2_close() |
A1 初始化环境
A2 导入 pcf 模型文件,生成 pd 模型对象。
A3 对 csv 文件执行预测。除 csv 外,还支持 txt、游标、序表和 mtx 文件
A4 获取预测结果
A5 将预测结果导出,在本例中预测结果为用户发生违约行为的概率。
2. 应用中数据预测
1. 系统启动时初始化环境并加载模型
A |
|
1 |
=ym2_env("C:/Program Files/raqsoft/ymodel") |
2 |
=ym2_pcfload(pcf_file) |
…【可以加载多个模型】 |
|
3 |
=env(YM,A1) |
4 |
=env(YM_Model_xxx,A2) |
A1 初始化环境
A2 加载 pcf 模型文件,生成 pd 模型对象
A3 将 A1 设为全局变量
A4 将 A2 设为全局变量
2. 执行预测
在应用程序中通过 SPL 执行
ym2_predict(YM_Model_xxx,pre_data)
就可以用初始化时加载的模型 YM_Model_xxx 来预测并获得结果,其中 pre_data 是外部传送用于预测的数据。
如何在上层应用中调用函数可以参考链接:
https://c.raqsoft.com.cn/article/1647044897121#toc_h2_3
这种调用方式会立即执行。
3. 系统退出时释放环境
A |
|
1 |
>ym_close(YM) |
英文版:Data mining, modeling and prediction in SPL (raqsoft.com)